@faicad/faijs 0.30.9 → 0.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1707) hide show
  1. package/dist/api/align/index.d.ts +64 -0
  2. package/dist/api/align/index.d.ts.map +1 -0
  3. package/dist/api/align/index.js +101 -0
  4. package/dist/api/align/index.js.map +1 -0
  5. package/dist/api/api-namespace.d.ts +5 -4
  6. package/dist/api/api-namespace.d.ts.map +1 -1
  7. package/dist/api/api-namespace.js +45 -7
  8. package/dist/api/api-namespace.js.map +1 -1
  9. package/dist/api/boolean-op/index.d.ts +65 -0
  10. package/dist/api/boolean-op/index.d.ts.map +1 -0
  11. package/dist/api/boolean-op/index.js +114 -0
  12. package/dist/api/boolean-op/index.js.map +1 -0
  13. package/dist/api/boolean.d.ts.map +1 -1
  14. package/dist/api/boolean.js +19 -27
  15. package/dist/api/boolean.js.map +1 -1
  16. package/dist/api/brep-operations/healingFns.d.ts +13 -0
  17. package/dist/api/brep-operations/healingFns.d.ts.map +1 -1
  18. package/dist/api/brep-operations/healingFns.js +28 -1
  19. package/dist/api/brep-operations/healingFns.js.map +1 -1
  20. package/dist/api/brep-operations/joinery-brep.js +10 -10
  21. package/dist/api/brep-operations/joinery-brep.js.map +1 -1
  22. package/dist/api/brep-operations/topologyFns.d.ts +27 -6
  23. package/dist/api/brep-operations/topologyFns.d.ts.map +1 -1
  24. package/dist/api/brep-operations/topologyFns.js +46 -22
  25. package/dist/api/brep-operations/topologyFns.js.map +1 -1
  26. package/dist/api/chamfer.d.ts +5 -4
  27. package/dist/api/chamfer.d.ts.map +1 -1
  28. package/dist/api/chamfer.js +13 -11
  29. package/dist/api/chamfer.js.map +1 -1
  30. package/dist/api/curve-sketch/index.d.ts.map +1 -1
  31. package/dist/api/curve-sketch/index.js +12 -3
  32. package/dist/api/curve-sketch/index.js.map +1 -1
  33. package/dist/api/draft.js +2 -3
  34. package/dist/api/draft.js.map +1 -1
  35. package/dist/api/engrave.d.ts.map +1 -1
  36. package/dist/api/engrave.js +4 -13
  37. package/dist/api/engrave.js.map +1 -1
  38. package/dist/api/export-3mf.d.ts +73 -0
  39. package/dist/api/export-3mf.d.ts.map +1 -0
  40. package/dist/api/export-3mf.js +121 -0
  41. package/dist/api/export-3mf.js.map +1 -0
  42. package/dist/api/export-brep.d.ts +6 -0
  43. package/dist/api/export-brep.d.ts.map +1 -1
  44. package/dist/api/export-brep.js +11 -2
  45. package/dist/api/export-brep.js.map +1 -1
  46. package/dist/api/export-step.d.ts +67 -0
  47. package/dist/api/export-step.d.ts.map +1 -0
  48. package/dist/api/export-step.js +98 -0
  49. package/dist/api/export-step.js.map +1 -0
  50. package/dist/api/export-stl.d.ts +8 -0
  51. package/dist/api/export-stl.d.ts.map +1 -1
  52. package/dist/api/export-stl.js +23 -8
  53. package/dist/api/export-stl.js.map +1 -1
  54. package/dist/api/extrude.d.ts.map +1 -1
  55. package/dist/api/extrude.js +18 -17
  56. package/dist/api/extrude.js.map +1 -1
  57. package/dist/api/feature-repair.d.ts +1 -1
  58. package/dist/api/feature-repair.d.ts.map +1 -1
  59. package/dist/api/feature-repair.js +7 -7
  60. package/dist/api/feature-repair.js.map +1 -1
  61. package/dist/api/fillet-variable.d.ts.map +1 -1
  62. package/dist/api/fillet-variable.js +1 -1
  63. package/dist/api/fillet-variable.js.map +1 -1
  64. package/dist/api/fillet.d.ts +3 -3
  65. package/dist/api/fillet.d.ts.map +1 -1
  66. package/dist/api/fillet.js +4 -4
  67. package/dist/api/fillet.js.map +1 -1
  68. package/dist/api/generated/operations.js +16 -16
  69. package/dist/api/generated/operations.js.map +1 -1
  70. package/dist/api/generated/script-face-manifest.d.ts +1 -1
  71. package/dist/api/generated/script-face-manifest.js +3 -3
  72. package/dist/api/generated/script-face-manifest.js.map +1 -1
  73. package/dist/api/generated/script-face.d.ts +1 -1
  74. package/dist/api/generated/script-face.js +1 -1
  75. package/dist/api/generated/script-face.js.map +1 -1
  76. package/dist/api/generated/sketching.js +1 -1
  77. package/dist/api/generated/sketching.js.map +1 -1
  78. package/dist/api/generated/topology.js +18 -18
  79. package/dist/api/generated/topology.js.map +1 -1
  80. package/dist/api/helix.d.ts +1 -1
  81. package/dist/api/helix.d.ts.map +1 -1
  82. package/dist/api/helix.js +2 -1
  83. package/dist/api/helix.js.map +1 -1
  84. package/dist/api/import-brep.d.ts.map +1 -1
  85. package/dist/api/import-brep.js +1 -0
  86. package/dist/api/import-brep.js.map +1 -1
  87. package/dist/api/import-step.d.ts.map +1 -1
  88. package/dist/api/import-step.js +1 -0
  89. package/dist/api/import-step.js.map +1 -1
  90. package/dist/api/index.d.ts +9 -3
  91. package/dist/api/index.d.ts.map +1 -1
  92. package/dist/api/index.js +19 -4
  93. package/dist/api/index.js.map +1 -1
  94. package/dist/api/internal/compat-op.d.ts +6 -6
  95. package/dist/api/internal/compat-op.d.ts.map +1 -1
  96. package/dist/api/internal/compat-op.js +7 -9
  97. package/dist/api/internal/compat-op.js.map +1 -1
  98. package/dist/api/internal/export-members.d.ts +80 -0
  99. package/dist/api/internal/export-members.d.ts.map +1 -0
  100. package/dist/api/internal/export-members.js +104 -0
  101. package/dist/api/internal/export-members.js.map +1 -0
  102. package/dist/api/internal/l3-bridge.d.ts +17 -0
  103. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  104. package/dist/api/internal/l3-bridge.js +23 -1
  105. package/dist/api/internal/l3-bridge.js.map +1 -1
  106. package/dist/api/loft-advanced.d.ts +66 -0
  107. package/dist/api/loft-advanced.d.ts.map +1 -0
  108. package/dist/api/loft-advanced.js +112 -0
  109. package/dist/api/loft-advanced.js.map +1 -0
  110. package/dist/api/loft.d.ts +16 -23
  111. package/dist/api/loft.d.ts.map +1 -1
  112. package/dist/api/loft.js +22 -40
  113. package/dist/api/loft.js.map +1 -1
  114. package/dist/api/measure-query/index.d.ts +262 -0
  115. package/dist/api/measure-query/index.d.ts.map +1 -0
  116. package/dist/api/measure-query/index.js +392 -0
  117. package/dist/api/measure-query/index.js.map +1 -0
  118. package/dist/api/pattern.d.ts.map +1 -1
  119. package/dist/api/pattern.js +1 -3
  120. package/dist/api/pattern.js.map +1 -1
  121. package/dist/api/place.d.ts.map +1 -1
  122. package/dist/api/place.js +1 -0
  123. package/dist/api/place.js.map +1 -1
  124. package/dist/api/primitives.d.ts +6 -6
  125. package/dist/api/primitives.d.ts.map +1 -1
  126. package/dist/api/primitives.js +12 -11
  127. package/dist/api/primitives.js.map +1 -1
  128. package/dist/api/profile.d.ts.map +1 -1
  129. package/dist/api/profile.js +1 -1
  130. package/dist/api/profile.js.map +1 -1
  131. package/dist/api/punch-hole.d.ts.map +1 -1
  132. package/dist/api/punch-hole.js +1 -1
  133. package/dist/api/punch-hole.js.map +1 -1
  134. package/dist/api/replicate.d.ts +5 -7
  135. package/dist/api/replicate.d.ts.map +1 -1
  136. package/dist/api/replicate.js +24 -56
  137. package/dist/api/replicate.js.map +1 -1
  138. package/dist/api/revolve.d.ts.map +1 -1
  139. package/dist/api/revolve.js +1 -0
  140. package/dist/api/revolve.js.map +1 -1
  141. package/dist/api/screw.d.ts.map +1 -1
  142. package/dist/api/screw.js +1 -0
  143. package/dist/api/screw.js.map +1 -1
  144. package/dist/api/sdf.d.ts.map +1 -1
  145. package/dist/api/sdf.js +1 -0
  146. package/dist/api/sdf.js.map +1 -1
  147. package/dist/api/section-by-plane.d.ts.map +1 -1
  148. package/dist/api/section-by-plane.js +0 -1
  149. package/dist/api/section-by-plane.js.map +1 -1
  150. package/dist/api/shell.d.ts +1 -1
  151. package/dist/api/shell.d.ts.map +1 -1
  152. package/dist/api/shell.js +12 -2
  153. package/dist/api/shell.js.map +1 -1
  154. package/dist/api/sketch-on-face.d.ts +34 -30
  155. package/dist/api/sketch-on-face.d.ts.map +1 -1
  156. package/dist/api/sketch-on-face.js +40 -28
  157. package/dist/api/sketch-on-face.js.map +1 -1
  158. package/dist/api/sketch-on-plane.d.ts.map +1 -1
  159. package/dist/api/sketch-on-plane.js +1 -1
  160. package/dist/api/sketch-on-plane.js.map +1 -1
  161. package/dist/api/sketch-on-surface.d.ts +76 -0
  162. package/dist/api/sketch-on-surface.d.ts.map +1 -0
  163. package/dist/api/sketch-on-surface.js +99 -0
  164. package/dist/api/sketch-on-surface.js.map +1 -0
  165. package/dist/api/solid-offset/index.d.ts.map +1 -1
  166. package/dist/api/solid-offset/index.js +1 -0
  167. package/dist/api/solid-offset/index.js.map +1 -1
  168. package/dist/api/split-by-plane.d.ts.map +1 -1
  169. package/dist/api/split-by-plane.js +0 -1
  170. package/dist/api/split-by-plane.js.map +1 -1
  171. package/dist/api/split.d.ts +1 -1
  172. package/dist/api/split.d.ts.map +1 -1
  173. package/dist/api/split.js +2 -1
  174. package/dist/api/split.js.map +1 -1
  175. package/dist/api/surface/arg-spec.d.ts +8 -16
  176. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  177. package/dist/api/surface/arg-spec.js +21 -28
  178. package/dist/api/surface/arg-spec.js.map +1 -1
  179. package/dist/api/surface-face/index.d.ts.map +1 -1
  180. package/dist/api/surface-face/index.js +5 -0
  181. package/dist/api/surface-face/index.js.map +1 -1
  182. package/dist/api/surface.d.ts.map +1 -1
  183. package/dist/api/surface.js +1 -0
  184. package/dist/api/surface.js.map +1 -1
  185. package/dist/api/sweep-advanced.d.ts +117 -0
  186. package/dist/api/sweep-advanced.d.ts.map +1 -0
  187. package/dist/api/sweep-advanced.js +94 -0
  188. package/dist/api/sweep-advanced.js.map +1 -0
  189. package/dist/api/sweep.d.ts +18 -76
  190. package/dist/api/sweep.d.ts.map +1 -1
  191. package/dist/api/sweep.js +27 -28
  192. package/dist/api/sweep.js.map +1 -1
  193. package/dist/api/thicken.d.ts.map +1 -1
  194. package/dist/api/thicken.js +12 -2
  195. package/dist/api/thicken.js.map +1 -1
  196. package/dist/api/transform.d.ts +3 -3
  197. package/dist/api/transform.d.ts.map +1 -1
  198. package/dist/api/transform.js +49 -17
  199. package/dist/api/transform.js.map +1 -1
  200. package/dist/api/wire.d.ts.map +1 -1
  201. package/dist/api/wire.js +1 -0
  202. package/dist/api/wire.js.map +1 -1
  203. package/dist/boolean/cross-section.d.ts +7 -6
  204. package/dist/boolean/cross-section.d.ts.map +1 -1
  205. package/dist/boolean/cross-section.js +38 -27
  206. package/dist/boolean/cross-section.js.map +1 -1
  207. package/dist/boolean/deriveNormals.d.ts +5 -5
  208. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  209. package/dist/boolean/deriveNormals.js +18 -18
  210. package/dist/boolean/deriveNormals.js.map +1 -1
  211. package/dist/boolean/extrude-helpers.d.ts +6 -6
  212. package/dist/boolean/extrude-helpers.d.ts.map +1 -1
  213. package/dist/boolean/extrude-helpers.js +6 -6
  214. package/dist/boolean/extrude-helpers.js.map +1 -1
  215. package/dist/boolean/geo-convert.d.ts +11 -8
  216. package/dist/boolean/geo-convert.d.ts.map +1 -1
  217. package/dist/boolean/geo-convert.js +17 -73
  218. package/dist/boolean/geo-convert.js.map +1 -1
  219. package/dist/boolean/index.d.ts +23 -0
  220. package/dist/boolean/index.d.ts.map +1 -0
  221. package/dist/boolean/index.js +27 -0
  222. package/dist/boolean/index.js.map +1 -0
  223. package/dist/brep/brep-chain.d.ts +1 -19
  224. package/dist/brep/brep-chain.d.ts.map +1 -1
  225. package/dist/brep/brep-chain.js +0 -1
  226. package/dist/brep/brep-chain.js.map +1 -1
  227. package/dist/brep/brep-ops.d.ts +9 -6
  228. package/dist/brep/brep-ops.d.ts.map +1 -1
  229. package/dist/brep/brep-ops.js +51 -47
  230. package/dist/brep/brep-ops.js.map +1 -1
  231. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  232. package/dist/brep/engine/adapters/brep-mock.js +24 -3
  233. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  234. package/dist/brep/engine/adapters/brepkit.d.ts +4 -3
  235. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  236. package/dist/brep/engine/adapters/brepkit.js +4 -98
  237. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  238. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  239. package/dist/brep/engine/adapters/occt.js +0 -144
  240. package/dist/brep/engine/adapters/occt.js.map +1 -1
  241. package/dist/brep/engine/native-history.d.ts +27 -0
  242. package/dist/brep/engine/native-history.d.ts.map +1 -0
  243. package/dist/brep/engine/native-history.js +54 -0
  244. package/dist/brep/engine/native-history.js.map +1 -0
  245. package/dist/brep/engine/primitives.d.ts +30 -0
  246. package/dist/brep/engine/primitives.d.ts.map +1 -1
  247. package/dist/brep/engine/primitives.js.map +1 -1
  248. package/dist/brep/engine/registry.d.ts +2 -4
  249. package/dist/brep/engine/registry.d.ts.map +1 -1
  250. package/dist/brep/engine/registry.js +1 -1
  251. package/dist/brep/engine/registry.js.map +1 -1
  252. package/dist/brep/engine/types.d.ts +35 -77
  253. package/dist/brep/engine/types.d.ts.map +1 -1
  254. package/dist/brep/engine/types.js.map +1 -1
  255. package/dist/brep/export/export-model.d.ts +21 -0
  256. package/dist/brep/export/export-model.d.ts.map +1 -1
  257. package/dist/brep/export/export-model.js +171 -73
  258. package/dist/brep/export/export-model.js.map +1 -1
  259. package/dist/brep/export/step.d.ts +17 -1
  260. package/dist/brep/export/step.d.ts.map +1 -1
  261. package/dist/brep/export/step.js +133 -0
  262. package/dist/brep/export/step.js.map +1 -1
  263. package/dist/brep/export/stl.d.ts +22 -1
  264. package/dist/brep/export/stl.d.ts.map +1 -1
  265. package/dist/brep/export/stl.js +58 -10
  266. package/dist/brep/export/stl.js.map +1 -1
  267. package/dist/brep/export/transform12.d.ts +47 -0
  268. package/dist/brep/export/transform12.d.ts.map +1 -0
  269. package/dist/brep/export/transform12.js +87 -0
  270. package/dist/brep/export/transform12.js.map +1 -0
  271. package/dist/brep/face-evolution.d.ts +53 -0
  272. package/dist/brep/face-evolution.d.ts.map +1 -1
  273. package/dist/brep/face-evolution.js +65 -0
  274. package/dist/brep/face-evolution.js.map +1 -1
  275. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  276. package/dist/brepkit-kernel/brepkitKernel.js +138 -0
  277. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  278. package/dist/browser-host/index.d.ts +4 -1
  279. package/dist/browser-host/index.d.ts.map +1 -1
  280. package/dist/browser-host/index.js +7 -1
  281. package/dist/browser-host/index.js.map +1 -1
  282. package/dist/browser.d.ts +4 -8
  283. package/dist/browser.d.ts.map +1 -1
  284. package/dist/browser.js +4 -26
  285. package/dist/browser.js.map +1 -1
  286. package/dist/cad-runtime/backend-dispatch.d.ts +13 -58
  287. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  288. package/dist/cad-runtime/backend-dispatch.js +22 -80
  289. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  290. package/dist/cad-runtime/content-key.d.ts +3 -3
  291. package/dist/cad-runtime/content-key.js +3 -3
  292. package/dist/cad-runtime/content-key.js.map +1 -1
  293. package/dist/cad-runtime/ports.d.ts +28 -0
  294. package/dist/cad-runtime/ports.d.ts.map +1 -1
  295. package/dist/cad-runtime/ports.js.map +1 -1
  296. package/dist/cad-runtime/runtime.d.ts +33 -12
  297. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  298. package/dist/cad-runtime/runtime.js +49 -50
  299. package/dist/cad-runtime/runtime.js.map +1 -1
  300. package/dist/define-op.d.ts +22 -18
  301. package/dist/define-op.d.ts.map +1 -1
  302. package/dist/define-op.js +5 -20
  303. package/dist/define-op.js.map +1 -1
  304. package/dist/env-agnostic.d.ts +2 -2
  305. package/dist/env-agnostic.d.ts.map +1 -1
  306. package/dist/env-agnostic.js +1 -1
  307. package/dist/env-agnostic.js.map +1 -1
  308. package/dist/index.d.ts +14 -64
  309. package/dist/index.d.ts.map +1 -1
  310. package/dist/index.js +17 -75
  311. package/dist/index.js.map +1 -1
  312. package/dist/lang/codegen.d.ts +14 -3
  313. package/dist/lang/codegen.d.ts.map +1 -1
  314. package/dist/lang/codegen.js +80 -5
  315. package/dist/lang/codegen.js.map +1 -1
  316. package/dist/lang/metadata-extractor.d.ts +10 -3
  317. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  318. package/dist/lang/metadata-extractor.js +160 -65
  319. package/dist/lang/metadata-extractor.js.map +1 -1
  320. package/dist/lang/symbol-table.generated.d.ts +20 -0
  321. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  322. package/dist/lang/symbol-table.generated.js +20 -0
  323. package/dist/lang/symbol-table.generated.js.map +1 -1
  324. package/dist/math3d/Box3.d.ts +86 -0
  325. package/dist/math3d/Box3.d.ts.map +1 -0
  326. package/dist/math3d/Box3.js +149 -0
  327. package/dist/math3d/Box3.js.map +1 -0
  328. package/dist/math3d/Euler.d.ts +64 -0
  329. package/dist/math3d/Euler.d.ts.map +1 -0
  330. package/dist/math3d/Euler.js +94 -0
  331. package/dist/math3d/Euler.js.map +1 -0
  332. package/dist/math3d/Mat4.d.ts +196 -0
  333. package/dist/math3d/Mat4.d.ts.map +1 -0
  334. package/dist/math3d/Mat4.js +518 -0
  335. package/dist/math3d/Mat4.js.map +1 -0
  336. package/dist/math3d/Plane.d.ts +67 -0
  337. package/dist/math3d/Plane.d.ts.map +1 -0
  338. package/dist/math3d/Plane.js +90 -0
  339. package/dist/math3d/Plane.js.map +1 -0
  340. package/dist/math3d/Quat.d.ts +163 -0
  341. package/dist/math3d/Quat.d.ts.map +1 -0
  342. package/dist/math3d/Quat.js +408 -0
  343. package/dist/math3d/Quat.js.map +1 -0
  344. package/dist/math3d/Vec2.d.ts +185 -0
  345. package/dist/math3d/Vec2.d.ts.map +1 -0
  346. package/dist/math3d/Vec2.js +276 -0
  347. package/dist/math3d/Vec2.js.map +1 -0
  348. package/dist/math3d/Vec3.d.ts +326 -0
  349. package/dist/math3d/Vec3.d.ts.map +1 -0
  350. package/dist/math3d/Vec3.js +521 -0
  351. package/dist/math3d/Vec3.js.map +1 -0
  352. package/dist/math3d/index.d.ts +19 -0
  353. package/dist/math3d/index.d.ts.map +1 -0
  354. package/dist/math3d/index.js +19 -0
  355. package/dist/math3d/index.js.map +1 -0
  356. package/dist/mesh/decoration-provider.d.ts +2 -2
  357. package/dist/mesh/decoration-provider.d.ts.map +1 -1
  358. package/dist/mesh/decoration-provider.js.map +1 -1
  359. package/dist/mesh/engrave.d.ts.map +1 -1
  360. package/dist/mesh/engrave.js +36 -37
  361. package/dist/mesh/engrave.js.map +1 -1
  362. package/dist/mesh/index.d.ts +18 -23
  363. package/dist/mesh/index.d.ts.map +1 -1
  364. package/dist/mesh/index.js +18 -20
  365. package/dist/mesh/index.js.map +1 -1
  366. package/dist/mesh/io.d.ts +42 -14
  367. package/dist/mesh/io.d.ts.map +1 -1
  368. package/dist/mesh/io.js +83 -20
  369. package/dist/mesh/io.js.map +1 -1
  370. package/dist/mesh/knurl/KnurlGenerator.d.ts +8 -7
  371. package/dist/mesh/knurl/KnurlGenerator.d.ts.map +1 -1
  372. package/dist/mesh/knurl/KnurlGenerator.js +9 -9
  373. package/dist/mesh/knurl/KnurlGenerator.js.map +1 -1
  374. package/dist/mesh/knurl/displacement.d.ts +7 -6
  375. package/dist/mesh/knurl/displacement.d.ts.map +1 -1
  376. package/dist/mesh/knurl/displacement.js +29 -29
  377. package/dist/mesh/knurl/displacement.js.map +1 -1
  378. package/dist/mesh/knurl/subdivision.d.ts +3 -3
  379. package/dist/mesh/knurl/subdivision.d.ts.map +1 -1
  380. package/dist/mesh/knurl/subdivision.js +21 -15
  381. package/dist/mesh/knurl/subdivision.js.map +1 -1
  382. package/dist/mesh/knurl/textureLoader.d.ts +3 -3
  383. package/dist/mesh/knurl/textureLoader.d.ts.map +1 -1
  384. package/dist/mesh/knurl/textureLoader.js.map +1 -1
  385. package/dist/mesh/meshdata/index.d.ts +12 -0
  386. package/dist/mesh/meshdata/index.d.ts.map +1 -0
  387. package/dist/mesh/meshdata/index.js +12 -0
  388. package/dist/mesh/meshdata/index.js.map +1 -0
  389. package/dist/mesh/meshdata/ops.d.ts +62 -0
  390. package/dist/mesh/meshdata/ops.d.ts.map +1 -0
  391. package/dist/mesh/meshdata/ops.js +160 -0
  392. package/dist/mesh/meshdata/ops.js.map +1 -0
  393. package/dist/mesh/meshdata/parametric.d.ts +70 -0
  394. package/dist/mesh/meshdata/parametric.d.ts.map +1 -0
  395. package/dist/mesh/meshdata/parametric.js +213 -0
  396. package/dist/mesh/meshdata/parametric.js.map +1 -0
  397. package/dist/mesh/meshdata/weld.d.ts +21 -0
  398. package/dist/mesh/meshdata/weld.d.ts.map +1 -0
  399. package/dist/mesh/meshdata/weld.js +50 -0
  400. package/dist/mesh/meshdata/weld.js.map +1 -0
  401. package/dist/mesh/primitives.d.ts +1 -1
  402. package/dist/mesh/primitives.d.ts.map +1 -1
  403. package/dist/mesh/primitives.js +38 -39
  404. package/dist/mesh/primitives.js.map +1 -1
  405. package/dist/mesh/query.js +11 -11
  406. package/dist/mesh/query.js.map +1 -1
  407. package/dist/mesh/stl-loader.d.ts +7 -7
  408. package/dist/mesh/stl-loader.d.ts.map +1 -1
  409. package/dist/mesh/stl-loader.js +12 -24
  410. package/dist/mesh/stl-loader.js.map +1 -1
  411. package/dist/mesh/threemf-loader.d.ts +38 -4
  412. package/dist/mesh/threemf-loader.d.ts.map +1 -1
  413. package/dist/mesh/threemf-loader.js +115 -34
  414. package/dist/mesh/threemf-loader.js.map +1 -1
  415. package/dist/mesh/threemf-view.d.ts +11 -11
  416. package/dist/mesh/threemf-view.d.ts.map +1 -1
  417. package/dist/mesh/threemf-view.js +10 -10
  418. package/dist/mesh/threemf-view.js.map +1 -1
  419. package/dist/mesh/transform.d.ts +14 -8
  420. package/dist/mesh/transform.d.ts.map +1 -1
  421. package/dist/mesh/transform.js +18 -13
  422. package/dist/mesh/transform.js.map +1 -1
  423. package/dist/mesh/types.d.ts +32 -0
  424. package/dist/mesh/types.d.ts.map +1 -1
  425. package/dist/mesh/types.js.map +1 -1
  426. package/dist/node-host/execute-script.d.ts +2 -1
  427. package/dist/node-host/execute-script.d.ts.map +1 -1
  428. package/dist/node-host/execute-script.js +5 -4
  429. package/dist/node-host/execute-script.js.map +1 -1
  430. package/dist/node-host/index.d.ts +1 -0
  431. package/dist/node-host/index.d.ts.map +1 -1
  432. package/dist/node-host/index.js +4 -0
  433. package/dist/node-host/index.js.map +1 -1
  434. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  435. package/dist/occt-kernel/occt-primitives.js +20 -0
  436. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  437. package/dist/primitives/brep-primitives.d.ts +8 -12
  438. package/dist/primitives/brep-primitives.d.ts.map +1 -1
  439. package/dist/primitives/brep-primitives.js +10 -28
  440. package/dist/primitives/brep-primitives.js.map +1 -1
  441. package/dist/primitives/index.d.ts +19 -0
  442. package/dist/primitives/index.d.ts.map +1 -0
  443. package/dist/primitives/index.js +21 -0
  444. package/dist/primitives/index.js.map +1 -0
  445. package/dist/primitives/mesh-primitives.d.ts +10 -10
  446. package/dist/primitives/mesh-primitives.d.ts.map +1 -1
  447. package/dist/primitives/mesh-primitives.js +29 -76
  448. package/dist/primitives/mesh-primitives.js.map +1 -1
  449. package/dist/primitives/screw/screw.d.ts +3 -3
  450. package/dist/primitives/screw/screw.d.ts.map +1 -1
  451. package/dist/primitives/screw/screw.js +10 -9
  452. package/dist/primitives/screw/screw.js.map +1 -1
  453. package/dist/runtime-state.d.ts +63 -29
  454. package/dist/runtime-state.d.ts.map +1 -1
  455. package/dist/runtime-state.js +57 -0
  456. package/dist/runtime-state.js.map +1 -1
  457. package/dist/sdf/index.d.ts +12 -0
  458. package/dist/sdf/index.d.ts.map +1 -0
  459. package/dist/sdf/index.js +13 -0
  460. package/dist/sdf/index.js.map +1 -0
  461. package/dist/sdk.d.ts +0 -1
  462. package/dist/sdk.d.ts.map +1 -1
  463. package/dist/sdk.js.map +1 -1
  464. package/dist/units.d.ts +40 -0
  465. package/dist/units.d.ts.map +1 -1
  466. package/dist/units.js.map +1 -1
  467. package/dist/weapp.d.ts +2 -2
  468. package/dist/weapp.d.ts.map +1 -1
  469. package/dist/weapp.js +1 -1
  470. package/dist/weapp.js.map +1 -1
  471. package/package.json +277 -38
  472. package/dist/api/brep-mirror/booleanFns.d.ts +0 -40
  473. package/dist/api/brep-mirror/booleanFns.d.ts.map +0 -1
  474. package/dist/api/brep-mirror/booleanFns.js +0 -104
  475. package/dist/api/brep-mirror/booleanFns.js.map +0 -1
  476. package/dist/api/brep-mirror/brepHelpers.d.ts +0 -55
  477. package/dist/api/brep-mirror/brepHelpers.d.ts.map +0 -1
  478. package/dist/api/brep-mirror/brepHelpers.js +0 -131
  479. package/dist/api/brep-mirror/brepHelpers.js.map +0 -1
  480. package/dist/api/brep-mirror/compoundFns.d.ts +0 -47
  481. package/dist/api/brep-mirror/compoundFns.d.ts.map +0 -1
  482. package/dist/api/brep-mirror/compoundFns.js +0 -300
  483. package/dist/api/brep-mirror/compoundFns.js.map +0 -1
  484. package/dist/api/brep-mirror/healingFns.d.ts +0 -78
  485. package/dist/api/brep-mirror/healingFns.d.ts.map +0 -1
  486. package/dist/api/brep-mirror/healingFns.js +0 -294
  487. package/dist/api/brep-mirror/healingFns.js.map +0 -1
  488. package/dist/api/brep-mirror/hullFns.d.ts +0 -20
  489. package/dist/api/brep-mirror/hullFns.d.ts.map +0 -1
  490. package/dist/api/brep-mirror/hullFns.js +0 -46
  491. package/dist/api/brep-mirror/hullFns.js.map +0 -1
  492. package/dist/api/brep-mirror/joinery-brep.d.ts +0 -172
  493. package/dist/api/brep-mirror/joinery-brep.d.ts.map +0 -1
  494. package/dist/api/brep-mirror/joinery-brep.js +0 -463
  495. package/dist/api/brep-mirror/joinery-brep.js.map +0 -1
  496. package/dist/api/brep-mirror/patternFns.d.ts +0 -43
  497. package/dist/api/brep-mirror/patternFns.d.ts.map +0 -1
  498. package/dist/api/brep-mirror/patternFns.js +0 -178
  499. package/dist/api/brep-mirror/patternFns.js.map +0 -1
  500. package/dist/api/brep-mirror/primitiveFns.d.ts +0 -42
  501. package/dist/api/brep-mirror/primitiveFns.d.ts.map +0 -1
  502. package/dist/api/brep-mirror/primitiveFns.js +0 -104
  503. package/dist/api/brep-mirror/primitiveFns.js.map +0 -1
  504. package/dist/api/brep-mirror/roofFns.d.ts +0 -24
  505. package/dist/api/brep-mirror/roofFns.d.ts.map +0 -1
  506. package/dist/api/brep-mirror/roofFns.js +0 -229
  507. package/dist/api/brep-mirror/roofFns.js.map +0 -1
  508. package/dist/api/brep-mirror/straightSkeleton.d.ts +0 -36
  509. package/dist/api/brep-mirror/straightSkeleton.d.ts.map +0 -1
  510. package/dist/api/brep-mirror/straightSkeleton.js +0 -443
  511. package/dist/api/brep-mirror/straightSkeleton.js.map +0 -1
  512. package/dist/api/brep-mirror/sweepFns.d.ts +0 -55
  513. package/dist/api/brep-mirror/sweepFns.d.ts.map +0 -1
  514. package/dist/api/brep-mirror/sweepFns.js +0 -200
  515. package/dist/api/brep-mirror/sweepFns.js.map +0 -1
  516. package/dist/api/brep-mirror/threadFns.d.ts +0 -83
  517. package/dist/api/brep-mirror/threadFns.d.ts.map +0 -1
  518. package/dist/api/brep-mirror/threadFns.js +0 -138
  519. package/dist/api/brep-mirror/threadFns.js.map +0 -1
  520. package/dist/api/brep-mirror/topologyFns.d.ts +0 -74
  521. package/dist/api/brep-mirror/topologyFns.d.ts.map +0 -1
  522. package/dist/api/brep-mirror/topologyFns.js +0 -276
  523. package/dist/api/brep-mirror/topologyFns.js.map +0 -1
  524. package/dist/api/brepjs-compat/constants.d.ts +0 -11
  525. package/dist/api/brepjs-compat/constants.d.ts.map +0 -1
  526. package/dist/api/brepjs-compat/constants.js +0 -11
  527. package/dist/api/brepjs-compat/constants.js.map +0 -1
  528. package/dist/api/brepjs-compat/index.d.ts +0 -21
  529. package/dist/api/brepjs-compat/index.d.ts.map +0 -1
  530. package/dist/api/brepjs-compat/index.js +0 -22
  531. package/dist/api/brepjs-compat/index.js.map +0 -1
  532. package/dist/api/brepjs-compat/planeOps.d.ts +0 -98
  533. package/dist/api/brepjs-compat/planeOps.d.ts.map +0 -1
  534. package/dist/api/brepjs-compat/planeOps.js +0 -170
  535. package/dist/api/brepjs-compat/planeOps.js.map +0 -1
  536. package/dist/api/brepjs-compat/planeTypes.d.ts +0 -24
  537. package/dist/api/brepjs-compat/planeTypes.d.ts.map +0 -1
  538. package/dist/api/brepjs-compat/planeTypes.js +0 -8
  539. package/dist/api/brepjs-compat/planeTypes.js.map +0 -1
  540. package/dist/api/brepjs-compat/types.d.ts +0 -64
  541. package/dist/api/brepjs-compat/types.d.ts.map +0 -1
  542. package/dist/api/brepjs-compat/types.js +0 -48
  543. package/dist/api/brepjs-compat/types.js.map +0 -1
  544. package/dist/api/brepjs-compat/vecOps.d.ts +0 -124
  545. package/dist/api/brepjs-compat/vecOps.d.ts.map +0 -1
  546. package/dist/api/brepjs-compat/vecOps.js +0 -202
  547. package/dist/api/brepjs-compat/vecOps.js.map +0 -1
  548. package/dist/api/generated/brepjs/index.d.ts +0 -310
  549. package/dist/api/generated/brepjs/index.d.ts.map +0 -1
  550. package/dist/api/generated/brepjs/index.js +0 -195
  551. package/dist/api/generated/brepjs/index.js.map +0 -1
  552. package/dist/api/generated/cad/script-face.d.ts +0 -12
  553. package/dist/api/generated/cad/script-face.d.ts.map +0 -1
  554. package/dist/api/generated/cad/script-face.js +0 -146
  555. package/dist/api/generated/cad/script-face.js.map +0 -1
  556. package/dist/api/internal/compat-projection.d.ts +0 -55
  557. package/dist/api/internal/compat-projection.d.ts.map +0 -1
  558. package/dist/api/internal/compat-projection.js +0 -75
  559. package/dist/api/internal/compat-projection.js.map +0 -1
  560. package/dist/api/occt-kernel-bridge.d.ts +0 -118
  561. package/dist/api/occt-kernel-bridge.d.ts.map +0 -1
  562. package/dist/api/occt-kernel-bridge.js +0 -283
  563. package/dist/api/occt-kernel-bridge.js.map +0 -1
  564. package/dist/api/sketch.d.ts +0 -80
  565. package/dist/api/sketch.d.ts.map +0 -1
  566. package/dist/api/sketch.js +0 -155
  567. package/dist/api/sketch.js.map +0 -1
  568. package/dist/api/surface/projection-overrides.d.ts +0 -38
  569. package/dist/api/surface/projection-overrides.d.ts.map +0 -1
  570. package/dist/api/surface/projection-overrides.js +0 -169
  571. package/dist/api/surface/projection-overrides.js.map +0 -1
  572. package/dist/brepjs-compat.d.ts +0 -20
  573. package/dist/brepjs-compat.d.ts.map +0 -1
  574. package/dist/brepjs-compat.js +0 -20
  575. package/dist/brepjs-compat.js.map +0 -1
  576. package/dist/cad-runtime/createRuntimeWithCad.d.ts +0 -22
  577. package/dist/cad-runtime/createRuntimeWithCad.d.ts.map +0 -1
  578. package/dist/cad-runtime/createRuntimeWithCad.js +0 -29
  579. package/dist/cad-runtime/createRuntimeWithCad.js.map +0 -1
  580. package/dist/fcstd/attachment.d.ts +0 -72
  581. package/dist/fcstd/attachment.d.ts.map +0 -1
  582. package/dist/fcstd/attachment.js +0 -93
  583. package/dist/fcstd/attachment.js.map +0 -1
  584. package/dist/fcstd/build-fai-zip.d.ts +0 -40
  585. package/dist/fcstd/build-fai-zip.d.ts.map +0 -1
  586. package/dist/fcstd/build-fai-zip.js +0 -111
  587. package/dist/fcstd/build-fai-zip.js.map +0 -1
  588. package/dist/fcstd/cli.d.ts +0 -3
  589. package/dist/fcstd/cli.d.ts.map +0 -1
  590. package/dist/fcstd/cli.js +0 -37
  591. package/dist/fcstd/cli.js.map +0 -1
  592. package/dist/fcstd/codegen.d.ts +0 -79
  593. package/dist/fcstd/codegen.d.ts.map +0 -1
  594. package/dist/fcstd/codegen.js +0 -605
  595. package/dist/fcstd/codegen.js.map +0 -1
  596. package/dist/fcstd/container.d.ts +0 -75
  597. package/dist/fcstd/container.d.ts.map +0 -1
  598. package/dist/fcstd/container.js +0 -36
  599. package/dist/fcstd/container.js.map +0 -1
  600. package/dist/fcstd/contour.d.ts +0 -43
  601. package/dist/fcstd/contour.d.ts.map +0 -1
  602. package/dist/fcstd/contour.js +0 -96
  603. package/dist/fcstd/contour.js.map +0 -1
  604. package/dist/fcstd/convert.d.ts +0 -63
  605. package/dist/fcstd/convert.d.ts.map +0 -1
  606. package/dist/fcstd/convert.js +0 -274
  607. package/dist/fcstd/convert.js.map +0 -1
  608. package/dist/fcstd/document.d.ts +0 -48
  609. package/dist/fcstd/document.d.ts.map +0 -1
  610. package/dist/fcstd/document.js +0 -140
  611. package/dist/fcstd/document.js.map +0 -1
  612. package/dist/fcstd/expressions.d.ts +0 -74
  613. package/dist/fcstd/expressions.d.ts.map +0 -1
  614. package/dist/fcstd/expressions.js +0 -157
  615. package/dist/fcstd/expressions.js.map +0 -1
  616. package/dist/fcstd/external-geo.d.ts +0 -49
  617. package/dist/fcstd/external-geo.d.ts.map +0 -1
  618. package/dist/fcstd/external-geo.js +0 -140
  619. package/dist/fcstd/external-geo.js.map +0 -1
  620. package/dist/fcstd/feature-translate.d.ts +0 -189
  621. package/dist/fcstd/feature-translate.d.ts.map +0 -1
  622. package/dist/fcstd/feature-translate.js +0 -968
  623. package/dist/fcstd/feature-translate.js.map +0 -1
  624. package/dist/fcstd/index.d.ts +0 -23
  625. package/dist/fcstd/index.d.ts.map +0 -1
  626. package/dist/fcstd/index.js +0 -19
  627. package/dist/fcstd/index.js.map +0 -1
  628. package/dist/fcstd/placement.d.ts +0 -93
  629. package/dist/fcstd/placement.d.ts.map +0 -1
  630. package/dist/fcstd/placement.js +0 -117
  631. package/dist/fcstd/placement.js.map +0 -1
  632. package/dist/fcstd/planegcs-backend.d.ts +0 -34
  633. package/dist/fcstd/planegcs-backend.d.ts.map +0 -1
  634. package/dist/fcstd/planegcs-backend.js +0 -626
  635. package/dist/fcstd/planegcs-backend.js.map +0 -1
  636. package/dist/fcstd/sketch-parse.d.ts +0 -181
  637. package/dist/fcstd/sketch-parse.d.ts.map +0 -1
  638. package/dist/fcstd/sketch-parse.js +0 -227
  639. package/dist/fcstd/sketch-parse.js.map +0 -1
  640. package/dist/fcstd/sketch-solver.d.ts +0 -63
  641. package/dist/fcstd/sketch-solver.d.ts.map +0 -1
  642. package/dist/fcstd/sketch-solver.js +0 -28
  643. package/dist/fcstd/sketch-solver.js.map +0 -1
  644. package/dist/fcstd/sketch-verify.d.ts +0 -43
  645. package/dist/fcstd/sketch-verify.d.ts.map +0 -1
  646. package/dist/fcstd/sketch-verify.js +0 -62
  647. package/dist/fcstd/sketch-verify.js.map +0 -1
  648. package/dist/fcstd/structural-types.d.ts +0 -83
  649. package/dist/fcstd/structural-types.d.ts.map +0 -1
  650. package/dist/fcstd/structural-types.js +0 -121
  651. package/dist/fcstd/structural-types.js.map +0 -1
  652. package/dist/fcstd/unpack.d.ts +0 -44
  653. package/dist/fcstd/unpack.d.ts.map +0 -1
  654. package/dist/fcstd/unpack.js +0 -64
  655. package/dist/fcstd/unpack.js.map +0 -1
  656. package/dist/fcstd-convert.d.ts +0 -30
  657. package/dist/fcstd-convert.d.ts.map +0 -1
  658. package/dist/fcstd-convert.js +0 -27
  659. package/dist/fcstd-convert.js.map +0 -1
  660. package/dist/mesh/creased-normals.d.ts +0 -50
  661. package/dist/mesh/creased-normals.d.ts.map +0 -1
  662. package/dist/mesh/creased-normals.js +0 -114
  663. package/dist/mesh/creased-normals.js.map +0 -1
  664. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +0 -260
  665. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +0 -1
  666. package/dist/occt-kernel/generated/occtPlatform.generated.js +0 -875
  667. package/dist/occt-kernel/generated/occtPlatform.generated.js.map +0 -1
  668. package/dist/occt-kernel/stepMetaParser.d.ts +0 -44
  669. package/dist/occt-kernel/stepMetaParser.d.ts.map +0 -1
  670. package/dist/occt-kernel/stepMetaParser.js +0 -166
  671. package/dist/occt-kernel/stepMetaParser.js.map +0 -1
  672. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts +0 -106
  673. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts.map +0 -1
  674. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js +0 -341
  675. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js.map +0 -1
  676. package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts +0 -185
  677. package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts.map +0 -1
  678. package/dist/vendored/brepjs/2d/blueprints/blueprint.js +0 -361
  679. package/dist/vendored/brepjs/2d/blueprints/blueprint.js.map +0 -1
  680. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts +0 -15
  681. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts.map +0 -1
  682. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js +0 -28
  683. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js.map +0 -1
  684. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts +0 -29
  685. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts.map +0 -1
  686. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js +0 -86
  687. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js.map +0 -1
  688. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts +0 -57
  689. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts.map +0 -1
  690. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js +0 -92
  691. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js.map +0 -1
  692. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts +0 -58
  693. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts.map +0 -1
  694. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js +0 -346
  695. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js.map +0 -1
  696. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts +0 -30
  697. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts.map +0 -1
  698. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js +0 -45
  699. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js.map +0 -1
  700. package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts +0 -68
  701. package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts.map +0 -1
  702. package/dist/vendored/brepjs/2d/blueprints/blueprints.js +0 -116
  703. package/dist/vendored/brepjs/2d/blueprints/blueprints.js.map +0 -1
  704. package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts +0 -68
  705. package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts.map +0 -1
  706. package/dist/vendored/brepjs/2d/blueprints/boolean2D.js +0 -362
  707. package/dist/vendored/brepjs/2d/blueprints/boolean2D.js.map +0 -1
  708. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts +0 -34
  709. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts.map +0 -1
  710. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js +0 -176
  711. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js.map +0 -1
  712. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts +0 -55
  713. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts.map +0 -1
  714. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js +0 -110
  715. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js.map +0 -1
  716. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts +0 -41
  717. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts.map +0 -1
  718. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js +0 -90
  719. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js.map +0 -1
  720. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts +0 -85
  721. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts.map +0 -1
  722. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js +0 -136
  723. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js.map +0 -1
  724. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts +0 -48
  725. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts.map +0 -1
  726. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js +0 -154
  727. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js.map +0 -1
  728. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts +0 -342
  729. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts.map +0 -1
  730. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js +0 -32
  731. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js.map +0 -1
  732. package/dist/vendored/brepjs/2d/blueprints/index.d.ts +0 -16
  733. package/dist/vendored/brepjs/2d/blueprints/index.d.ts.map +0 -1
  734. package/dist/vendored/brepjs/2d/blueprints/index.js +0 -13
  735. package/dist/vendored/brepjs/2d/blueprints/index.js.map +0 -1
  736. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts +0 -18
  737. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts.map +0 -1
  738. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js +0 -230
  739. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js.map +0 -1
  740. package/dist/vendored/brepjs/2d/blueprints/lib.d.ts +0 -73
  741. package/dist/vendored/brepjs/2d/blueprints/lib.d.ts.map +0 -1
  742. package/dist/vendored/brepjs/2d/blueprints/lib.js +0 -103
  743. package/dist/vendored/brepjs/2d/blueprints/lib.js.map +0 -1
  744. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts +0 -31
  745. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts.map +0 -1
  746. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js +0 -226
  747. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js.map +0 -1
  748. package/dist/vendored/brepjs/2d/blueprints/svg.d.ts +0 -22
  749. package/dist/vendored/brepjs/2d/blueprints/svg.d.ts.map +0 -1
  750. package/dist/vendored/brepjs/2d/blueprints/svg.js +0 -30
  751. package/dist/vendored/brepjs/2d/blueprints/svg.js.map +0 -1
  752. package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts +0 -124
  753. package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts.map +0 -1
  754. package/dist/vendored/brepjs/2d/curve2dGeometryFns.js +0 -235
  755. package/dist/vendored/brepjs/2d/curve2dGeometryFns.js.map +0 -1
  756. package/dist/vendored/brepjs/2d/curves.d.ts +0 -45
  757. package/dist/vendored/brepjs/2d/curves.d.ts.map +0 -1
  758. package/dist/vendored/brepjs/2d/curves.js +0 -139
  759. package/dist/vendored/brepjs/2d/curves.js.map +0 -1
  760. package/dist/vendored/brepjs/2d/lib/approximations.d.ts +0 -47
  761. package/dist/vendored/brepjs/2d/lib/approximations.d.ts.map +0 -1
  762. package/dist/vendored/brepjs/2d/lib/approximations.js +0 -82
  763. package/dist/vendored/brepjs/2d/lib/approximations.js.map +0 -1
  764. package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts +0 -39
  765. package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts.map +0 -1
  766. package/dist/vendored/brepjs/2d/lib/boundingBox2d.js +0 -88
  767. package/dist/vendored/brepjs/2d/lib/boundingBox2d.js.map +0 -1
  768. package/dist/vendored/brepjs/2d/lib/curve2D.d.ts +0 -82
  769. package/dist/vendored/brepjs/2d/lib/curve2D.d.ts.map +0 -1
  770. package/dist/vendored/brepjs/2d/lib/curve2D.js +0 -258
  771. package/dist/vendored/brepjs/2d/lib/curve2D.js.map +0 -1
  772. package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts +0 -53
  773. package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts.map +0 -1
  774. package/dist/vendored/brepjs/2d/lib/curve2dFns.js +0 -69
  775. package/dist/vendored/brepjs/2d/lib/curve2dFns.js.map +0 -1
  776. package/dist/vendored/brepjs/2d/lib/customCorners.d.ts +0 -29
  777. package/dist/vendored/brepjs/2d/lib/customCorners.d.ts.map +0 -1
  778. package/dist/vendored/brepjs/2d/lib/customCorners.js +0 -237
  779. package/dist/vendored/brepjs/2d/lib/customCorners.js.map +0 -1
  780. package/dist/vendored/brepjs/2d/lib/definitions.d.ts +0 -12
  781. package/dist/vendored/brepjs/2d/lib/definitions.d.ts.map +0 -1
  782. package/dist/vendored/brepjs/2d/lib/definitions.js +0 -19
  783. package/dist/vendored/brepjs/2d/lib/definitions.js.map +0 -1
  784. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts +0 -21
  785. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts.map +0 -1
  786. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js +0 -71
  787. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js.map +0 -1
  788. package/dist/vendored/brepjs/2d/lib/index.d.ts +0 -14
  789. package/dist/vendored/brepjs/2d/lib/index.d.ts.map +0 -1
  790. package/dist/vendored/brepjs/2d/lib/index.js +0 -14
  791. package/dist/vendored/brepjs/2d/lib/index.js.map +0 -1
  792. package/dist/vendored/brepjs/2d/lib/intersections.d.ts +0 -34
  793. package/dist/vendored/brepjs/2d/lib/intersections.d.ts.map +0 -1
  794. package/dist/vendored/brepjs/2d/lib/intersections.js +0 -77
  795. package/dist/vendored/brepjs/2d/lib/intersections.js.map +0 -1
  796. package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts +0 -63
  797. package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts.map +0 -1
  798. package/dist/vendored/brepjs/2d/lib/makeCurves.js +0 -117
  799. package/dist/vendored/brepjs/2d/lib/makeCurves.js.map +0 -1
  800. package/dist/vendored/brepjs/2d/lib/offset.d.ts +0 -30
  801. package/dist/vendored/brepjs/2d/lib/offset.d.ts.map +0 -1
  802. package/dist/vendored/brepjs/2d/lib/offset.js +0 -109
  803. package/dist/vendored/brepjs/2d/lib/offset.js.map +0 -1
  804. package/dist/vendored/brepjs/2d/lib/precision.d.ts +0 -12
  805. package/dist/vendored/brepjs/2d/lib/precision.d.ts.map +0 -1
  806. package/dist/vendored/brepjs/2d/lib/precision.js +0 -12
  807. package/dist/vendored/brepjs/2d/lib/precision.js.map +0 -1
  808. package/dist/vendored/brepjs/2d/lib/stitching.d.ts +0 -15
  809. package/dist/vendored/brepjs/2d/lib/stitching.d.ts.map +0 -1
  810. package/dist/vendored/brepjs/2d/lib/stitching.js +0 -67
  811. package/dist/vendored/brepjs/2d/lib/stitching.js.map +0 -1
  812. package/dist/vendored/brepjs/2d/lib/svgPath.d.ts +0 -4
  813. package/dist/vendored/brepjs/2d/lib/svgPath.d.ts.map +0 -1
  814. package/dist/vendored/brepjs/2d/lib/svgPath.js +0 -114
  815. package/dist/vendored/brepjs/2d/lib/svgPath.js.map +0 -1
  816. package/dist/vendored/brepjs/2d/lib/utils.d.ts +0 -11
  817. package/dist/vendored/brepjs/2d/lib/utils.d.ts.map +0 -1
  818. package/dist/vendored/brepjs/2d/lib/utils.js +0 -24
  819. package/dist/vendored/brepjs/2d/lib/utils.js.map +0 -1
  820. package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts +0 -19
  821. package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts.map +0 -1
  822. package/dist/vendored/brepjs/2d/lib/vectorOperations.js +0 -26
  823. package/dist/vendored/brepjs/2d/lib/vectorOperations.js.map +0 -1
  824. package/dist/vendored/brepjs/2d.d.ts +0 -26
  825. package/dist/vendored/brepjs/2d.d.ts.map +0 -1
  826. package/dist/vendored/brepjs/2d.js +0 -33
  827. package/dist/vendored/brepjs/2d.js.map +0 -1
  828. package/dist/vendored/brepjs/core/constants.d.ts +0 -7
  829. package/dist/vendored/brepjs/core/constants.d.ts.map +0 -1
  830. package/dist/vendored/brepjs/core/constants.js +0 -7
  831. package/dist/vendored/brepjs/core/constants.js.map +0 -1
  832. package/dist/vendored/brepjs/core/curve2dHandle.d.ts +0 -35
  833. package/dist/vendored/brepjs/core/curve2dHandle.d.ts.map +0 -1
  834. package/dist/vendored/brepjs/core/curve2dHandle.js +0 -48
  835. package/dist/vendored/brepjs/core/curve2dHandle.js.map +0 -1
  836. package/dist/vendored/brepjs/core/dimensionTypes.d.ts +0 -61
  837. package/dist/vendored/brepjs/core/dimensionTypes.d.ts.map +0 -1
  838. package/dist/vendored/brepjs/core/dimensionTypes.js +0 -54
  839. package/dist/vendored/brepjs/core/dimensionTypes.js.map +0 -1
  840. package/dist/vendored/brepjs/core/disposal.d.ts +0 -136
  841. package/dist/vendored/brepjs/core/disposal.d.ts.map +0 -1
  842. package/dist/vendored/brepjs/core/disposal.js +0 -441
  843. package/dist/vendored/brepjs/core/disposal.js.map +0 -1
  844. package/dist/vendored/brepjs/core/errors.d.ts +0 -191
  845. package/dist/vendored/brepjs/core/errors.d.ts.map +0 -1
  846. package/dist/vendored/brepjs/core/errors.js +0 -238
  847. package/dist/vendored/brepjs/core/errors.js.map +0 -1
  848. package/dist/vendored/brepjs/core/kernelBoundary.d.ts +0 -40
  849. package/dist/vendored/brepjs/core/kernelBoundary.d.ts.map +0 -1
  850. package/dist/vendored/brepjs/core/kernelBoundary.js +0 -99
  851. package/dist/vendored/brepjs/core/kernelBoundary.js.map +0 -1
  852. package/dist/vendored/brepjs/core/kernelCall.d.ts +0 -48
  853. package/dist/vendored/brepjs/core/kernelCall.d.ts.map +0 -1
  854. package/dist/vendored/brepjs/core/kernelCall.js +0 -154
  855. package/dist/vendored/brepjs/core/kernelCall.js.map +0 -1
  856. package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts +0 -17
  857. package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts.map +0 -1
  858. package/dist/vendored/brepjs/core/kernelErrorTranslation.js +0 -98
  859. package/dist/vendored/brepjs/core/kernelErrorTranslation.js.map +0 -1
  860. package/dist/vendored/brepjs/core/planeOps.d.ts +0 -62
  861. package/dist/vendored/brepjs/core/planeOps.d.ts.map +0 -1
  862. package/dist/vendored/brepjs/core/planeOps.js +0 -148
  863. package/dist/vendored/brepjs/core/planeOps.js.map +0 -1
  864. package/dist/vendored/brepjs/core/planeTypes.d.ts +0 -22
  865. package/dist/vendored/brepjs/core/planeTypes.d.ts.map +0 -1
  866. package/dist/vendored/brepjs/core/planeTypes.js +0 -6
  867. package/dist/vendored/brepjs/core/planeTypes.js.map +0 -1
  868. package/dist/vendored/brepjs/core/result.d.ts +0 -85
  869. package/dist/vendored/brepjs/core/result.d.ts.map +0 -1
  870. package/dist/vendored/brepjs/core/result.js +0 -212
  871. package/dist/vendored/brepjs/core/result.js.map +0 -1
  872. package/dist/vendored/brepjs/core/shapeTypeCache.d.ts +0 -27
  873. package/dist/vendored/brepjs/core/shapeTypeCache.d.ts.map +0 -1
  874. package/dist/vendored/brepjs/core/shapeTypeCache.js +0 -40
  875. package/dist/vendored/brepjs/core/shapeTypeCache.js.map +0 -1
  876. package/dist/vendored/brepjs/core/shapeTypes.d.ts +0 -199
  877. package/dist/vendored/brepjs/core/shapeTypes.d.ts.map +0 -1
  878. package/dist/vendored/brepjs/core/shapeTypes.js +0 -267
  879. package/dist/vendored/brepjs/core/shapeTypes.js.map +0 -1
  880. package/dist/vendored/brepjs/core/typeDiscriminants.d.ts +0 -25
  881. package/dist/vendored/brepjs/core/typeDiscriminants.d.ts.map +0 -1
  882. package/dist/vendored/brepjs/core/typeDiscriminants.js +0 -50
  883. package/dist/vendored/brepjs/core/typeDiscriminants.js.map +0 -1
  884. package/dist/vendored/brepjs/core/types.d.ts +0 -51
  885. package/dist/vendored/brepjs/core/types.d.ts.map +0 -1
  886. package/dist/vendored/brepjs/core/types.js +0 -35
  887. package/dist/vendored/brepjs/core/types.js.map +0 -1
  888. package/dist/vendored/brepjs/core/validityTypes.d.ts +0 -143
  889. package/dist/vendored/brepjs/core/validityTypes.d.ts.map +0 -1
  890. package/dist/vendored/brepjs/core/validityTypes.js +0 -174
  891. package/dist/vendored/brepjs/core/validityTypes.js.map +0 -1
  892. package/dist/vendored/brepjs/core/vecOps.d.ts +0 -53
  893. package/dist/vendored/brepjs/core/vecOps.d.ts.map +0 -1
  894. package/dist/vendored/brepjs/core/vecOps.js +0 -131
  895. package/dist/vendored/brepjs/core/vecOps.js.map +0 -1
  896. package/dist/vendored/brepjs/core.d.ts +0 -17
  897. package/dist/vendored/brepjs/core.d.ts.map +0 -1
  898. package/dist/vendored/brepjs/core.js +0 -13
  899. package/dist/vendored/brepjs/core.js.map +0 -1
  900. package/dist/vendored/brepjs/gear/gearFns.d.ts +0 -148
  901. package/dist/vendored/brepjs/gear/gearFns.d.ts.map +0 -1
  902. package/dist/vendored/brepjs/gear/gearFns.js +0 -479
  903. package/dist/vendored/brepjs/gear/gearFns.js.map +0 -1
  904. package/dist/vendored/brepjs/gear/gearMath.d.ts +0 -89
  905. package/dist/vendored/brepjs/gear/gearMath.d.ts.map +0 -1
  906. package/dist/vendored/brepjs/gear/gearMath.js +0 -195
  907. package/dist/vendored/brepjs/gear/gearMath.js.map +0 -1
  908. package/dist/vendored/brepjs/gear/gearProfile.d.ts +0 -17
  909. package/dist/vendored/brepjs/gear/gearProfile.d.ts.map +0 -1
  910. package/dist/vendored/brepjs/gear/gearProfile.js +0 -159
  911. package/dist/vendored/brepjs/gear/gearProfile.js.map +0 -1
  912. package/dist/vendored/brepjs/gear/index.d.ts +0 -4
  913. package/dist/vendored/brepjs/gear/index.d.ts.map +0 -1
  914. package/dist/vendored/brepjs/gear/index.js +0 -4
  915. package/dist/vendored/brepjs/gear/index.js.map +0 -1
  916. package/dist/vendored/brepjs/index.d.ts +0 -152
  917. package/dist/vendored/brepjs/index.d.ts.map +0 -1
  918. package/dist/vendored/brepjs/index.js +0 -195
  919. package/dist/vendored/brepjs/index.js.map +0 -1
  920. package/dist/vendored/brepjs/io/dxfExportFns.d.ts +0 -74
  921. package/dist/vendored/brepjs/io/dxfExportFns.d.ts.map +0 -1
  922. package/dist/vendored/brepjs/io/dxfExportFns.js +0 -134
  923. package/dist/vendored/brepjs/io/dxfExportFns.js.map +0 -1
  924. package/dist/vendored/brepjs/io/dxfImportFns.d.ts +0 -20
  925. package/dist/vendored/brepjs/io/dxfImportFns.d.ts.map +0 -1
  926. package/dist/vendored/brepjs/io/dxfImportFns.js +0 -132
  927. package/dist/vendored/brepjs/io/dxfImportFns.js.map +0 -1
  928. package/dist/vendored/brepjs/io/gltfExportFns.d.ts +0 -97
  929. package/dist/vendored/brepjs/io/gltfExportFns.d.ts.map +0 -1
  930. package/dist/vendored/brepjs/io/gltfExportFns.js +0 -460
  931. package/dist/vendored/brepjs/io/gltfExportFns.js.map +0 -1
  932. package/dist/vendored/brepjs/io/gltfImportFns.d.ts +0 -21
  933. package/dist/vendored/brepjs/io/gltfImportFns.d.ts.map +0 -1
  934. package/dist/vendored/brepjs/io/gltfImportFns.js +0 -33
  935. package/dist/vendored/brepjs/io/gltfImportFns.js.map +0 -1
  936. package/dist/vendored/brepjs/io/importFns.d.ts +0 -56
  937. package/dist/vendored/brepjs/io/importFns.d.ts.map +0 -1
  938. package/dist/vendored/brepjs/io/importFns.js +0 -108
  939. package/dist/vendored/brepjs/io/importFns.js.map +0 -1
  940. package/dist/vendored/brepjs/io/ioUtils.d.ts +0 -22
  941. package/dist/vendored/brepjs/io/ioUtils.d.ts.map +0 -1
  942. package/dist/vendored/brepjs/io/ioUtils.js +0 -56
  943. package/dist/vendored/brepjs/io/ioUtils.js.map +0 -1
  944. package/dist/vendored/brepjs/io/objExportFns.d.ts +0 -23
  945. package/dist/vendored/brepjs/io/objExportFns.d.ts.map +0 -1
  946. package/dist/vendored/brepjs/io/objExportFns.js +0 -67
  947. package/dist/vendored/brepjs/io/objExportFns.js.map +0 -1
  948. package/dist/vendored/brepjs/io/objImportFns.d.ts +0 -26
  949. package/dist/vendored/brepjs/io/objImportFns.d.ts.map +0 -1
  950. package/dist/vendored/brepjs/io/objImportFns.js +0 -96
  951. package/dist/vendored/brepjs/io/objImportFns.js.map +0 -1
  952. package/dist/vendored/brepjs/io/stepConfigFns.d.ts +0 -30
  953. package/dist/vendored/brepjs/io/stepConfigFns.d.ts.map +0 -1
  954. package/dist/vendored/brepjs/io/stepConfigFns.js +0 -30
  955. package/dist/vendored/brepjs/io/stepConfigFns.js.map +0 -1
  956. package/dist/vendored/brepjs/io/svgImportFns.d.ts +0 -58
  957. package/dist/vendored/brepjs/io/svgImportFns.d.ts.map +0 -1
  958. package/dist/vendored/brepjs/io/svgImportFns.js +0 -394
  959. package/dist/vendored/brepjs/io/svgImportFns.js.map +0 -1
  960. package/dist/vendored/brepjs/io/threemfExportFns.d.ts +0 -48
  961. package/dist/vendored/brepjs/io/threemfExportFns.d.ts.map +0 -1
  962. package/dist/vendored/brepjs/io/threemfExportFns.js +0 -345
  963. package/dist/vendored/brepjs/io/threemfExportFns.js.map +0 -1
  964. package/dist/vendored/brepjs/io/threemfImportFns.d.ts +0 -22
  965. package/dist/vendored/brepjs/io/threemfImportFns.d.ts.map +0 -1
  966. package/dist/vendored/brepjs/io/threemfImportFns.js +0 -350
  967. package/dist/vendored/brepjs/io/threemfImportFns.js.map +0 -1
  968. package/dist/vendored/brepjs/io.d.ts +0 -17
  969. package/dist/vendored/brepjs/io.d.ts.map +0 -1
  970. package/dist/vendored/brepjs/io.js +0 -20
  971. package/dist/vendored/brepjs/io.js.map +0 -1
  972. package/dist/vendored/brepjs/kernel/capabilities.d.ts +0 -36
  973. package/dist/vendored/brepjs/kernel/capabilities.d.ts.map +0 -1
  974. package/dist/vendored/brepjs/kernel/capabilities.js +0 -35
  975. package/dist/vendored/brepjs/kernel/capabilities.js.map +0 -1
  976. package/dist/vendored/brepjs/kernel/geometry2d.d.ts +0 -96
  977. package/dist/vendored/brepjs/kernel/geometry2d.d.ts.map +0 -1
  978. package/dist/vendored/brepjs/kernel/geometry2d.js +0 -885
  979. package/dist/vendored/brepjs/kernel/geometry2d.js.map +0 -1
  980. package/dist/vendored/brepjs/kernel/hullGeometry.d.ts +0 -23
  981. package/dist/vendored/brepjs/kernel/hullGeometry.d.ts.map +0 -1
  982. package/dist/vendored/brepjs/kernel/hullGeometry.js +0 -312
  983. package/dist/vendored/brepjs/kernel/hullGeometry.js.map +0 -1
  984. package/dist/vendored/brepjs/kernel/index.d.ts +0 -73
  985. package/dist/vendored/brepjs/kernel/index.d.ts.map +0 -1
  986. package/dist/vendored/brepjs/kernel/index.js +0 -161
  987. package/dist/vendored/brepjs/kernel/index.js.map +0 -1
  988. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts +0 -44
  989. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts.map +0 -1
  990. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js +0 -11
  991. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js.map +0 -1
  992. package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts +0 -67
  993. package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts.map +0 -1
  994. package/dist/vendored/brepjs/kernel/interfaces/builderOps.js +0 -12
  995. package/dist/vendored/brepjs/kernel/interfaces/builderOps.js.map +0 -1
  996. package/dist/vendored/brepjs/kernel/interfaces/core.d.ts +0 -46
  997. package/dist/vendored/brepjs/kernel/interfaces/core.d.ts.map +0 -1
  998. package/dist/vendored/brepjs/kernel/interfaces/core.js +0 -11
  999. package/dist/vendored/brepjs/kernel/interfaces/core.js.map +0 -1
  1000. package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts +0 -53
  1001. package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts.map +0 -1
  1002. package/dist/vendored/brepjs/kernel/interfaces/curveOps.js +0 -12
  1003. package/dist/vendored/brepjs/kernel/interfaces/curveOps.js.map +0 -1
  1004. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts +0 -32
  1005. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts.map +0 -1
  1006. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js +0 -14
  1007. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js.map +0 -1
  1008. package/dist/vendored/brepjs/kernel/interfaces/index.d.ts +0 -43
  1009. package/dist/vendored/brepjs/kernel/interfaces/index.d.ts.map +0 -1
  1010. package/dist/vendored/brepjs/kernel/interfaces/index.js +0 -12
  1011. package/dist/vendored/brepjs/kernel/interfaces/index.js.map +0 -1
  1012. package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts +0 -65
  1013. package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts.map +0 -1
  1014. package/dist/vendored/brepjs/kernel/interfaces/ioOps.js +0 -9
  1015. package/dist/vendored/brepjs/kernel/interfaces/ioOps.js.map +0 -1
  1016. package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts +0 -55
  1017. package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts.map +0 -1
  1018. package/dist/vendored/brepjs/kernel/interfaces/measureOps.js +0 -9
  1019. package/dist/vendored/brepjs/kernel/interfaces/measureOps.js.map +0 -1
  1020. package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts +0 -25
  1021. package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts.map +0 -1
  1022. package/dist/vendored/brepjs/kernel/interfaces/meshOps.js +0 -8
  1023. package/dist/vendored/brepjs/kernel/interfaces/meshOps.js.map +0 -1
  1024. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts +0 -53
  1025. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts.map +0 -1
  1026. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js +0 -10
  1027. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js.map +0 -1
  1028. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts +0 -22
  1029. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts.map +0 -1
  1030. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js +0 -11
  1031. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js.map +0 -1
  1032. package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts +0 -43
  1033. package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts.map +0 -1
  1034. package/dist/vendored/brepjs/kernel/interfaces/repairOps.js +0 -9
  1035. package/dist/vendored/brepjs/kernel/interfaces/repairOps.js.map +0 -1
  1036. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts +0 -72
  1037. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts.map +0 -1
  1038. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js +0 -13
  1039. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js.map +0 -1
  1040. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts +0 -73
  1041. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts.map +0 -1
  1042. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js +0 -11
  1043. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js.map +0 -1
  1044. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts +0 -62
  1045. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts.map +0 -1
  1046. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js +0 -9
  1047. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js.map +0 -1
  1048. package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts +0 -80
  1049. package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts.map +0 -1
  1050. package/dist/vendored/brepjs/kernel/interfaces/transformOps.js +0 -11
  1051. package/dist/vendored/brepjs/kernel/interfaces/transformOps.js.map +0 -1
  1052. package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts +0 -145
  1053. package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts.map +0 -1
  1054. package/dist/vendored/brepjs/kernel/kernel2dTypes.js +0 -18
  1055. package/dist/vendored/brepjs/kernel/kernel2dTypes.js.map +0 -1
  1056. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts +0 -41
  1057. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts.map +0 -1
  1058. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js +0 -2
  1059. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js.map +0 -1
  1060. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts +0 -17
  1061. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts.map +0 -1
  1062. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js +0 -75
  1063. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js.map +0 -1
  1064. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts +0 -36
  1065. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts.map +0 -1
  1066. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js +0 -116
  1067. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js.map +0 -1
  1068. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts +0 -43
  1069. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts.map +0 -1
  1070. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js +0 -292
  1071. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js.map +0 -1
  1072. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts +0 -34
  1073. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts.map +0 -1
  1074. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js +0 -164
  1075. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js.map +0 -1
  1076. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts +0 -26
  1077. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts.map +0 -1
  1078. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js +0 -256
  1079. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js.map +0 -1
  1080. package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts +0 -42
  1081. package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts.map +0 -1
  1082. package/dist/vendored/brepjs/kernel/occtWasm/helpers.js +0 -146
  1083. package/dist/vendored/brepjs/kernel/occtWasm/helpers.js.map +0 -1
  1084. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts +0 -17
  1085. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts.map +0 -1
  1086. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js +0 -55
  1087. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js.map +0 -1
  1088. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts +0 -58
  1089. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts.map +0 -1
  1090. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js +0 -303
  1091. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js.map +0 -1
  1092. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts +0 -113
  1093. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts.map +0 -1
  1094. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js +0 -731
  1095. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js.map +0 -1
  1096. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts +0 -62
  1097. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts.map +0 -1
  1098. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js +0 -338
  1099. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js.map +0 -1
  1100. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts +0 -12
  1101. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts.map +0 -1
  1102. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js +0 -120
  1103. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js.map +0 -1
  1104. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts +0 -20
  1105. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts.map +0 -1
  1106. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js +0 -187
  1107. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js.map +0 -1
  1108. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts +0 -513
  1109. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts.map +0 -1
  1110. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js +0 -1016
  1111. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js.map +0 -1
  1112. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts +0 -332
  1113. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts.map +0 -1
  1114. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js +0 -10
  1115. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js.map +0 -1
  1116. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts +0 -16
  1117. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts.map +0 -1
  1118. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js +0 -64
  1119. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js.map +0 -1
  1120. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts +0 -16
  1121. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts.map +0 -1
  1122. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js +0 -38
  1123. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js.map +0 -1
  1124. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts +0 -56
  1125. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts.map +0 -1
  1126. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js +0 -247
  1127. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js.map +0 -1
  1128. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts +0 -56
  1129. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts.map +0 -1
  1130. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js +0 -235
  1131. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js.map +0 -1
  1132. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts +0 -25
  1133. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts.map +0 -1
  1134. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js +0 -127
  1135. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js.map +0 -1
  1136. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts +0 -40
  1137. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts.map +0 -1
  1138. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js +0 -275
  1139. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js.map +0 -1
  1140. package/dist/vendored/brepjs/kernel/quality.d.ts +0 -28
  1141. package/dist/vendored/brepjs/kernel/quality.d.ts.map +0 -1
  1142. package/dist/vendored/brepjs/kernel/quality.js +0 -40
  1143. package/dist/vendored/brepjs/kernel/quality.js.map +0 -1
  1144. package/dist/vendored/brepjs/kernel/solverAdapter.d.ts +0 -50
  1145. package/dist/vendored/brepjs/kernel/solverAdapter.d.ts.map +0 -1
  1146. package/dist/vendored/brepjs/kernel/solverAdapter.js +0 -330
  1147. package/dist/vendored/brepjs/kernel/solverAdapter.js.map +0 -1
  1148. package/dist/vendored/brepjs/kernel/stlBuilder.d.ts +0 -21
  1149. package/dist/vendored/brepjs/kernel/stlBuilder.d.ts.map +0 -1
  1150. package/dist/vendored/brepjs/kernel/stlBuilder.js +0 -106
  1151. package/dist/vendored/brepjs/kernel/stlBuilder.js.map +0 -1
  1152. package/dist/vendored/brepjs/kernel/types.d.ts +0 -214
  1153. package/dist/vendored/brepjs/kernel/types.d.ts.map +0 -1
  1154. package/dist/vendored/brepjs/kernel/types.js +0 -22
  1155. package/dist/vendored/brepjs/kernel/types.js.map +0 -1
  1156. package/dist/vendored/brepjs/kernel/unsupported.d.ts +0 -15
  1157. package/dist/vendored/brepjs/kernel/unsupported.d.ts.map +0 -1
  1158. package/dist/vendored/brepjs/kernel/unsupported.js +0 -25
  1159. package/dist/vendored/brepjs/kernel/unsupported.js.map +0 -1
  1160. package/dist/vendored/brepjs/measurement/interferenceFns.d.ts +0 -68
  1161. package/dist/vendored/brepjs/measurement/interferenceFns.d.ts.map +0 -1
  1162. package/dist/vendored/brepjs/measurement/interferenceFns.js +0 -102
  1163. package/dist/vendored/brepjs/measurement/interferenceFns.js.map +0 -1
  1164. package/dist/vendored/brepjs/measurement/measureCache.d.ts +0 -20
  1165. package/dist/vendored/brepjs/measurement/measureCache.d.ts.map +0 -1
  1166. package/dist/vendored/brepjs/measurement/measureCache.js +0 -28
  1167. package/dist/vendored/brepjs/measurement/measureCache.js.map +0 -1
  1168. package/dist/vendored/brepjs/measurement/measureFns.d.ts +0 -92
  1169. package/dist/vendored/brepjs/measurement/measureFns.d.ts.map +0 -1
  1170. package/dist/vendored/brepjs/measurement/measureFns.js +0 -239
  1171. package/dist/vendored/brepjs/measurement/measureFns.js.map +0 -1
  1172. package/dist/vendored/brepjs/measurement/measureTypes.d.ts +0 -35
  1173. package/dist/vendored/brepjs/measurement/measureTypes.d.ts.map +0 -1
  1174. package/dist/vendored/brepjs/measurement/measureTypes.js +0 -7
  1175. package/dist/vendored/brepjs/measurement/measureTypes.js.map +0 -1
  1176. package/dist/vendored/brepjs/measurement.d.ts +0 -5
  1177. package/dist/vendored/brepjs/measurement.d.ts.map +0 -1
  1178. package/dist/vendored/brepjs/measurement.js +0 -5
  1179. package/dist/vendored/brepjs/measurement.js.map +0 -1
  1180. package/dist/vendored/brepjs/ns/booleans.d.ts +0 -11
  1181. package/dist/vendored/brepjs/ns/booleans.d.ts.map +0 -1
  1182. package/dist/vendored/brepjs/ns/booleans.js +0 -11
  1183. package/dist/vendored/brepjs/ns/booleans.js.map +0 -1
  1184. package/dist/vendored/brepjs/ns/construction.d.ts +0 -10
  1185. package/dist/vendored/brepjs/ns/construction.d.ts.map +0 -1
  1186. package/dist/vendored/brepjs/ns/construction.js +0 -10
  1187. package/dist/vendored/brepjs/ns/construction.js.map +0 -1
  1188. package/dist/vendored/brepjs/ns/ioNs.d.ts +0 -18
  1189. package/dist/vendored/brepjs/ns/ioNs.d.ts.map +0 -1
  1190. package/dist/vendored/brepjs/ns/ioNs.js +0 -20
  1191. package/dist/vendored/brepjs/ns/ioNs.js.map +0 -1
  1192. package/dist/vendored/brepjs/ns/measurement.d.ts +0 -6
  1193. package/dist/vendored/brepjs/ns/measurement.d.ts.map +0 -1
  1194. package/dist/vendored/brepjs/ns/measurement.js +0 -6
  1195. package/dist/vendored/brepjs/ns/measurement.js.map +0 -1
  1196. package/dist/vendored/brepjs/ns/modifiers.d.ts +0 -6
  1197. package/dist/vendored/brepjs/ns/modifiers.d.ts.map +0 -1
  1198. package/dist/vendored/brepjs/ns/modifiers.js +0 -6
  1199. package/dist/vendored/brepjs/ns/modifiers.js.map +0 -1
  1200. package/dist/vendored/brepjs/ns/patterns.d.ts +0 -5
  1201. package/dist/vendored/brepjs/ns/patterns.d.ts.map +0 -1
  1202. package/dist/vendored/brepjs/ns/patterns.js +0 -5
  1203. package/dist/vendored/brepjs/ns/patterns.js.map +0 -1
  1204. package/dist/vendored/brepjs/ns/primitives.d.ts +0 -7
  1205. package/dist/vendored/brepjs/ns/primitives.d.ts.map +0 -1
  1206. package/dist/vendored/brepjs/ns/primitives.js +0 -7
  1207. package/dist/vendored/brepjs/ns/primitives.js.map +0 -1
  1208. package/dist/vendored/brepjs/ns/query.d.ts +0 -6
  1209. package/dist/vendored/brepjs/ns/query.d.ts.map +0 -1
  1210. package/dist/vendored/brepjs/ns/query.js +0 -6
  1211. package/dist/vendored/brepjs/ns/query.js.map +0 -1
  1212. package/dist/vendored/brepjs/ns/transforms.d.ts +0 -5
  1213. package/dist/vendored/brepjs/ns/transforms.d.ts.map +0 -1
  1214. package/dist/vendored/brepjs/ns/transforms.js +0 -5
  1215. package/dist/vendored/brepjs/ns/transforms.js.map +0 -1
  1216. package/dist/vendored/brepjs/operations/api.d.ts +0 -39
  1217. package/dist/vendored/brepjs/operations/api.d.ts.map +0 -1
  1218. package/dist/vendored/brepjs/operations/api.js +0 -41
  1219. package/dist/vendored/brepjs/operations/api.js.map +0 -1
  1220. package/dist/vendored/brepjs/operations/assemblyFns.d.ts +0 -54
  1221. package/dist/vendored/brepjs/operations/assemblyFns.d.ts.map +0 -1
  1222. package/dist/vendored/brepjs/operations/assemblyFns.js +0 -91
  1223. package/dist/vendored/brepjs/operations/assemblyFns.js.map +0 -1
  1224. package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts +0 -43
  1225. package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts.map +0 -1
  1226. package/dist/vendored/brepjs/operations/compoundOpsFns.js +0 -368
  1227. package/dist/vendored/brepjs/operations/compoundOpsFns.js.map +0 -1
  1228. package/dist/vendored/brepjs/operations/convexHullFns.d.ts +0 -27
  1229. package/dist/vendored/brepjs/operations/convexHullFns.d.ts.map +0 -1
  1230. package/dist/vendored/brepjs/operations/convexHullFns.js +0 -50
  1231. package/dist/vendored/brepjs/operations/convexHullFns.js.map +0 -1
  1232. package/dist/vendored/brepjs/operations/dhFns.d.ts +0 -47
  1233. package/dist/vendored/brepjs/operations/dhFns.d.ts.map +0 -1
  1234. package/dist/vendored/brepjs/operations/dhFns.js +0 -53
  1235. package/dist/vendored/brepjs/operations/dhFns.js.map +0 -1
  1236. package/dist/vendored/brepjs/operations/exporterFns.d.ts +0 -47
  1237. package/dist/vendored/brepjs/operations/exporterFns.d.ts.map +0 -1
  1238. package/dist/vendored/brepjs/operations/exporterFns.js +0 -66
  1239. package/dist/vendored/brepjs/operations/exporterFns.js.map +0 -1
  1240. package/dist/vendored/brepjs/operations/exporterUtils.d.ts +0 -6
  1241. package/dist/vendored/brepjs/operations/exporterUtils.d.ts.map +0 -1
  1242. package/dist/vendored/brepjs/operations/exporterUtils.js +0 -5
  1243. package/dist/vendored/brepjs/operations/exporterUtils.js.map +0 -1
  1244. package/dist/vendored/brepjs/operations/exporters.d.ts +0 -59
  1245. package/dist/vendored/brepjs/operations/exporters.d.ts.map +0 -1
  1246. package/dist/vendored/brepjs/operations/exporters.js +0 -74
  1247. package/dist/vendored/brepjs/operations/exporters.js.map +0 -1
  1248. package/dist/vendored/brepjs/operations/extrudeFns.d.ts +0 -47
  1249. package/dist/vendored/brepjs/operations/extrudeFns.d.ts.map +0 -1
  1250. package/dist/vendored/brepjs/operations/extrudeFns.js +0 -119
  1251. package/dist/vendored/brepjs/operations/extrudeFns.js.map +0 -1
  1252. package/dist/vendored/brepjs/operations/extrudeUtils.d.ts +0 -63
  1253. package/dist/vendored/brepjs/operations/extrudeUtils.d.ts.map +0 -1
  1254. package/dist/vendored/brepjs/operations/extrudeUtils.js +0 -33
  1255. package/dist/vendored/brepjs/operations/extrudeUtils.js.map +0 -1
  1256. package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts +0 -6
  1257. package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts.map +0 -1
  1258. package/dist/vendored/brepjs/operations/guidedSweepFns.js +0 -6
  1259. package/dist/vendored/brepjs/operations/guidedSweepFns.js.map +0 -1
  1260. package/dist/vendored/brepjs/operations/historyFns.d.ts +0 -83
  1261. package/dist/vendored/brepjs/operations/historyFns.d.ts.map +0 -1
  1262. package/dist/vendored/brepjs/operations/historyFns.js +0 -256
  1263. package/dist/vendored/brepjs/operations/historyFns.js.map +0 -1
  1264. package/dist/vendored/brepjs/operations/ikFns.d.ts +0 -74
  1265. package/dist/vendored/brepjs/operations/ikFns.d.ts.map +0 -1
  1266. package/dist/vendored/brepjs/operations/ikFns.js +0 -320
  1267. package/dist/vendored/brepjs/operations/ikFns.js.map +0 -1
  1268. package/dist/vendored/brepjs/operations/instanceFns.d.ts +0 -76
  1269. package/dist/vendored/brepjs/operations/instanceFns.d.ts.map +0 -1
  1270. package/dist/vendored/brepjs/operations/instanceFns.js +0 -128
  1271. package/dist/vendored/brepjs/operations/instanceFns.js.map +0 -1
  1272. package/dist/vendored/brepjs/operations/jointFns.d.ts +0 -176
  1273. package/dist/vendored/brepjs/operations/jointFns.d.ts.map +0 -1
  1274. package/dist/vendored/brepjs/operations/jointFns.js +0 -298
  1275. package/dist/vendored/brepjs/operations/jointFns.js.map +0 -1
  1276. package/dist/vendored/brepjs/operations/loftFns.d.ts +0 -60
  1277. package/dist/vendored/brepjs/operations/loftFns.d.ts.map +0 -1
  1278. package/dist/vendored/brepjs/operations/loftFns.js +0 -112
  1279. package/dist/vendored/brepjs/operations/loftFns.js.map +0 -1
  1280. package/dist/vendored/brepjs/operations/mateFns.d.ts +0 -53
  1281. package/dist/vendored/brepjs/operations/mateFns.d.ts.map +0 -1
  1282. package/dist/vendored/brepjs/operations/mateFns.js +0 -142
  1283. package/dist/vendored/brepjs/operations/mateFns.js.map +0 -1
  1284. package/dist/vendored/brepjs/operations/multiSweepFns.d.ts +0 -6
  1285. package/dist/vendored/brepjs/operations/multiSweepFns.d.ts.map +0 -1
  1286. package/dist/vendored/brepjs/operations/multiSweepFns.js +0 -6
  1287. package/dist/vendored/brepjs/operations/multiSweepFns.js.map +0 -1
  1288. package/dist/vendored/brepjs/operations/patternFns.d.ts +0 -46
  1289. package/dist/vendored/brepjs/operations/patternFns.d.ts.map +0 -1
  1290. package/dist/vendored/brepjs/operations/patternFns.js +0 -126
  1291. package/dist/vendored/brepjs/operations/patternFns.js.map +0 -1
  1292. package/dist/vendored/brepjs/operations/roofFns.d.ts +0 -25
  1293. package/dist/vendored/brepjs/operations/roofFns.d.ts.map +0 -1
  1294. package/dist/vendored/brepjs/operations/roofFns.js +0 -250
  1295. package/dist/vendored/brepjs/operations/roofFns.js.map +0 -1
  1296. package/dist/vendored/brepjs/operations/straightSkeleton.d.ts +0 -29
  1297. package/dist/vendored/brepjs/operations/straightSkeleton.d.ts.map +0 -1
  1298. package/dist/vendored/brepjs/operations/straightSkeleton.js +0 -440
  1299. package/dist/vendored/brepjs/operations/straightSkeleton.js.map +0 -1
  1300. package/dist/vendored/brepjs/operations/sweepFns.d.ts +0 -121
  1301. package/dist/vendored/brepjs/operations/sweepFns.d.ts.map +0 -1
  1302. package/dist/vendored/brepjs/operations/sweepFns.js +0 -438
  1303. package/dist/vendored/brepjs/operations/sweepFns.js.map +0 -1
  1304. package/dist/vendored/brepjs/operations/threadFns.d.ts +0 -57
  1305. package/dist/vendored/brepjs/operations/threadFns.d.ts.map +0 -1
  1306. package/dist/vendored/brepjs/operations/threadFns.js +0 -145
  1307. package/dist/vendored/brepjs/operations/threadFns.js.map +0 -1
  1308. package/dist/vendored/brepjs/operations/urdfFns.d.ts +0 -48
  1309. package/dist/vendored/brepjs/operations/urdfFns.d.ts.map +0 -1
  1310. package/dist/vendored/brepjs/operations/urdfFns.js +0 -171
  1311. package/dist/vendored/brepjs/operations/urdfFns.js.map +0 -1
  1312. package/dist/vendored/brepjs/operations.d.ts +0 -20
  1313. package/dist/vendored/brepjs/operations.d.ts.map +0 -1
  1314. package/dist/vendored/brepjs/operations.js +0 -26
  1315. package/dist/vendored/brepjs/operations.js.map +0 -1
  1316. package/dist/vendored/brepjs/projection/cameraFns.d.ts +0 -63
  1317. package/dist/vendored/brepjs/projection/cameraFns.d.ts.map +0 -1
  1318. package/dist/vendored/brepjs/projection/cameraFns.js +0 -89
  1319. package/dist/vendored/brepjs/projection/cameraFns.js.map +0 -1
  1320. package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts +0 -14
  1321. package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts.map +0 -1
  1322. package/dist/vendored/brepjs/projection/makeProjectedEdges.js +0 -111
  1323. package/dist/vendored/brepjs/projection/makeProjectedEdges.js.map +0 -1
  1324. package/dist/vendored/brepjs/projection/projectionPlanes.d.ts +0 -18
  1325. package/dist/vendored/brepjs/projection/projectionPlanes.d.ts.map +0 -1
  1326. package/dist/vendored/brepjs/projection/projectionPlanes.js +0 -23
  1327. package/dist/vendored/brepjs/projection/projectionPlanes.js.map +0 -1
  1328. package/dist/vendored/brepjs/projection.d.ts +0 -12
  1329. package/dist/vendored/brepjs/projection.d.ts.map +0 -1
  1330. package/dist/vendored/brepjs/projection.js +0 -12
  1331. package/dist/vendored/brepjs/projection.js.map +0 -1
  1332. package/dist/vendored/brepjs/query/cornerFinder.d.ts +0 -54
  1333. package/dist/vendored/brepjs/query/cornerFinder.d.ts.map +0 -1
  1334. package/dist/vendored/brepjs/query/cornerFinder.js +0 -73
  1335. package/dist/vendored/brepjs/query/cornerFinder.js.map +0 -1
  1336. package/dist/vendored/brepjs/query/directionUtils.d.ts +0 -9
  1337. package/dist/vendored/brepjs/query/directionUtils.d.ts.map +0 -1
  1338. package/dist/vendored/brepjs/query/directionUtils.js +0 -18
  1339. package/dist/vendored/brepjs/query/directionUtils.js.map +0 -1
  1340. package/dist/vendored/brepjs/query/edgeFinder.d.ts +0 -5
  1341. package/dist/vendored/brepjs/query/edgeFinder.d.ts.map +0 -1
  1342. package/dist/vendored/brepjs/query/edgeFinder.js +0 -5
  1343. package/dist/vendored/brepjs/query/edgeFinder.js.map +0 -1
  1344. package/dist/vendored/brepjs/query/faceFinder.d.ts +0 -5
  1345. package/dist/vendored/brepjs/query/faceFinder.d.ts.map +0 -1
  1346. package/dist/vendored/brepjs/query/faceFinder.js +0 -5
  1347. package/dist/vendored/brepjs/query/faceFinder.js.map +0 -1
  1348. package/dist/vendored/brepjs/query/finderCore.d.ts +0 -49
  1349. package/dist/vendored/brepjs/query/finderCore.d.ts.map +0 -1
  1350. package/dist/vendored/brepjs/query/finderCore.js +0 -120
  1351. package/dist/vendored/brepjs/query/finderCore.js.map +0 -1
  1352. package/dist/vendored/brepjs/query/finderFns.d.ts +0 -25
  1353. package/dist/vendored/brepjs/query/finderFns.d.ts.map +0 -1
  1354. package/dist/vendored/brepjs/query/finderFns.js +0 -25
  1355. package/dist/vendored/brepjs/query/finderFns.js.map +0 -1
  1356. package/dist/vendored/brepjs/query/helpers.d.ts +0 -11
  1357. package/dist/vendored/brepjs/query/helpers.d.ts.map +0 -1
  1358. package/dist/vendored/brepjs/query/helpers.js +0 -17
  1359. package/dist/vendored/brepjs/query/helpers.js.map +0 -1
  1360. package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts +0 -15
  1361. package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts.map +0 -1
  1362. package/dist/vendored/brepjs/query/shapeDistanceFilter.js +0 -21
  1363. package/dist/vendored/brepjs/query/shapeDistanceFilter.js.map +0 -1
  1364. package/dist/vendored/brepjs/query/shapeFinders.d.ts +0 -39
  1365. package/dist/vendored/brepjs/query/shapeFinders.d.ts.map +0 -1
  1366. package/dist/vendored/brepjs/query/shapeFinders.js +0 -82
  1367. package/dist/vendored/brepjs/query/shapeFinders.js.map +0 -1
  1368. package/dist/vendored/brepjs/query/vertexFinder.d.ts +0 -19
  1369. package/dist/vendored/brepjs/query/vertexFinder.d.ts.map +0 -1
  1370. package/dist/vendored/brepjs/query/vertexFinder.js +0 -73
  1371. package/dist/vendored/brepjs/query/vertexFinder.js.map +0 -1
  1372. package/dist/vendored/brepjs/query/wireFinder.d.ts +0 -5
  1373. package/dist/vendored/brepjs/query/wireFinder.d.ts.map +0 -1
  1374. package/dist/vendored/brepjs/query/wireFinder.js +0 -5
  1375. package/dist/vendored/brepjs/query/wireFinder.js.map +0 -1
  1376. package/dist/vendored/brepjs/query.d.ts +0 -6
  1377. package/dist/vendored/brepjs/query.d.ts.map +0 -1
  1378. package/dist/vendored/brepjs/query.js +0 -6
  1379. package/dist/vendored/brepjs/query.js.map +0 -1
  1380. package/dist/vendored/brepjs/result.d.ts +0 -7
  1381. package/dist/vendored/brepjs/result.d.ts.map +0 -1
  1382. package/dist/vendored/brepjs/result.js +0 -7
  1383. package/dist/vendored/brepjs/result.js.map +0 -1
  1384. package/dist/vendored/brepjs/shapeRef.d.ts +0 -13
  1385. package/dist/vendored/brepjs/shapeRef.d.ts.map +0 -1
  1386. package/dist/vendored/brepjs/shapeRef.js +0 -13
  1387. package/dist/vendored/brepjs/shapeRef.js.map +0 -1
  1388. package/dist/vendored/brepjs/sketching/cannedSketches.d.ts +0 -144
  1389. package/dist/vendored/brepjs/sketching/cannedSketches.d.ts.map +0 -1
  1390. package/dist/vendored/brepjs/sketching/cannedSketches.js +0 -327
  1391. package/dist/vendored/brepjs/sketching/cannedSketches.js.map +0 -1
  1392. package/dist/vendored/brepjs/sketching/compoundSketch.d.ts +0 -70
  1393. package/dist/vendored/brepjs/sketching/compoundSketch.d.ts.map +0 -1
  1394. package/dist/vendored/brepjs/sketching/compoundSketch.js +0 -87
  1395. package/dist/vendored/brepjs/sketching/compoundSketch.js.map +0 -1
  1396. package/dist/vendored/brepjs/sketching/draw3d.d.ts +0 -22
  1397. package/dist/vendored/brepjs/sketching/draw3d.d.ts.map +0 -1
  1398. package/dist/vendored/brepjs/sketching/draw3d.js +0 -150
  1399. package/dist/vendored/brepjs/sketching/draw3d.js.map +0 -1
  1400. package/dist/vendored/brepjs/sketching/drawFns.d.ts +0 -122
  1401. package/dist/vendored/brepjs/sketching/drawFns.d.ts.map +0 -1
  1402. package/dist/vendored/brepjs/sketching/drawFns.js +0 -129
  1403. package/dist/vendored/brepjs/sketching/drawFns.js.map +0 -1
  1404. package/dist/vendored/brepjs/sketching/drawing.d.ts +0 -128
  1405. package/dist/vendored/brepjs/sketching/drawing.d.ts.map +0 -1
  1406. package/dist/vendored/brepjs/sketching/drawing.js +0 -275
  1407. package/dist/vendored/brepjs/sketching/drawing.js.map +0 -1
  1408. package/dist/vendored/brepjs/sketching/drawingFactories.d.ts +0 -95
  1409. package/dist/vendored/brepjs/sketching/drawingFactories.d.ts.map +0 -1
  1410. package/dist/vendored/brepjs/sketching/drawingFactories.js +0 -125
  1411. package/dist/vendored/brepjs/sketching/drawingFactories.js.map +0 -1
  1412. package/dist/vendored/brepjs/sketching/drawingPen.d.ts +0 -35
  1413. package/dist/vendored/brepjs/sketching/drawingPen.d.ts.map +0 -1
  1414. package/dist/vendored/brepjs/sketching/drawingPen.js +0 -57
  1415. package/dist/vendored/brepjs/sketching/drawingPen.js.map +0 -1
  1416. package/dist/vendored/brepjs/sketching/faceSketcher.d.ts +0 -53
  1417. package/dist/vendored/brepjs/sketching/faceSketcher.d.ts.map +0 -1
  1418. package/dist/vendored/brepjs/sketching/faceSketcher.js +0 -167
  1419. package/dist/vendored/brepjs/sketching/faceSketcher.js.map +0 -1
  1420. package/dist/vendored/brepjs/sketching/shortcuts.d.ts +0 -16
  1421. package/dist/vendored/brepjs/sketching/shortcuts.d.ts.map +0 -1
  1422. package/dist/vendored/brepjs/sketching/shortcuts.js +0 -24
  1423. package/dist/vendored/brepjs/sketching/shortcuts.js.map +0 -1
  1424. package/dist/vendored/brepjs/sketching/sketch.d.ts +0 -157
  1425. package/dist/vendored/brepjs/sketching/sketch.d.ts.map +0 -1
  1426. package/dist/vendored/brepjs/sketching/sketch.js +0 -151
  1427. package/dist/vendored/brepjs/sketching/sketch.js.map +0 -1
  1428. package/dist/vendored/brepjs/sketching/sketchFns.d.ts +0 -89
  1429. package/dist/vendored/brepjs/sketching/sketchFns.d.ts.map +0 -1
  1430. package/dist/vendored/brepjs/sketching/sketchFns.js +0 -266
  1431. package/dist/vendored/brepjs/sketching/sketchFns.js.map +0 -1
  1432. package/dist/vendored/brepjs/sketching/sketcher.d.ts +0 -70
  1433. package/dist/vendored/brepjs/sketching/sketcher.d.ts.map +0 -1
  1434. package/dist/vendored/brepjs/sketching/sketcher.js +0 -181
  1435. package/dist/vendored/brepjs/sketching/sketcher.js.map +0 -1
  1436. package/dist/vendored/brepjs/sketching/sketches.d.ts +0 -70
  1437. package/dist/vendored/brepjs/sketching/sketches.d.ts.map +0 -1
  1438. package/dist/vendored/brepjs/sketching/sketches.js +0 -91
  1439. package/dist/vendored/brepjs/sketching/sketches.js.map +0 -1
  1440. package/dist/vendored/brepjs/sketching.d.ts +0 -28
  1441. package/dist/vendored/brepjs/sketching.d.ts.map +0 -1
  1442. package/dist/vendored/brepjs/sketching.js +0 -30
  1443. package/dist/vendored/brepjs/sketching.js.map +0 -1
  1444. package/dist/vendored/brepjs/text/fontRegistry.d.ts +0 -23
  1445. package/dist/vendored/brepjs/text/fontRegistry.d.ts.map +0 -1
  1446. package/dist/vendored/brepjs/text/fontRegistry.js +0 -61
  1447. package/dist/vendored/brepjs/text/fontRegistry.js.map +0 -1
  1448. package/dist/vendored/brepjs/text/sketchText.d.ts +0 -31
  1449. package/dist/vendored/brepjs/text/sketchText.d.ts.map +0 -1
  1450. package/dist/vendored/brepjs/text/sketchText.js +0 -30
  1451. package/dist/vendored/brepjs/text/sketchText.js.map +0 -1
  1452. package/dist/vendored/brepjs/text/textBlueprints.d.ts +0 -19
  1453. package/dist/vendored/brepjs/text/textBlueprints.d.ts.map +0 -1
  1454. package/dist/vendored/brepjs/text/textBlueprints.js +0 -61
  1455. package/dist/vendored/brepjs/text/textBlueprints.js.map +0 -1
  1456. package/dist/vendored/brepjs/text/textMetrics.d.ts +0 -40
  1457. package/dist/vendored/brepjs/text/textMetrics.d.ts.map +0 -1
  1458. package/dist/vendored/brepjs/text/textMetrics.js +0 -43
  1459. package/dist/vendored/brepjs/text/textMetrics.js.map +0 -1
  1460. package/dist/vendored/brepjs/text.d.ts +0 -13
  1461. package/dist/vendored/brepjs/text.d.ts.map +0 -1
  1462. package/dist/vendored/brepjs/text.js +0 -13
  1463. package/dist/vendored/brepjs/text.js.map +0 -1
  1464. package/dist/vendored/brepjs/topology/adjacencyFns.d.ts +0 -89
  1465. package/dist/vendored/brepjs/topology/adjacencyFns.d.ts.map +0 -1
  1466. package/dist/vendored/brepjs/topology/adjacencyFns.js +0 -411
  1467. package/dist/vendored/brepjs/topology/adjacencyFns.js.map +0 -1
  1468. package/dist/vendored/brepjs/topology/api.d.ts +0 -145
  1469. package/dist/vendored/brepjs/topology/api.d.ts.map +0 -1
  1470. package/dist/vendored/brepjs/topology/api.js +0 -282
  1471. package/dist/vendored/brepjs/topology/api.js.map +0 -1
  1472. package/dist/vendored/brepjs/topology/apiTypes.d.ts +0 -135
  1473. package/dist/vendored/brepjs/topology/apiTypes.d.ts.map +0 -1
  1474. package/dist/vendored/brepjs/topology/apiTypes.js +0 -24
  1475. package/dist/vendored/brepjs/topology/apiTypes.js.map +0 -1
  1476. package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts +0 -52
  1477. package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts.map +0 -1
  1478. package/dist/vendored/brepjs/topology/booleanBatchFns.js +0 -164
  1479. package/dist/vendored/brepjs/topology/booleanBatchFns.js.map +0 -1
  1480. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts +0 -21
  1481. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts.map +0 -1
  1482. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js +0 -23
  1483. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js.map +0 -1
  1484. package/dist/vendored/brepjs/topology/booleanFns.d.ts +0 -155
  1485. package/dist/vendored/brepjs/topology/booleanFns.d.ts.map +0 -1
  1486. package/dist/vendored/brepjs/topology/booleanFns.js +0 -600
  1487. package/dist/vendored/brepjs/topology/booleanFns.js.map +0 -1
  1488. package/dist/vendored/brepjs/topology/cast.d.ts +0 -48
  1489. package/dist/vendored/brepjs/topology/cast.d.ts.map +0 -1
  1490. package/dist/vendored/brepjs/topology/cast.js +0 -113
  1491. package/dist/vendored/brepjs/topology/cast.js.map +0 -1
  1492. package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts +0 -24
  1493. package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts.map +0 -1
  1494. package/dist/vendored/brepjs/topology/chamferAngleFns.js +0 -64
  1495. package/dist/vendored/brepjs/topology/chamferAngleFns.js.map +0 -1
  1496. package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts +0 -6
  1497. package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts.map +0 -1
  1498. package/dist/vendored/brepjs/topology/compoundOpsFns.js +0 -6
  1499. package/dist/vendored/brepjs/topology/compoundOpsFns.js.map +0 -1
  1500. package/dist/vendored/brepjs/topology/curveBuilders.d.ts +0 -90
  1501. package/dist/vendored/brepjs/topology/curveBuilders.d.ts.map +0 -1
  1502. package/dist/vendored/brepjs/topology/curveBuilders.js +0 -125
  1503. package/dist/vendored/brepjs/topology/curveBuilders.js.map +0 -1
  1504. package/dist/vendored/brepjs/topology/curveFns.d.ts +0 -96
  1505. package/dist/vendored/brepjs/topology/curveFns.d.ts.map +0 -1
  1506. package/dist/vendored/brepjs/topology/curveFns.js +0 -191
  1507. package/dist/vendored/brepjs/topology/curveFns.js.map +0 -1
  1508. package/dist/vendored/brepjs/topology/evolutionFns.d.ts +0 -78
  1509. package/dist/vendored/brepjs/topology/evolutionFns.d.ts.map +0 -1
  1510. package/dist/vendored/brepjs/topology/evolutionFns.js +0 -271
  1511. package/dist/vendored/brepjs/topology/evolutionFns.js.map +0 -1
  1512. package/dist/vendored/brepjs/topology/faceFns.d.ts +0 -86
  1513. package/dist/vendored/brepjs/topology/faceFns.d.ts.map +0 -1
  1514. package/dist/vendored/brepjs/topology/faceFns.js +0 -169
  1515. package/dist/vendored/brepjs/topology/faceFns.js.map +0 -1
  1516. package/dist/vendored/brepjs/topology/healingFns.d.ts +0 -98
  1517. package/dist/vendored/brepjs/topology/healingFns.d.ts.map +0 -1
  1518. package/dist/vendored/brepjs/topology/healingFns.js +0 -338
  1519. package/dist/vendored/brepjs/topology/healingFns.js.map +0 -1
  1520. package/dist/vendored/brepjs/topology/hullFns.d.ts +0 -21
  1521. package/dist/vendored/brepjs/topology/hullFns.d.ts.map +0 -1
  1522. package/dist/vendored/brepjs/topology/hullFns.js +0 -60
  1523. package/dist/vendored/brepjs/topology/hullFns.js.map +0 -1
  1524. package/dist/vendored/brepjs/topology/index.d.ts +0 -14
  1525. package/dist/vendored/brepjs/topology/index.d.ts.map +0 -1
  1526. package/dist/vendored/brepjs/topology/index.js +0 -17
  1527. package/dist/vendored/brepjs/topology/index.js.map +0 -1
  1528. package/dist/vendored/brepjs/topology/meshCache.d.ts +0 -68
  1529. package/dist/vendored/brepjs/topology/meshCache.d.ts.map +0 -1
  1530. package/dist/vendored/brepjs/topology/meshCache.js +0 -117
  1531. package/dist/vendored/brepjs/topology/meshCache.js.map +0 -1
  1532. package/dist/vendored/brepjs/topology/meshFns.d.ts +0 -179
  1533. package/dist/vendored/brepjs/topology/meshFns.d.ts.map +0 -1
  1534. package/dist/vendored/brepjs/topology/meshFns.js +0 -393
  1535. package/dist/vendored/brepjs/topology/meshFns.js.map +0 -1
  1536. package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts +0 -41
  1537. package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts.map +0 -1
  1538. package/dist/vendored/brepjs/topology/metadata/colorFns.js +0 -128
  1539. package/dist/vendored/brepjs/topology/metadata/colorFns.js.map +0 -1
  1540. package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts +0 -44
  1541. package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts.map +0 -1
  1542. package/dist/vendored/brepjs/topology/metadata/faceTagFns.js +0 -168
  1543. package/dist/vendored/brepjs/topology/metadata/faceTagFns.js.map +0 -1
  1544. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts +0 -59
  1545. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts.map +0 -1
  1546. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js +0 -109
  1547. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js.map +0 -1
  1548. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts +0 -43
  1549. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts.map +0 -1
  1550. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js +0 -270
  1551. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js.map +0 -1
  1552. package/dist/vendored/brepjs/topology/minkowskiFns.d.ts +0 -26
  1553. package/dist/vendored/brepjs/topology/minkowskiFns.d.ts.map +0 -1
  1554. package/dist/vendored/brepjs/topology/minkowskiFns.js +0 -136
  1555. package/dist/vendored/brepjs/topology/minkowskiFns.js.map +0 -1
  1556. package/dist/vendored/brepjs/topology/modifierFns.d.ts +0 -87
  1557. package/dist/vendored/brepjs/topology/modifierFns.d.ts.map +0 -1
  1558. package/dist/vendored/brepjs/topology/modifierFns.js +0 -446
  1559. package/dist/vendored/brepjs/topology/modifierFns.js.map +0 -1
  1560. package/dist/vendored/brepjs/topology/nurbsFns.d.ts +0 -13
  1561. package/dist/vendored/brepjs/topology/nurbsFns.d.ts.map +0 -1
  1562. package/dist/vendored/brepjs/topology/nurbsFns.js +0 -22
  1563. package/dist/vendored/brepjs/topology/nurbsFns.js.map +0 -1
  1564. package/dist/vendored/brepjs/topology/polyhedronFns.d.ts +0 -11
  1565. package/dist/vendored/brepjs/topology/polyhedronFns.d.ts.map +0 -1
  1566. package/dist/vendored/brepjs/topology/polyhedronFns.js +0 -47
  1567. package/dist/vendored/brepjs/topology/polyhedronFns.js.map +0 -1
  1568. package/dist/vendored/brepjs/topology/positionFns.d.ts +0 -18
  1569. package/dist/vendored/brepjs/topology/positionFns.d.ts.map +0 -1
  1570. package/dist/vendored/brepjs/topology/positionFns.js +0 -34
  1571. package/dist/vendored/brepjs/topology/positionFns.js.map +0 -1
  1572. package/dist/vendored/brepjs/topology/primitiveFns.d.ts +0 -244
  1573. package/dist/vendored/brepjs/topology/primitiveFns.d.ts.map +0 -1
  1574. package/dist/vendored/brepjs/topology/primitiveFns.js +0 -361
  1575. package/dist/vendored/brepjs/topology/primitiveFns.js.map +0 -1
  1576. package/dist/vendored/brepjs/topology/shapeBooleans.d.ts +0 -14
  1577. package/dist/vendored/brepjs/topology/shapeBooleans.d.ts.map +0 -1
  1578. package/dist/vendored/brepjs/topology/shapeBooleans.js +0 -24
  1579. package/dist/vendored/brepjs/topology/shapeBooleans.js.map +0 -1
  1580. package/dist/vendored/brepjs/topology/shapeFns.d.ts +0 -30
  1581. package/dist/vendored/brepjs/topology/shapeFns.d.ts.map +0 -1
  1582. package/dist/vendored/brepjs/topology/shapeFns.js +0 -50
  1583. package/dist/vendored/brepjs/topology/shapeFns.js.map +0 -1
  1584. package/dist/vendored/brepjs/topology/shapeHelpers.d.ts +0 -9
  1585. package/dist/vendored/brepjs/topology/shapeHelpers.d.ts.map +0 -1
  1586. package/dist/vendored/brepjs/topology/shapeHelpers.js +0 -14
  1587. package/dist/vendored/brepjs/topology/shapeHelpers.js.map +0 -1
  1588. package/dist/vendored/brepjs/topology/shapeModifiers.d.ts +0 -33
  1589. package/dist/vendored/brepjs/topology/shapeModifiers.d.ts.map +0 -1
  1590. package/dist/vendored/brepjs/topology/shapeModifiers.js +0 -28
  1591. package/dist/vendored/brepjs/topology/shapeModifiers.js.map +0 -1
  1592. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts +0 -29
  1593. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts.map +0 -1
  1594. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js +0 -135
  1595. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js.map +0 -1
  1596. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts +0 -25
  1597. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts.map +0 -1
  1598. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js +0 -123
  1599. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js.map +0 -1
  1600. package/dist/vendored/brepjs/topology/shapeRef/index.d.ts +0 -11
  1601. package/dist/vendored/brepjs/topology/shapeRef/index.d.ts.map +0 -1
  1602. package/dist/vendored/brepjs/topology/shapeRef/index.js +0 -10
  1603. package/dist/vendored/brepjs/topology/shapeRef/index.js.map +0 -1
  1604. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts +0 -66
  1605. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts.map +0 -1
  1606. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js +0 -128
  1607. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js.map +0 -1
  1608. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts +0 -18
  1609. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts.map +0 -1
  1610. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js +0 -51
  1611. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js.map +0 -1
  1612. package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts +0 -20
  1613. package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts.map +0 -1
  1614. package/dist/vendored/brepjs/topology/shapeRef/scoring.js +0 -65
  1615. package/dist/vendored/brepjs/topology/shapeRef/scoring.js.map +0 -1
  1616. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts +0 -59
  1617. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts.map +0 -1
  1618. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js +0 -266
  1619. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js.map +0 -1
  1620. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts +0 -153
  1621. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts.map +0 -1
  1622. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js +0 -6
  1623. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js.map +0 -1
  1624. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts +0 -24
  1625. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts.map +0 -1
  1626. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js +0 -128
  1627. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js.map +0 -1
  1628. package/dist/vendored/brepjs/topology/shapeUtils.d.ts +0 -16
  1629. package/dist/vendored/brepjs/topology/shapeUtils.d.ts.map +0 -1
  1630. package/dist/vendored/brepjs/topology/shapeUtils.js +0 -28
  1631. package/dist/vendored/brepjs/topology/shapeUtils.js.map +0 -1
  1632. package/dist/vendored/brepjs/topology/solidBuilders.d.ts +0 -74
  1633. package/dist/vendored/brepjs/topology/solidBuilders.d.ts.map +0 -1
  1634. package/dist/vendored/brepjs/topology/solidBuilders.js +0 -173
  1635. package/dist/vendored/brepjs/topology/solidBuilders.js.map +0 -1
  1636. package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts +0 -47
  1637. package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts.map +0 -1
  1638. package/dist/vendored/brepjs/topology/surfaceBuilders.js +0 -162
  1639. package/dist/vendored/brepjs/topology/surfaceBuilders.js.map +0 -1
  1640. package/dist/vendored/brepjs/topology/surfaceFns.d.ts +0 -41
  1641. package/dist/vendored/brepjs/topology/surfaceFns.d.ts.map +0 -1
  1642. package/dist/vendored/brepjs/topology/surfaceFns.js +0 -178
  1643. package/dist/vendored/brepjs/topology/surfaceFns.js.map +0 -1
  1644. package/dist/vendored/brepjs/topology/threeHelpers.d.ts +0 -124
  1645. package/dist/vendored/brepjs/topology/threeHelpers.d.ts.map +0 -1
  1646. package/dist/vendored/brepjs/topology/threeHelpers.js +0 -118
  1647. package/dist/vendored/brepjs/topology/threeHelpers.js.map +0 -1
  1648. package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts +0 -100
  1649. package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts.map +0 -1
  1650. package/dist/vendored/brepjs/topology/topologyQueryFns.js +0 -307
  1651. package/dist/vendored/brepjs/topology/topologyQueryFns.js.map +0 -1
  1652. package/dist/vendored/brepjs/topology/transformFns.d.ts +0 -69
  1653. package/dist/vendored/brepjs/topology/transformFns.d.ts.map +0 -1
  1654. package/dist/vendored/brepjs/topology/transformFns.js +0 -235
  1655. package/dist/vendored/brepjs/topology/transformFns.js.map +0 -1
  1656. package/dist/vendored/brepjs/topology/wrapperFns.d.ts +0 -169
  1657. package/dist/vendored/brepjs/topology/wrapperFns.d.ts.map +0 -1
  1658. package/dist/vendored/brepjs/topology/wrapperFns.js +0 -291
  1659. package/dist/vendored/brepjs/topology/wrapperFns.js.map +0 -1
  1660. package/dist/vendored/brepjs/topology.d.ts +0 -28
  1661. package/dist/vendored/brepjs/topology.d.ts.map +0 -1
  1662. package/dist/vendored/brepjs/topology.js +0 -39
  1663. package/dist/vendored/brepjs/topology.js.map +0 -1
  1664. package/dist/vendored/brepjs/utils/arrayAccess.d.ts +0 -12
  1665. package/dist/vendored/brepjs/utils/arrayAccess.d.ts.map +0 -1
  1666. package/dist/vendored/brepjs/utils/arrayAccess.js +0 -25
  1667. package/dist/vendored/brepjs/utils/arrayAccess.js.map +0 -1
  1668. package/dist/vendored/brepjs/utils/bug.d.ts +0 -15
  1669. package/dist/vendored/brepjs/utils/bug.d.ts.map +0 -1
  1670. package/dist/vendored/brepjs/utils/bug.js +0 -21
  1671. package/dist/vendored/brepjs/utils/bug.js.map +0 -1
  1672. package/dist/vendored/brepjs/utils/ioFilename.d.ts +0 -3
  1673. package/dist/vendored/brepjs/utils/ioFilename.d.ts.map +0 -1
  1674. package/dist/vendored/brepjs/utils/ioFilename.js +0 -7
  1675. package/dist/vendored/brepjs/utils/ioFilename.js.map +0 -1
  1676. package/dist/vendored/brepjs/utils/precisionRound.d.ts +0 -11
  1677. package/dist/vendored/brepjs/utils/precisionRound.d.ts.map +0 -1
  1678. package/dist/vendored/brepjs/utils/precisionRound.js +0 -19
  1679. package/dist/vendored/brepjs/utils/precisionRound.js.map +0 -1
  1680. package/dist/vendored/brepjs/utils/quaternion.d.ts +0 -18
  1681. package/dist/vendored/brepjs/utils/quaternion.d.ts.map +0 -1
  1682. package/dist/vendored/brepjs/utils/quaternion.js +0 -68
  1683. package/dist/vendored/brepjs/utils/quaternion.js.map +0 -1
  1684. package/dist/vendored/brepjs/utils/range.d.ts +0 -3
  1685. package/dist/vendored/brepjs/utils/range.d.ts.map +0 -1
  1686. package/dist/vendored/brepjs/utils/range.js +0 -5
  1687. package/dist/vendored/brepjs/utils/range.js.map +0 -1
  1688. package/dist/vendored/brepjs/utils/uuid.d.ts +0 -3
  1689. package/dist/vendored/brepjs/utils/uuid.d.ts.map +0 -1
  1690. package/dist/vendored/brepjs/utils/uuid.js +0 -7
  1691. package/dist/vendored/brepjs/utils/uuid.js.map +0 -1
  1692. package/dist/vendored/brepjs/utils/vec2d.d.ts +0 -62
  1693. package/dist/vendored/brepjs/utils/vec2d.d.ts.map +0 -1
  1694. package/dist/vendored/brepjs/utils/vec2d.js +0 -107
  1695. package/dist/vendored/brepjs/utils/vec2d.js.map +0 -1
  1696. package/dist/vendored/brepjs/utils/vec3.d.ts +0 -32
  1697. package/dist/vendored/brepjs/utils/vec3.d.ts.map +0 -1
  1698. package/dist/vendored/brepjs/utils/vec3.js +0 -35
  1699. package/dist/vendored/brepjs/utils/vec3.js.map +0 -1
  1700. package/dist/vendored/brepjs/utils/zip.d.ts +0 -5
  1701. package/dist/vendored/brepjs/utils/zip.d.ts.map +0 -1
  1702. package/dist/vendored/brepjs/utils/zip.js +0 -8
  1703. package/dist/vendored/brepjs/utils/zip.js.map +0 -1
  1704. package/dist/vendored/brepjs/vectors.d.ts +0 -11
  1705. package/dist/vendored/brepjs/vectors.d.ts.map +0 -1
  1706. package/dist/vendored/brepjs/vectors.js +0 -9
  1707. package/dist/vendored/brepjs/vectors.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/mesh/io.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * mesh IO API — headless 文件加载\n *\n * STL 由 core 自持的 `mesh/stl-loader.ts` 解析(零 three addons);3MF 由\n * `mesh/threemf-loader.ts` 解析(ZIP 解压 + XML,单位换算到 mm 基准)。\n * 坐标永远以 faijs 基准长度单位(mm)存储 — Shape 不贴 unit 标签(D3)。\n *\n * 单位换算边界(unit-system §5.2):\n * - STL 无单位元数据 → 由 `opts.unit` 显式声明优先;未声明时 faijs 按历史\n * host 行为做启发式猜测(`guessStlUnit`,unified 方案 §6.1/§8 —— 3d_editor\n * 迁移回归的单位断言依赖此行为)。猜测收敛在 faijs 内(红线 R0:宿主不\n * 自实现单位换算),G0 = 折算后坐标,渲染 = 拓扑 = G0。\n * - 3MF `<model unit>` 由解析器读取并换算(micron/mm/cm/inch/foot/meter)。\n *\n * 返回契约(unit-system §10.6):`importFile` 返回 `{ shape, unit }` — `unit`\n * 是文件源单位(必然有值;faijs 是单一真源):3MF/STEP 取文件声明(STEP 无声明\n * → 'mm',与 OCCT 一致),STL 取 opts.unit 或 guessStlUnit 启发式猜测。坐标恒\n * 为基准值 — `unit` 只作元数据(sourceUnit 记录、导出目标判定),绝不参与几何\n * 缩放(读入折算已由内核/解析器完成,二次缩放 = 双重换算)。\n */\n\nimport * as THREE from 'three'\nimport { geoToManifoldMesh } from '../boolean/geo-convert'\nimport { parseStl } from './stl-loader'\nimport { parseThreemf, type ThreemfObject } from './threemf-loader'\nimport { parseBambu3mfFromEntries } from './threemf-bambu'\nimport { unitScale, type UnitName } from '../units'\nimport { guessStlUnit } from './stl-unit'\nimport type { Shape } from './types'\nimport type { PbrAppearance } from '../api/appearance'\nimport type { FileMeta } from '../api/meta'\nimport type { ImportModel } from './import-model'\n\n/** Result of a unit-aware file import. */\nexport interface ImportFileResult {\n shape: Shape\n /**\n * All parts the file declared, in declaration order (3MF `<build><item>` 序 /\n * STL 单零件)。`shape` is `parts[0]`(单零件兼容,过渡期)。\n * P0(2026-10-06-step-3mf-multipart-import-plan.md §5.4):多对象 3MF 不再折叠。\n */\n parts: Shape[]\n /**\n * The file's source unit (always present; faijs is the single source of truth).\n * 3MF/STEP: the file's declared unit (STEP 无声明 → 'mm', 与 OCCT 一致).\n * STL: opts.unit if declared, else the guessStlUnit heuristic result.\n * Metadata only — coordinates are already in the faijs base unit (mm).\n */\n unit: UnitName\n /**\n * Total parts the single file declared (e.g. 3MF `<build>` object count),\n * present only when > 1. Single-part mesh (STL, single-object 3MF) omits it.\n * 保留为 `parts.length`(>1 时);多零件不再折叠后该字段仅供旧宿主判断。\n */\n multiPartCount?: number\n /**\n * 整体级元数据(文件级;方案 §5.1 3MF `<model><metadata>`)。STL/STEP 视实现\n * 是否解析;无声明则省略。仅随导入结果上抛,不挂 Shape。\n */\n fileMeta?: FileMeta\n /**\n * 本次导入的结构数据(P0 §5.1):零件身份表 + Bambu 视图(3MF 分支填充)。\n * 单/多零件均登记(单零件 parts 长度 1)。\n */\n importModel?: ImportModel\n}\n\n/** SI prefixes that may precede .METRE. in a STEP SI_UNIT, → faijs UnitName. */\nconst SI_PREFIX_TO_UNIT: Record<string, UnitName> = {\n '.MILLI.': 'mm',\n '.CENTI.': 'cm',\n '$': 'm',\n}\n\n/** CONVERSION_BASED_UNIT names (uppercased) found in real-world STEP files. */\nconst CONVERSION_NAME_TO_UNIT: Record<string, UnitName> = {\n 'METRE': 'm',\n 'METER': 'm',\n 'MILLIMETRE': 'mm',\n 'MILLIMETER': 'mm',\n 'CENTIMETRE': 'cm',\n 'CENTIMETER': 'cm',\n 'MICROMETRE': 'micron',\n 'MICROMETER': 'micron',\n 'INCH': 'inch',\n 'FOOT': 'foot',\n}\n\n/**\n * Bounded scan window for `detectStepUnit`. Unit entities sit at the front of\n * the DATA section (right after the product/context blocks); 256 KiB covers\n * every real-world header+context preamble observed so far. Recomputable\n * constant — raise if a fixture ever misses.\n */\nexport const STEP_UNIT_SCAN_PREFIX = 256 * 1024\n\n/**\n * Parse the declared length unit from STEP text (unit-system §10.4).\n *\n * Unit entities live in the DATA section (not HEADER — ISO 10303-21 reserves\n * HEADER for FILE_DESCRIPTION/FILE_NAME/FILE_SCHEMA), near its start. We scan\n * a bounded prefix; the justification is \"unit entities sit at the front of\n * the DATA section\", not \"top of file\".\n *\n * Recognized forms, both attached to a LENGTH_UNIT():\n * - `SI_UNIT(<prefix>, .METRE.)` — prefix `.MILLI.`/`.CENTI.`/`.MICRO.` or `$`.\n * - `CONVERSION_BASED_UNIT('<NAME>', #n)` — inch/foot/etc.\n *\n * Metadata only — NEVER used to scale geometry (OCCT already normalizes on\n * read; re-scaling = double conversion).\n *\n * @param stepText - the full STEP file text to scan (only a bounded prefix is read).\n * @returns the faijs UnitName, or null when no length-unit declaration is found\n * (STEP permits omitting it; caller falls back to the base unit).\n */\nexport function detectStepUnit(stepText: string): UnitName | null {\n const head = stepText.slice(0, STEP_UNIT_SCAN_PREFIX)\n\n // 1) CONVERSION_BASED_UNIT('<NAME>', #n) — non-SI units (inch/foot/…).\n const conv = head.match(/CONVERSION_BASED_UNIT\\s*\\(\\s*'([^']+)'/i)\n if (conv) {\n const mapped = CONVERSION_NAME_TO_UNIT[conv[1].toUpperCase()]\n if (mapped) return mapped\n }\n\n // 2) SI_UNIT(<prefix>, .METRE.) — the .METRE. guard excludes angle entities\n // (they carry .RADIAN./.STERADIAN., never .METRE.).\n const si = head.match(/SI_UNIT\\s*\\(\\s*([^)]*?)\\s*,\\s*\\.METRE\\.\\s*\\)/i)\n if (si) {\n const prefix = si[1].trim().toUpperCase()\n if (prefix === '.MICRO.') return 'micron'\n const mapped = SI_PREFIX_TO_UNIT[prefix]\n if (mapped) return mapped\n }\n\n return null\n}\n\n/**\n * Load geometry from raw file bytes (headless variant).\n *\n * @param buffer - the raw file bytes to parse (already decompressed; stpz\n * unzipping is the caller's job — faijs never unzips implicitly).\n * @param format - format identifier such as 'stl', '3mf'/'threemf' or 'step'\n * (defaults to 'stl').\n * @param opts - optional settings; `unit` (a UnitName string) declares the\n * source unit for formats without unit metadata (e.g. STL). Defaults to\n * the guessStlUnit heuristic when omitted.\n * @returns the shape with base-unit coordinates plus the file's source unit\n * (`unit`, metadata only; always present — faijs is the single source of truth).\n */\nexport async function importFile(\n buffer: ArrayBuffer,\n format?: string,\n opts?: { unit?: UnitName },\n): Promise<ImportFileResult> {\n const fmt = (format ?? 'stl').toLowerCase()\n\n if (fmt === '3mf' || fmt === 'threemf') {\n const archive = await parseThreemf(buffer)\n // P0(方案 §5.4):不再折叠——返回全部 `<build><item>` 对象(declaration order,\n // 坐标已在 parseThreemf 里折算为 faijs 基准单位)。`shape` 保留为 parts[0]\n // (单零件兼容,过渡期)。\n if (archive.objects.length === 0) {\n throw new Error('[mesh/io] 3MF contains no objects')\n }\n // Bambu 元数据(盘号/挤出机/视图变换):有 Bambu 配置才产生内容,普通 3MF 返回空表。\n // P4:根 model XML 直传(3MF `<build>` 在 resources 前;id 两套编号经父\n // object components 关联——leafParts 表承载)。\n const bambu = parseBambu3mfFromEntries(archive.extraEntries, archive.modelXml)\n const parts = archive.objects.map(threemfObjectToShape)\n const multiPartCount = parts.length > 1 ? parts.length : undefined\n const importModel: ImportModel = {\n format: '3mf',\n unit: archive.unit,\n parts: archive.objects.map((obj, i) => {\n const part: ImportModel['parts'][number] = {\n index: i,\n name: obj.name ?? `imported:${i}`,\n }\n if (obj.baseColor) part.color = [obj.baseColor[0], obj.baseColor[1], obj.baseColor[2]]\n if (obj.meta) part.meta = obj.meta\n // Bambu 身份:3MF `<object id>`(叶子实例)与 Bambu objects 表(键为\n // model_settings 父对象 id)是两套编号——经父 object components 关联\n // (ThreemfObject.parentObjectId/componentIndex → bambu.leafParts)。\n const bm = obj.parentObjectId !== undefined\n ? bambu.leafParts.get(`${obj.parentObjectId}:${obj.componentIndex ?? 1}`)\n : undefined\n if (bm) {\n part.objectId = bm.objectId\n if (bm.plateId > 0) part.plateId = bm.plateId\n // Bambu extruder 1-based(默认 1):显式登记文件声明值\n part.extruder = bm.extruder\n part.partId = bm.partId\n }\n return part\n }),\n ...(archive.fileMeta ? { fileMeta: archive.fileMeta } : {}),\n }\n const bambuViews = buildBambuViews(bambu)\n if (bambuViews) importModel.bambuViews = bambuViews\n return {\n shape: parts[0],\n parts,\n unit: archive.unit,\n multiPartCount,\n importModel,\n // 整体级元数据(`<model><metadata>`)随导入结果上抛(方案 §5.1)。\n ...(archive.fileMeta ? { fileMeta: archive.fileMeta } : {}),\n }\n }\n\n if (fmt === 'stl') {\n const geo = parseStl(buffer)\n // STL 无单位声明:opts.unit 显式声明优先;未声明时做启发式猜测\n // (guessStlUnit —— 历史 host 行为,unified §6.1/§8 迁移基线)。猜测与\n // 折算都在 faijs 内完成(红线 R0),G0 即基准值,宿主不再二次换算。\n // unit 字段回传源单位(声明值或猜测值),供宿主记录 sourceUnit 元数据。\n let scale = 1\n let sourceUnit: UnitName = 'mm'\n const declared = opts?.unit\n if (declared) {\n sourceUnit = declared\n scale = unitScale(declared)\n } else {\n geo.computeBoundingBox()\n const bb = geo.boundingBox\n if (bb) {\n sourceUnit = guessStlUnit({\n min: [bb.min.x, bb.min.y, bb.min.z],\n max: [bb.max.x, bb.max.y, bb.max.z],\n })\n scale = unitScale(sourceUnit)\n }\n }\n if (scale !== 1) {\n const attr = geo.getAttribute('position') as THREE.BufferAttribute\n const arr = attr.array as Float32Array\n for (let i = 0; i < arr.length; i++) arr[i] *= scale\n }\n const shape = geoToManifoldMesh(geo)\n return { shape, parts: [shape], unit: sourceUnit }\n }\n\n // STEP goes through the BREP chain (loadBrep → OCCT, which normalizes to the\n // base unit on read). The mesh io path has no kernel-independent STEP parser\n // and must not fake one — a missing path is an error, not a fallback.\n throw new Error(`[mesh/io] unsupported format: ${fmt}`)\n}\n\n/** 单个 3MF `<build><item>` 对象 → Shape(P0:逐对象构造,替换原\"只取第一个\"收敛)。 */\nfunction threemfObjectToShape(obj: ThreemfObject): Shape {\n return {\n positions: obj.positions as Float32Array,\n indices: obj.indices as Uint32Array,\n // P2(方案 §5 3MF 行):对象级 baseColor → appearance.color(sRGB 原值,\n // 宽容兼容:无 baseColor 不带 appearance)。colorgroup(vertexColors)与\n // 逐三角形材质属 Phase 2(materialGroups / vertexColors),P2 不映射。\n ...(obj.baseColor ? { appearance: { color: [obj.baseColor[0], obj.baseColor[1], obj.baseColor[2]] } } : {}),\n // P4(方案 §5 3MF 行):逐三角形 basematerials(p1=p2=p3)→ materialGroups\n // (三角形区间 + appearance.color);无则不带。vertexColors(colorgroup)\n // 由上层(编辑器导入路径)消费,io 单零件收敛不展开为材质分组。\n ...(obj.materialGroups && obj.materialGroups.length > 0\n ? {\n materialGroups: obj.materialGroups.map((g) => ({\n start: g.start,\n count: g.count,\n appearance: { color: [g.color[0], g.color[1], g.color[2]] } as PbrAppearance,\n })),\n }\n : {}),\n // 零件级元数据(方案 §5.1 3MF 行):对象 name/partnumber/metadatagroup → meta。\n ...(obj.meta ? { meta: obj.meta } : {}),\n }\n}\n\n/** Bambu 显示视图数据 → ImportModel.bambuViews(无任何 Bambu 结构时省略)。 */\nfunction buildBambuViews(\n bambu: import('./threemf-bambu').Bambu3mfMetadata,\n): ImportModel['bambuViews'] | undefined {\n const plates = [...bambu.plates.keys()].sort((a, b) => a - b)\n if (plates.length === 0 && !bambu.assembleTransforms && !bambu.importTransforms) return undefined\n const views: NonNullable<ImportModel['bambuViews']> = { plates }\n if (bambu.assembleTransforms) {\n views.assembleTransforms = Object.fromEntries(\n [...bambu.assembleTransforms].map(([k, v]) => [k, { transform: v.transform, offset: v.offset }]),\n )\n }\n if (bambu.importTransforms) {\n views.importTransforms = Object.fromEntries(\n [...bambu.importTransforms].map(([k, v]) => [k, { matrix: v.matrix, sourceOffset: v.sourceOffset }]),\n )\n }\n // P4:完整消费面随结果回传——宿主重建 Bambu3mfMetadata 不再回读 archive。\n if (bambu.buildItems) {\n views.buildItems = bambu.buildItems.map((b) => ({\n objectId: b.objectId,\n transform: b.transform ?? null,\n }))\n }\n if (bambu.filamentColors.length > 0) views.filamentColors = bambu.filamentColors\n if (bambu.filamentTypes.length > 0) views.filamentTypes = bambu.filamentTypes\n if (bambu.parts.length > 0) {\n views.parts = bambu.parts.map((p) => ({\n partIndex: p.partIndex,\n objectId: p.objectId,\n partId: p.partId,\n name: p.name,\n extruder: p.extruder,\n plateId: p.plateId,\n }))\n }\n return views\n}\n"]}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/mesh/io.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * mesh IO API — headless 文件加载\n *\n * STL 由 core 自持的 `mesh/stl-loader.ts` 解析(零 three addons);3MF 由\n * `mesh/threemf-loader.ts` 解析(ZIP 解压 + XML,单位换算到 mm 基准)。\n * 坐标永远以 faijs 基准长度单位(mm)存储 — Shape 不贴 unit 标签(D3)。\n *\n * 单位换算边界(unit-system §5.2):\n * - 本模块只处理 **mesh 格式(STL/3MF)**,坐标可直接折算 → `opts.unit` 提供即\n * **强制设置模型的源单位**(直接指定,覆盖/忽略模型内部记录的单位——STL 无\n * 内部单位、3MF `<model unit>` 声明被覆盖),按 `unitScale(unit)` 折算坐标。\n * 它**只可能来自调用方的显式知识**(脚本作者手写 `cad.load({ file, unit })`、\n * 或宿主让用户选定单位后传入);调用方不知道单位时**必须省略**——省略时:\n * STL 走 faijs 启发式(`guessStlUnit`,unified 方案 §6.1/§8 —— 3d_editor\n * 迁移回归的单位断言依赖此行为)、3MF 走文件 `<model unit>`(无声明 →\n * millimeter)。猜测/折算收敛在 faijs 内(红线 R0:宿主不自实现单位换算),\n * G0 = 折算后坐标,渲染 = 拓扑 = G0。\n * - **STEP/.brep 不经过本模块**(走 BREP 链,load op 内 OCCT 读取):OCCT 按\n * 文件内部单位声明折算(SI_UNIT),**不支持强制设置单位**——load op 对\n * BREP 路径 + 用户显式 unit 直接**明确报错**(不缩放、不 workaround)。\n * - 3MF `<model unit>` 由解析器读取并换算(micron/mm/cm/inch/foot/meter)。\n *\n * 返回契约(unit-system §10.6):`importFile` 返回 `{ shape, unit }` — `unit`\n * 是文件源单位(必然有值;faijs 是单一真源):3MF 取 opts.unit(强制)或文件\n * 声明(无声明 → millimeter),STL 取 opts.unit 或 guessStlUnit 启发式猜测。\n * 坐标恒为基准值 — `unit` 只作元数据(sourceUnit 记录、导出目标判定),绝不\n * 参与几何缩放(读入折算已由解析器完成,二次缩放 = 双重换算)。\n */\n\nimport { geoToManifoldMesh } from '../boolean/geo-convert'\nimport { parseStl } from './stl-loader'\nimport { boundingBox } from './query'\nimport { parseThreemf, type ThreemfObject, type ThreemfNode } from './threemf-loader'\nimport { parseBambu3mfFromEntries } from './threemf-bambu'\nimport { unitScale, type UnitName } from '../units'\nimport { guessStlUnit } from './stl-unit'\nimport type { Shape } from './types'\nimport type { CompoundShape } from '../shape'\nimport type { PbrAppearance } from '../api/appearance'\nimport type { FileMeta } from '../api/meta'\nimport type { ImportModel } from './import-model'\n\n/** Result of a unit-aware file import. */\nexport interface ImportFileResult {\n shape: Shape\n /**\n * All parts the file declared, in declaration order (3MF `<build><item>` 序 /\n * STL 单零件)。`shape` is `parts[0]`(单零件兼容,过渡期)。\n * P0(2026-10-06-step-3mf-multipart-import-plan.md §5.4):多对象 3MF 不再折叠。\n */\n parts: Shape[]\n /**\n * The file's source unit (always present; faijs is the single source of truth).\n * 3MF: opts.unit (forced) if provided, else the file's declared unit\n * (无声明 → millimeter). STL: opts.unit (forced) if provided, else the\n * guessStlUnit heuristic result. STEP/BREP 不经过本模块(OCCT 链不支持\n * 强制设置单位,load op 报错)。\n * Metadata only — coordinates are already in the faijs base unit (mm).\n */\n unit: UnitName\n /**\n * Total parts the single file declared (e.g. 3MF `<build>` object count),\n * present only when > 1. Single-part mesh (STL, single-object 3MF) omits it.\n * 保留为 `parts.length`(>1 时);多零件不再折叠后该字段仅供旧宿主判断。\n */\n multiPartCount?: number\n /**\n * 整体级元数据(文件级;方案 §5.1 3MF `<model><metadata>`)。STL/STEP 视实现\n * 是否解析;无声明则省略。仅随导入结果上抛,不挂 Shape。\n */\n fileMeta?: FileMeta\n /**\n * 本次导入的结构数据(P0 §5.1):零件身份表 + Bambu 视图(3MF 分支填充)。\n * 单/多零件均登记(单零件 parts 长度 1)。\n */\n importModel?: ImportModel\n /**\n * 装配层级(方案 2026-10-08 §2.1 / 第 5 步「导入归一」):当 3MF 含 `<components>`\n * 装配结构时,按层级重建为 `CompoundShape`,每个子节点携带相对父的 `transform`\n * (来自 3MF `<component transform>` / build `<item transform>`,行主序 3×4,平移在\n * 末列,与写出器同源)。仅当存在真实装配(多 item 或任一 item 带 components)时存在;\n * 单零件平铺导入不走它(`shape` / `parts` 已覆盖)。viewer 用 `parts`(已烘焙实例),\n * 往返/层级消费者用 `assembly`(局部几何 + 节点 transform)。\n */\n assembly?: Shape | CompoundShape\n}\n\n/** SI prefixes that may precede .METRE. in a STEP SI_UNIT, → faijs UnitName. */\nconst SI_PREFIX_TO_UNIT: Record<string, UnitName> = {\n '.MILLI.': 'mm',\n '.CENTI.': 'cm',\n '$': 'm',\n}\n\n/** CONVERSION_BASED_UNIT names (uppercased) found in real-world STEP files. */\nconst CONVERSION_NAME_TO_UNIT: Record<string, UnitName> = {\n 'METRE': 'm',\n 'METER': 'm',\n 'MILLIMETRE': 'mm',\n 'MILLIMETER': 'mm',\n 'CENTIMETRE': 'cm',\n 'CENTIMETER': 'cm',\n 'MICROMETRE': 'micron',\n 'MICROMETER': 'micron',\n 'INCH': 'inch',\n 'FOOT': 'foot',\n}\n\n/**\n * Bounded scan window for `detectStepUnit`. Unit entities sit at the front of\n * the DATA section (right after the product/context blocks); 256 KiB covers\n * every real-world header+context preamble observed so far. Recomputable\n * constant — raise if a fixture ever misses.\n */\nexport const STEP_UNIT_SCAN_PREFIX = 256 * 1024\n\n/**\n * Parse the declared length unit from STEP text (unit-system §10.4).\n *\n * Unit entities live in the DATA section (not HEADER — ISO 10303-21 reserves\n * HEADER for FILE_DESCRIPTION/FILE_NAME/FILE_SCHEMA), near its start. We scan\n * a bounded prefix; the justification is \"unit entities sit at the front of\n * the DATA section\", not \"top of file\".\n *\n * Recognized forms, both attached to a LENGTH_UNIT():\n * - `SI_UNIT(<prefix>, .METRE.)` — prefix `.MILLI.`/`.CENTI.`/`.MICRO.` or `$`.\n * - `CONVERSION_BASED_UNIT('<NAME>', #n)` — inch/foot/etc.\n *\n * Metadata only — NEVER used to scale geometry (OCCT already normalizes on\n * read; re-scaling = double conversion).\n *\n * @param stepText - the full STEP file text to scan (only a bounded prefix is read).\n * @returns the faijs UnitName, or null when no length-unit declaration is found\n * (STEP permits omitting it; caller falls back to the base unit).\n */\nexport function detectStepUnit(stepText: string): UnitName | null {\n const head = stepText.slice(0, STEP_UNIT_SCAN_PREFIX)\n\n // 1) CONVERSION_BASED_UNIT('<NAME>', #n) — non-SI units (inch/foot/…).\n const conv = head.match(/CONVERSION_BASED_UNIT\\s*\\(\\s*'([^']+)'/i)\n if (conv) {\n const mapped = CONVERSION_NAME_TO_UNIT[conv[1].toUpperCase()]\n if (mapped) return mapped\n }\n\n // 2) SI_UNIT(<prefix>, .METRE.) — the .METRE. guard excludes angle entities\n // (they carry .RADIAN./.STERADIAN., never .METRE.).\n const si = head.match(/SI_UNIT\\s*\\(\\s*([^)]*?)\\s*,\\s*\\.METRE\\.\\s*\\)/i)\n if (si) {\n const prefix = si[1].trim().toUpperCase()\n if (prefix === '.MICRO.') return 'micron'\n const mapped = SI_PREFIX_TO_UNIT[prefix]\n if (mapped) return mapped\n }\n\n return null\n}\n\n/**\n * Load geometry from raw file bytes (headless variant).\n *\n * @param buffer - the raw file bytes to parse (already decompressed; stpz\n * unzipping is the caller's job — faijs never unzips implicitly).\n * @param format - format identifier such as 'stl', '3mf'/'threemf' or 'step'\n * (defaults to 'stl'). **仅 mesh 格式(STL/3MF)走本模块**;STEP/BREP 走\n * BREP 链(load op 内 OCCT 读取,不支持强制设置单位)。\n * @param opts - optional settings; `unit` (a UnitName string) **force-sets the\n * model's source unit** (STL/3MF): it is NOT a default, it directly specifies\n * the unit and overrides/ignores any unit recorded inside the model (3MF\n * `<model unit>`; STL has none), geometry scaled by `unitScale(unit)`. Only\n * provide it when the caller actually knows the unit (author-written\n * `cad.load({ file, unit })`, or a host unit picker). When the caller does\n * NOT know the unit, it MUST omit `unit` — STL then guesses via\n * `guessStlUnit` (the only allowed guessing path), 3MF uses the file\n * declaration (none → millimeter). A wrong explicit unit scales geometry\n * wrongly and is never re-guessed.\n * @returns the shape with base-unit coordinates plus the file's source unit\n * (`unit`, metadata only; always present — faijs is the single source of truth).\n */\nexport async function importFile(\n buffer: ArrayBuffer,\n format?: string,\n opts?: { unit?: UnitName },\n): Promise<ImportFileResult> {\n const fmt = (format ?? 'stl').toLowerCase()\n\n if (fmt === '3mf' || fmt === 'threemf') {\n const archive = await parseThreemf(buffer, opts)\n // P0(方案 §5.4):不再折叠——返回全部 `<build><item>` 对象(declaration order,\n // 坐标已在 parseThreemf 里折算为 faijs 基准单位)。`shape` 保留为 parts[0]\n // (单零件兼容,过渡期)。\n if (archive.objects.length === 0) {\n throw new Error('[mesh/io] 3MF contains no objects')\n }\n // Bambu 元数据(盘号/挤出机/视图变换):有 Bambu 配置才产生内容,普通 3MF 返回空表。\n // P4:根 model XML 直传(3MF `<build>` 在 resources 前;id 两套编号经父\n // object components 关联——leafParts 表承载)。\n const bambu = parseBambu3mfFromEntries(archive.extraEntries, archive.modelXml)\n const parts = archive.objects.map(threemfObjectToShape)\n const multiPartCount = parts.length > 1 ? parts.length : undefined\n const importModel: ImportModel = {\n format: '3mf',\n unit: archive.unit,\n parts: archive.objects.map((obj, i) => {\n const part: ImportModel['parts'][number] = {\n index: i,\n name: obj.name ?? `imported:${i}`,\n }\n if (obj.baseColor) part.color = [obj.baseColor[0], obj.baseColor[1], obj.baseColor[2]]\n if (obj.meta) part.meta = obj.meta\n // Bambu 身份:3MF `<object id>`(叶子实例)与 Bambu objects 表(键为\n // model_settings 父对象 id)是两套编号——经父 object components 关联\n // (ThreemfObject.parentObjectId/componentIndex → bambu.leafParts)。\n const bm = obj.parentObjectId !== undefined\n ? bambu.leafParts.get(`${obj.parentObjectId}:${obj.componentIndex ?? 1}`)\n : undefined\n if (bm) {\n part.objectId = bm.objectId\n if (bm.plateId > 0) part.plateId = bm.plateId\n // Bambu extruder 1-based(默认 1):显式登记文件声明值\n part.extruder = bm.extruder\n part.partId = bm.partId\n }\n return part\n }),\n ...(archive.fileMeta ? { fileMeta: archive.fileMeta } : {}),\n }\n const bambuViews = buildBambuViews(bambu)\n if (bambuViews) importModel.bambuViews = bambuViews\n // 装配层级重建(方案 §2.1 / 第 5 步):含 `<components>` 时还原 CompoundShape,\n // 叶节点携带相对父 transform;单零件平铺导入不挂载。\n const assembly = archive.hierarchy && archive.localGeomById\n ? buildAssemblyFromArchive(archive.hierarchy, archive.localGeomById)\n : undefined\n return {\n shape: parts[0],\n parts,\n unit: archive.unit,\n multiPartCount,\n importModel,\n // 整体级元数据(`<model><metadata>`)随导入结果上抛(方案 §5.1)。\n ...(archive.fileMeta ? { fileMeta: archive.fileMeta } : {}),\n ...(assembly ? { assembly } : {}),\n }\n }\n\n if (fmt === 'stl') {\n const geo = parseStl(buffer)\n // STL 无单位声明:opts.unit 显式声明优先;未声明时做启发式猜测\n // (guessStlUnit —— 历史 host 行为,unified §6.1/§8 迁移基线)。猜测与\n // 折算都在 faijs 内完成(红线 R0),G0 即基准值,宿主不再二次换算。\n // unit 字段回传源单位(声明值或猜测值),供宿主记录 sourceUnit 元数据。\n let scale = 1\n let sourceUnit: UnitName = 'mm'\n const declared = opts?.unit\n if (declared) {\n sourceUnit = declared\n scale = unitScale(declared)\n } else {\n const bb = boundingBox(geo)\n if (bb.min[0] !== Infinity) {\n sourceUnit = guessStlUnit({\n min: [bb.min[0], bb.min[1], bb.min[2]],\n max: [bb.max[0], bb.max[1], bb.max[2]],\n })\n scale = unitScale(sourceUnit)\n }\n }\n if (scale !== 1) {\n const arr = geo.positions\n for (let i = 0; i < arr.length; i++) arr[i] *= scale\n }\n const shape = geoToManifoldMesh(geo)\n return { shape, parts: [shape], unit: sourceUnit }\n }\n\n // STEP goes through the BREP chain (loadBrep → OCCT, which normalizes to the\n // base unit on read). The mesh io path has no kernel-independent STEP parser\n // and must not fake one — a missing path is an error, not a fallback.\n throw new Error(`[mesh/io] unsupported format: ${fmt}`)\n}\n\n/** 单个 3MF `<build><item>` 对象 → Shape(P0:逐对象构造,替换原\"只取第一个\"收敛)。 */\nfunction threemfObjectToShape(obj: ThreemfObject): Shape {\n return {\n positions: obj.positions as Float32Array,\n indices: obj.indices as Uint32Array,\n // P2(方案 §5 3MF 行):对象级 baseColor → appearance.color(sRGB 原值,\n // 宽容兼容:无 baseColor 不带 appearance)。colorgroup(vertexColors)与\n // 逐三角形材质属 Phase 2(materialGroups / vertexColors),P2 不映射。\n ...(obj.baseColor ? { appearance: { color: [obj.baseColor[0], obj.baseColor[1], obj.baseColor[2]] } } : {}),\n // P4(方案 §5 3MF 行):逐三角形 basematerials(p1=p2=p3)→ materialGroups\n // (三角形区间 + appearance.color);无则不带。vertexColors(colorgroup)\n // 由上层(编辑器导入路径)消费,io 单零件收敛不展开为材质分组。\n ...(obj.materialGroups && obj.materialGroups.length > 0\n ? {\n materialGroups: obj.materialGroups.map((g) => ({\n start: g.start,\n count: g.count,\n appearance: { color: [g.color[0], g.color[1], g.color[2]] } as PbrAppearance,\n })),\n }\n : {}),\n // 零件级元数据(方案 §5.1 3MF 行):对象 name/partnumber/metadatagroup → meta。\n ...(obj.meta ? { meta: obj.meta } : {}),\n }\n}\n\n/**\n * 由 3MF 装配层级重建 `CompoundShape`(方案 §2.1 / 第 5 步「导入归一」)。\n *\n * 见 `ThreemfArchive.hierarchy` / `localGeomById`:节点带**相对父**位姿(行主序 3×4,\n * 平移在末列,与写出器 `transformToMatrix12` 同源);几何来自 `localGeomById` 的**未烘焙**\n * 局部网格。叶节点的最终 `Shape.transform` 即该相对位姿(写回 `Shape.transform`,供\n * 后续导出按 3MF `<component transform>` 原样还原——D1 往返)。容器节点落为\n * `CompoundShape`(不含 `transform` / `meta`,与 `shape.ts` 的 `CompoundShape` 形态一致)。\n *\n * 注:`shape.ts` 的 `CompoundShape.children` 当前声明为 `Shape[]`(非递归),故嵌套装配\n * 在类型层面暂不表达;运行时子节点可为子 `CompoundShape`(由 `isCompoundLike` 结构判定消费)。\n * 把 `CompoundShape` 改为递归类型是独立的后续重构(会波及 faijs-extra / cad-runtime),本步\n * 以最小改动桥接——见下方 `children` 处的收窄断言。\n *\n * 仅在存在真实装配(多 item 或任一 item 带 components)时返回非空;单零件平铺导入返回\n * `undefined`(由调用方决定是否挂载到 `result.assembly`,避免改变单零件结果形状)。\n */\nfunction buildAssemblyFromArchive(\n hierarchy: ThreemfNode[],\n localGeomById: Map<number, ThreemfObject>,\n): Shape | CompoundShape | undefined {\n const hasHierarchy = hierarchy.length > 1 || hierarchy.some((n) => (n.children?.length ?? 0) > 0)\n if (!hasHierarchy) return undefined\n\n const buildNode = (node: ThreemfNode): Shape | CompoundShape => {\n const obj = localGeomById.get(node.objectId)\n if (node.children && node.children.length > 0) {\n // 收窄断言:共享 CompoundShape 非递归声明,运行时子节点可含子 CompoundShape。\n return { kind: 'compound', children: node.children.map(buildNode) as Shape[] }\n }\n // 叶节点:局部几何 + 相对父位姿。\n if (!obj || !obj.positions || !obj.indices) {\n return { kind: 'compound', children: [] }\n }\n const leaf = threemfObjectToShape(obj)\n if (node.transform) {\n ;(leaf as Shape & { transform?: unknown }).transform = { matrix: Array.from(node.transform) }\n }\n return leaf\n }\n\n return hierarchy.length === 1\n ? buildNode(hierarchy[0])\n : { kind: 'compound', children: hierarchy.map(buildNode) as Shape[] }\n}\n\n/** Bambu 显示视图数据 → ImportModel.bambuViews(无任何 Bambu 结构时省略)。 */\nfunction buildBambuViews(\n bambu: import('./threemf-bambu').Bambu3mfMetadata,\n): ImportModel['bambuViews'] | undefined {\n const plates = [...bambu.plates.keys()].sort((a, b) => a - b)\n if (plates.length === 0 && !bambu.assembleTransforms && !bambu.importTransforms) return undefined\n const views: NonNullable<ImportModel['bambuViews']> = { plates }\n if (bambu.assembleTransforms) {\n views.assembleTransforms = Object.fromEntries(\n [...bambu.assembleTransforms].map(([k, v]) => [k, { transform: v.transform, offset: v.offset }]),\n )\n }\n if (bambu.importTransforms) {\n views.importTransforms = Object.fromEntries(\n [...bambu.importTransforms].map(([k, v]) => [k, { matrix: v.matrix, sourceOffset: v.sourceOffset }]),\n )\n }\n // P4:完整消费面随结果回传——宿主重建 Bambu3mfMetadata 不再回读 archive。\n if (bambu.buildItems) {\n views.buildItems = bambu.buildItems.map((b) => ({\n objectId: b.objectId,\n transform: b.transform ?? null,\n }))\n }\n if (bambu.filamentColors.length > 0) views.filamentColors = bambu.filamentColors\n if (bambu.filamentTypes.length > 0) views.filamentTypes = bambu.filamentTypes\n if (bambu.parts.length > 0) {\n views.parts = bambu.parts.map((p) => ({\n partIndex: p.partIndex,\n objectId: p.objectId,\n partId: p.partId,\n name: p.name,\n extruder: p.extruder,\n plateId: p.plateId,\n }))\n }\n return views\n}\n"]}
@@ -6,7 +6,8 @@
6
6
  *
7
7
  * 全程在 mesh 局部空间工作,不需要 world matrix 变换。
8
8
  */
9
- import * as THREE from 'three';
9
+ import { Vec3 as Vec3C } from '../../math3d/index.js';
10
+ import type { Shape } from '../types.js';
10
11
  /**
11
12
  * Knurling texture-displacement parameters: texture height, inversion,
12
13
  * subdivision resolution, UV scale/offset/rotation, mapping mode, seam
@@ -44,10 +45,10 @@ export interface KnurlParams {
44
45
  }
45
46
  /** 包围盒(与 mapping.ts / displacement.ts 的 Bounds 同构) */
46
47
  export interface KnurlBounds {
47
- min: THREE.Vector3;
48
- max: THREE.Vector3;
49
- size: THREE.Vector3;
50
- center: THREE.Vector3;
48
+ min: Vec3C;
49
+ max: Vec3C;
50
+ size: Vec3C;
51
+ center: Vec3C;
51
52
  }
52
53
  /** Default knurling parameters, used for every field the caller leaves unset. */
53
54
  export declare const KNURL_DEFAULTS: KnurlParams;
@@ -68,10 +69,10 @@ export declare const KNURL_DEFAULTS: KnurlParams;
68
69
  * @param boundsOverride - optional whole-part bounds keeping texture density consistent with the GPU preview.
69
70
  * @returns the displaced geometry.
70
71
  */
71
- export declare function applyKnurlDisplacement(geometry: THREE.BufferGeometry, params: KnurlParams, onProgress?: (stage: string, p: number) => void,
72
+ export declare function applyKnurlDisplacement(geometry: Shape, params: KnurlParams, onProgress?: (stage: string, p: number) => void,
72
73
  /** External whole-part bounds (defaults to the geometry's own bounds).
73
74
  * Passing the whole part's bounds keeps texture density consistent with the
74
75
  * GPU preview, which normalizes against the part bbox while this geometry
75
76
  * is often only the selected-face subset. */
76
- boundsOverride?: KnurlBounds): Promise<THREE.BufferGeometry>;
77
+ boundsOverride?: KnurlBounds): Promise<Shape>;
77
78
  //# sourceMappingURL=KnurlGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KnurlGenerator.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/KnurlGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,KAAK,CAAC,OAAO,CAAA;IAClB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAA;IAClB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;CACtB;AAED,iFAAiF;AACjF,eAAO,MAAM,cAAc,EAAE,WAe5B,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI;AAC/C;;;8CAG8C;AAC9C,cAAc,CAAC,EAAE,WAAW,GAC3B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAkG/B"}
1
+ {"version":3,"file":"KnurlGenerator.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/KnurlGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAM5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIrC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,KAAK,CAAA;IACV,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,KAAK,CAAA;CACd;AAED,iFAAiF;AACjF,eAAO,MAAM,cAAc,EAAE,WAe5B,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI;AAC/C;;;8CAG8C;AAC9C,cAAc,CAAC,EAAE,WAAW,GAC3B,OAAO,CAAC,KAAK,CAAC,CAiGhB"}
@@ -6,11 +6,12 @@
6
6
  *
7
7
  * 全程在 mesh 局部空间工作,不需要 world matrix 变换。
8
8
  */
9
- import * as THREE from 'three';
9
+ import { Vec3 as Vec3C } from '../../math3d/index.js';
10
10
  import { subdivide } from './subdivision.js';
11
11
  import { applyDisplacement } from './displacement.js';
12
12
  import { loadKnurlingTexture } from './textureLoader.js';
13
13
  import { MODE_TRIPLANAR } from './mapping.js';
14
+ import { boundingBox } from '../query.js';
14
15
  /** Default knurling parameters, used for every field the caller leaves unset. */
15
16
  export const KNURL_DEFAULTS = {
16
17
  textureHeight: 0.5,
@@ -69,13 +70,14 @@ boundsOverride) {
69
70
  const bounds = boundsOverride
70
71
  ? { min: boundsOverride.min, max: boundsOverride.max, size: boundsOverride.size, center: boundsOverride.center }
71
72
  : (() => {
72
- geometry.computeBoundingBox();
73
- const bb = geometry.boundingBox;
73
+ const bb = boundingBox(geometry);
74
+ const bbMin = new Vec3C(bb.min[0], bb.min[1], bb.min[2]);
75
+ const bbMax = new Vec3C(bb.max[0], bb.max[1], bb.max[2]);
74
76
  return {
75
- min: bb.min.clone(),
76
- max: bb.max.clone(),
77
- size: new THREE.Vector3().subVectors(bb.max, bb.min),
78
- center: new THREE.Vector3().addVectors(bb.min, bb.max).multiplyScalar(0.5),
77
+ min: bbMin,
78
+ max: bbMax,
79
+ size: new Vec3C().subVectors(bbMax, bbMin),
80
+ center: new Vec3C().addVectors(bbMin, bbMax).multiplyScalar(0.5),
79
81
  };
80
82
  })();
81
83
  // 3. 自适应细分:GPU 预览是逐像素 bump(无限分辨率),
@@ -109,8 +111,6 @@ boundsOverride) {
109
111
  seamBandWidth,
110
112
  };
111
113
  const result = applyDisplacement(subdivided, texData, texData.width, texData.height, settings, bounds, (p) => onProgress?.('displace', p));
112
- // 5. 释放中间几何体
113
- subdivided.dispose();
114
114
  return result;
115
115
  }
116
116
  //# sourceMappingURL=KnurlGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KnurlGenerator.js","sourceRoot":"","sources":["../../../src/mesh/knurl/KnurlGenerator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * KnurlGenerator — 滚花纹理位移管线编排器\n *\n * 完全照搬 stlTexturizer 的管线:subdivide → applyDisplacement。\n * 使用 knurling.jpg 作为位移纹理。\n *\n * 全程在 mesh 局部空间工作,不需要 world matrix 变换。\n */\n\nimport * as THREE from 'three'\nimport { subdivide } from './subdivision'\nimport { applyDisplacement, type DisplacementSettings } from './displacement'\nimport { loadKnurlingTexture, type TextureData } from './textureLoader'\nimport { MODE_TRIPLANAR } from './mapping'\n\n// ── Types ──\n\n/**\n * Knurling texture-displacement parameters: texture height, inversion,\n * subdivision resolution, UV scale/offset/rotation, mapping mode, seam\n * blending, and angle-based face masking limits.\n */\nexport interface KnurlParams {\n /** 纹理高度 (mm),默认 0.5 */\n textureHeight: number\n /** 反向(内推而非外推),默认 false */\n invertDisplacement: boolean\n /** 分辨率 (mm) — 细分后最大边长,默认 1.0 */\n refineLength: number\n /** U 缩放,默认 0.15(knurling 专用) */\n scaleU: number\n /** V 缩放,默认 0.15 */\n scaleV: number\n /** 投影模式,默认 5 (Triplanar) */\n mappingMode: number\n /** UV 偏移 U,默认 0 */\n offsetU?: number\n /** UV 偏移 V,默认 0 */\n offsetV?: number\n /** UV 旋转(度),默认 0 */\n rotation?: number\n /** 底面角度遮罩(度),默认 5 */\n bottomAngleLimit?: number\n /** 顶面角度遮罩(度),默认 0(不遮罩) */\n topAngleLimit?: number\n /** 接缝混合,默认 1 */\n mappingBlend?: number\n /** 接缝带宽,默认 0.5 */\n seamBandWidth?: number\n /** 面排除权重(By Surface 用),null = 不排除 */\n faceWeights?: Float32Array | null\n}\n\n/** 包围盒(与 mapping.ts / displacement.ts 的 Bounds 同构) */\nexport interface KnurlBounds {\n min: THREE.Vector3\n max: THREE.Vector3\n size: THREE.Vector3\n center: THREE.Vector3\n}\n\n/** Default knurling parameters, used for every field the caller leaves unset. */\nexport const KNURL_DEFAULTS: KnurlParams = {\n textureHeight: 0.5,\n invertDisplacement: false,\n refineLength: 1.0,\n scaleU: 0.15,\n scaleV: 0.15,\n mappingMode: MODE_TRIPLANAR,\n offsetU: 0,\n offsetV: 0,\n rotation: 0,\n bottomAngleLimit: 5,\n topAngleLimit: 0,\n mappingBlend: 1,\n seamBandWidth: 0.5,\n faceWeights: null,\n}\n\n/**\n * Apply a knurling texture displacement to a geometry, entirely in mesh-local\n * space. Pipeline:\n * 1. Load the knurling texture as ImageData.\n * 2. Subdivide the geometry to the effective refine length.\n * 3. Displace the subdivided vertices along their smoothed normals.\n *\n * The effective refine length is never coarser than the caller's\n * `refineLength`: it is clamped so each texture tile keeps ~8 segments when\n * the requested resolution would alias the fine diamond pattern.\n *\n * @param geometry - the source geometry (mesh-local space).\n * @param params - knurl parameters.\n * @param onProgress - optional callback reporting stage and progress ('texture' | 'subdivide' | 'displace').\n * @param boundsOverride - optional whole-part bounds keeping texture density consistent with the GPU preview.\n * @returns the displaced geometry.\n */\nexport async function applyKnurlDisplacement(\n geometry: THREE.BufferGeometry,\n params: KnurlParams,\n onProgress?: (stage: string, p: number) => void,\n /** External whole-part bounds (defaults to the geometry's own bounds).\n * Passing the whole part's bounds keeps texture density consistent with the\n * GPU preview, which normalizes against the part bbox while this geometry\n * is often only the selected-face subset. */\n boundsOverride?: KnurlBounds,\n): Promise<THREE.BufferGeometry> {\n const {\n textureHeight,\n invertDisplacement,\n refineLength,\n scaleU,\n scaleV,\n mappingMode,\n offsetU = 0,\n offsetV = 0,\n rotation = 0,\n bottomAngleLimit = 5,\n topAngleLimit = 0,\n mappingBlend = 1,\n seamBandWidth = 0.5,\n faceWeights = null,\n } = params\n\n // 1. 加载纹理\n onProgress?.('texture', 0)\n let texData: TextureData | null\n try {\n texData = await loadKnurlingTexture()\n } catch (err) {\n console.error('[KnurlGenerator] Failed to load texture:', err)\n throw new Error(`Failed to load knurling texture: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n\n if (!texData) {\n throw new Error('[KnurlGenerator] No texture data available — TextureSampler port not injected')\n }\n\n // 2. 计算几何体边界(优先使用整块部件包围盒,使密度与预览一致)\n const bounds: KnurlBounds = boundsOverride\n ? { min: boundsOverride.min, max: boundsOverride.max, size: boundsOverride.size, center: boundsOverride.center }\n : (() => {\n geometry.computeBoundingBox()\n const bb = geometry.boundingBox!\n return {\n min: bb.min.clone(),\n max: bb.max.clone(),\n size: new THREE.Vector3().subVectors(bb.max, bb.min),\n center: new THREE.Vector3().addVectors(bb.min, bb.max).multiplyScalar(0.5),\n }\n })()\n\n // 3. 自适应细分:GPU 预览是逐像素 bump(无限分辨率),\n // 而实刻是真几何位移,受三角形密度限制。若 refineLength 大于滚花纹理\n // 的物理周期,网格采样不足会把细密菱形混叠成更低频、更稀疏的图案,\n // 看起来就比预览\"密度低\"。这里保证每瓦片至少 ~8 段,只在用户设得太\n // 粗时才自动加密——绝不会比用户设定的 refineLength 更粗。\n const maxDim = Math.max(bounds.size.x, bounds.size.y, bounds.size.z, 1e-6)\n const knurlPeriod = Math.max(maxDim * scaleU, 1e-6) // 单个纹理瓦片的物理尺寸 (mm)\n const minRefineForPattern = knurlPeriod / 8\n const effectiveRefine = Math.min(refineLength, Math.max(minRefineForPattern, 0.1))\n\n // 3. 细分\n onProgress?.('subdivide', 0)\n const { geometry: subdivided } = await subdivide(\n geometry,\n effectiveRefine,\n (p) => onProgress?.('subdivide', p),\n faceWeights,\n )\n\n // 4. 位移\n onProgress?.('displace', 0)\n const settings: DisplacementSettings = {\n mappingMode,\n scaleU,\n scaleV,\n offsetU,\n offsetV,\n rotation,\n // 与预览着色器 (knurlPreviewMaterial: h = h - 0.5) 保持一致:\n // 纹理以中灰为 0 的对称高度图,位移范围 [-amplitude/2, +amplitude/2]。\n amplitude: (invertDisplacement ? -1 : 1) * textureHeight,\n symmetricDisplacement: true,\n bottomAngleLimit,\n topAngleLimit,\n mappingBlend,\n seamBandWidth,\n }\n\n const result = applyDisplacement(\n subdivided,\n texData,\n texData.width,\n texData.height,\n settings,\n bounds,\n (p) => onProgress?.('displace', p),\n )\n\n // 5. 释放中间几何体\n subdivided.dispose()\n\n return result\n}\n"]}
1
+ {"version":3,"file":"KnurlGenerator.js","sourceRoot":"","sources":["../../../src/mesh/knurl/KnurlGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAA6B,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAoB,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAiDtC,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,aAAa,EAAE,GAAG;IAClB,kBAAkB,EAAE,KAAK;IACzB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,GAAG;IAClB,WAAW,EAAE,IAAI;CAClB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAe,EACf,MAAmB,EACnB,UAA+C;AAC/C;;;8CAG8C;AAC9C,cAA4B;IAE5B,MAAM,EACJ,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC,EACX,QAAQ,GAAG,CAAC,EACZ,gBAAgB,GAAG,CAAC,EACpB,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,CAAC,EAChB,aAAa,GAAG,GAAG,EACnB,WAAW,GAAG,IAAI,GACnB,GAAG,MAAM,CAAA;IAEV,UAAU;IACV,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC1B,IAAI,OAA2B,CAAA;IAC/B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,mBAAmB,EAAE,CAAA;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAA;QAC9D,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IACzH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAA;IAClG,CAAC;IAED,mCAAmC;IACnC,MAAM,MAAM,GAAgB,cAAc;QACxC,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE;QAChH,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;YAChC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACxD,OAAO;gBACL,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,KAAK;gBACV,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC1C,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;aACjE,CAAA;QACH,CAAC,CAAC,EAAE,CAAA;IAER,mCAAmC;IACnC,8CAA8C;IAC9C,sCAAsC;IACtC,yCAAyC;IACzC,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA,CAAC,mBAAmB;IACvE,MAAM,mBAAmB,GAAG,WAAW,GAAG,CAAC,CAAA;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAA;IAElF,QAAQ;IACR,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC5B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAC9C,QAAQ,EACR,eAAe,EACf,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EACnC,WAAW,CACZ,CAAA;IAED,QAAQ;IACR,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAC3B,MAAM,QAAQ,GAAyB;QACrC,WAAW;QACX,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,mDAAmD;QACnD,qDAAqD;QACrD,SAAS,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa;QACxD,qBAAqB,EAAE,IAAI;QAC3B,gBAAgB;QAChB,aAAa;QACb,YAAY;QACZ,aAAa;KACd,CAAA;IAED,MAAM,MAAM,GAAG,iBAAiB,CAC9B,UAAU,EACV,OAAO,EACP,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,QAAQ,EACR,MAAM,EACN,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CACnC,CAAA;IAGD,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["/**\n * KnurlGenerator — 滚花纹理位移管线编排器\n *\n * 完全照搬 stlTexturizer 的管线:subdivide → applyDisplacement。\n * 使用 knurling.jpg 作为位移纹理。\n *\n * 全程在 mesh 局部空间工作,不需要 world matrix 变换。\n */\n\nimport { Vec3 as Vec3C } from '../../math3d'\nimport { subdivide } from './subdivision'\nimport { applyDisplacement, type DisplacementSettings } from './displacement'\nimport { loadKnurlingTexture, type TextureData } from './textureLoader'\nimport { MODE_TRIPLANAR } from './mapping'\nimport { boundingBox } from '../query'\nimport type { Shape } from '../types'\n\n// ── Types ──\n\n/**\n * Knurling texture-displacement parameters: texture height, inversion,\n * subdivision resolution, UV scale/offset/rotation, mapping mode, seam\n * blending, and angle-based face masking limits.\n */\nexport interface KnurlParams {\n /** 纹理高度 (mm),默认 0.5 */\n textureHeight: number\n /** 反向(内推而非外推),默认 false */\n invertDisplacement: boolean\n /** 分辨率 (mm) — 细分后最大边长,默认 1.0 */\n refineLength: number\n /** U 缩放,默认 0.15(knurling 专用) */\n scaleU: number\n /** V 缩放,默认 0.15 */\n scaleV: number\n /** 投影模式,默认 5 (Triplanar) */\n mappingMode: number\n /** UV 偏移 U,默认 0 */\n offsetU?: number\n /** UV 偏移 V,默认 0 */\n offsetV?: number\n /** UV 旋转(度),默认 0 */\n rotation?: number\n /** 底面角度遮罩(度),默认 5 */\n bottomAngleLimit?: number\n /** 顶面角度遮罩(度),默认 0(不遮罩) */\n topAngleLimit?: number\n /** 接缝混合,默认 1 */\n mappingBlend?: number\n /** 接缝带宽,默认 0.5 */\n seamBandWidth?: number\n /** 面排除权重(By Surface 用),null = 不排除 */\n faceWeights?: Float32Array | null\n}\n\n/** 包围盒(与 mapping.ts / displacement.ts 的 Bounds 同构) */\nexport interface KnurlBounds {\n min: Vec3C\n max: Vec3C\n size: Vec3C\n center: Vec3C\n}\n\n/** Default knurling parameters, used for every field the caller leaves unset. */\nexport const KNURL_DEFAULTS: KnurlParams = {\n textureHeight: 0.5,\n invertDisplacement: false,\n refineLength: 1.0,\n scaleU: 0.15,\n scaleV: 0.15,\n mappingMode: MODE_TRIPLANAR,\n offsetU: 0,\n offsetV: 0,\n rotation: 0,\n bottomAngleLimit: 5,\n topAngleLimit: 0,\n mappingBlend: 1,\n seamBandWidth: 0.5,\n faceWeights: null,\n}\n\n/**\n * Apply a knurling texture displacement to a geometry, entirely in mesh-local\n * space. Pipeline:\n * 1. Load the knurling texture as ImageData.\n * 2. Subdivide the geometry to the effective refine length.\n * 3. Displace the subdivided vertices along their smoothed normals.\n *\n * The effective refine length is never coarser than the caller's\n * `refineLength`: it is clamped so each texture tile keeps ~8 segments when\n * the requested resolution would alias the fine diamond pattern.\n *\n * @param geometry - the source geometry (mesh-local space).\n * @param params - knurl parameters.\n * @param onProgress - optional callback reporting stage and progress ('texture' | 'subdivide' | 'displace').\n * @param boundsOverride - optional whole-part bounds keeping texture density consistent with the GPU preview.\n * @returns the displaced geometry.\n */\nexport async function applyKnurlDisplacement(\n geometry: Shape,\n params: KnurlParams,\n onProgress?: (stage: string, p: number) => void,\n /** External whole-part bounds (defaults to the geometry's own bounds).\n * Passing the whole part's bounds keeps texture density consistent with the\n * GPU preview, which normalizes against the part bbox while this geometry\n * is often only the selected-face subset. */\n boundsOverride?: KnurlBounds,\n): Promise<Shape> {\n const {\n textureHeight,\n invertDisplacement,\n refineLength,\n scaleU,\n scaleV,\n mappingMode,\n offsetU = 0,\n offsetV = 0,\n rotation = 0,\n bottomAngleLimit = 5,\n topAngleLimit = 0,\n mappingBlend = 1,\n seamBandWidth = 0.5,\n faceWeights = null,\n } = params\n\n // 1. 加载纹理\n onProgress?.('texture', 0)\n let texData: TextureData | null\n try {\n texData = await loadKnurlingTexture()\n } catch (err) {\n console.error('[KnurlGenerator] Failed to load texture:', err)\n throw new Error(`Failed to load knurling texture: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n\n if (!texData) {\n throw new Error('[KnurlGenerator] No texture data available — TextureSampler port not injected')\n }\n\n // 2. 计算几何体边界(优先使用整块部件包围盒,使密度与预览一致)\n const bounds: KnurlBounds = boundsOverride\n ? { min: boundsOverride.min, max: boundsOverride.max, size: boundsOverride.size, center: boundsOverride.center }\n : (() => {\n const bb = boundingBox(geometry)\n const bbMin = new Vec3C(bb.min[0], bb.min[1], bb.min[2])\n const bbMax = new Vec3C(bb.max[0], bb.max[1], bb.max[2])\n return {\n min: bbMin,\n max: bbMax,\n size: new Vec3C().subVectors(bbMax, bbMin),\n center: new Vec3C().addVectors(bbMin, bbMax).multiplyScalar(0.5),\n }\n })()\n\n // 3. 自适应细分:GPU 预览是逐像素 bump(无限分辨率),\n // 而实刻是真几何位移,受三角形密度限制。若 refineLength 大于滚花纹理\n // 的物理周期,网格采样不足会把细密菱形混叠成更低频、更稀疏的图案,\n // 看起来就比预览\"密度低\"。这里保证每瓦片至少 ~8 段,只在用户设得太\n // 粗时才自动加密——绝不会比用户设定的 refineLength 更粗。\n const maxDim = Math.max(bounds.size.x, bounds.size.y, bounds.size.z, 1e-6)\n const knurlPeriod = Math.max(maxDim * scaleU, 1e-6) // 单个纹理瓦片的物理尺寸 (mm)\n const minRefineForPattern = knurlPeriod / 8\n const effectiveRefine = Math.min(refineLength, Math.max(minRefineForPattern, 0.1))\n\n // 3. 细分\n onProgress?.('subdivide', 0)\n const { geometry: subdivided } = await subdivide(\n geometry,\n effectiveRefine,\n (p) => onProgress?.('subdivide', p),\n faceWeights,\n )\n\n // 4. 位移\n onProgress?.('displace', 0)\n const settings: DisplacementSettings = {\n mappingMode,\n scaleU,\n scaleV,\n offsetU,\n offsetV,\n rotation,\n // 与预览着色器 (knurlPreviewMaterial: h = h - 0.5) 保持一致:\n // 纹理以中灰为 0 的对称高度图,位移范围 [-amplitude/2, +amplitude/2]。\n amplitude: (invertDisplacement ? -1 : 1) * textureHeight,\n symmetricDisplacement: true,\n bottomAngleLimit,\n topAngleLimit,\n mappingBlend,\n seamBandWidth,\n }\n\n const result = applyDisplacement(\n subdivided,\n texData,\n texData.width,\n texData.height,\n settings,\n bounds,\n (p) => onProgress?.('displace', p),\n )\n\n\n return result\n}\n"]}
@@ -9,7 +9,8 @@
9
9
  * 简化:去掉了 boundaryFalloff、blendNormalSmoothing、cubic zoneArea 等。
10
10
  * 保留了核心水密性保证:同位置顶点使用相同平滑法线 + 相同位移值。
11
11
  */
12
- import * as THREE from 'three';
12
+ import { Vec3 as Vec3C } from '../../math3d/index.js';
13
+ import type { Shape } from '../types.js';
13
14
  import { type MappingSettings } from './mapping.js';
14
15
  /**
15
16
  * Displacement settings: the mapping settings plus the amplitude, optional
@@ -23,10 +24,10 @@ export interface DisplacementSettings extends MappingSettings {
23
24
  topAngleLimit?: number;
24
25
  }
25
26
  interface Bounds {
26
- min: THREE.Vector3;
27
- max: THREE.Vector3;
28
- center: THREE.Vector3;
29
- size: THREE.Vector3;
27
+ min: Vec3C;
28
+ max: Vec3C;
29
+ center: Vec3C;
30
+ size: Vec3C;
30
31
  }
31
32
  interface ImageDataLike {
32
33
  data: Uint8ClampedArray | Uint8Array;
@@ -48,6 +49,6 @@ interface ImageDataLike {
48
49
  * @param onProgress - optional callback receiving progress in [0, 1].
49
50
  * @returns a new BufferGeometry with displaced positions and face normals.
50
51
  */
51
- export declare function applyDisplacement(geometry: THREE.BufferGeometry, imageData: ImageDataLike, imgWidth: number, imgHeight: number, settings: DisplacementSettings, bounds: Bounds, onProgress?: (p: number) => void): THREE.BufferGeometry;
52
+ export declare function applyDisplacement(geometry: Shape, imageData: ImageDataLike, imgWidth: number, imgHeight: number, settings: DisplacementSettings, bounds: Bounds, onProgress?: (p: number) => void): Shape;
52
53
  export {};
53
54
  //# sourceMappingURL=displacement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"displacement.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/displacement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AAEjF;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,MAAM;IACd,GAAG,EAAE,KAAK,CAAC,OAAO,CAAA;IAClB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAA;IAClB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;IACrB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAA;CACpB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAAA;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAC/B,KAAK,CAAC,cAAc,CA8OtB"}
1
+ {"version":3,"file":"displacement.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/displacement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AAEjF;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,MAAM;IACd,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,KAAK,CAAA;IACV,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,KAAK,CAAA;CACZ;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAAA;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAC/B,KAAK,CA6OP"}
@@ -9,7 +9,7 @@
9
9
  * 简化:去掉了 boundaryFalloff、blendNormalSmoothing、cubic zoneArea 等。
10
10
  * 保留了核心水密性保证:同位置顶点使用相同平滑法线 + 相同位移值。
11
11
  */
12
- import * as THREE from 'three';
12
+ import { Vec3 as Vec3C } from '../../math3d/index.js';
13
13
  import { QuantizedPointMap } from './meshIndex.js';
14
14
  import { computeUV, getCubicBlendWeights } from './mapping.js';
15
15
  /**
@@ -28,19 +28,19 @@ import { computeUV, getCubicBlendWeights } from './mapping.js';
28
28
  * @returns a new BufferGeometry with displaced positions and face normals.
29
29
  */
30
30
  export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, settings, bounds, onProgress) {
31
- const posAttr = geometry.attributes.position;
32
- const nrmAttr = geometry.attributes.normal;
33
- const count = posAttr.count;
31
+ const posAttr = geometry.positions;
32
+ const nrmAttr = geometry.normals || new Float32Array(posAttr.length);
33
+ const count = posAttr.length / 3;
34
34
  const newPos = new Float32Array(count * 3);
35
35
  const newNrm = new Float32Array(count * 3);
36
- const tmpPos = new THREE.Vector3();
37
- const tmpNrm = new THREE.Vector3();
38
- const vA = new THREE.Vector3();
39
- const vB = new THREE.Vector3();
40
- const vC = new THREE.Vector3();
41
- const edge1 = new THREE.Vector3();
42
- const edge2 = new THREE.Vector3();
43
- const faceNrm = new THREE.Vector3();
36
+ const tmpPos = new Vec3C();
37
+ const tmpNrm = new Vec3C();
38
+ const vA = new Vec3C();
39
+ const vB = new Vec3C();
40
+ const vC = new Vec3C();
41
+ const edge1 = new Vec3C();
42
+ const edge2 = new Vec3C();
43
+ const faceNrm = new Vec3C();
44
44
  // 纹理纵横比校正
45
45
  const tmax = Math.max(imgWidth, imgHeight, 1);
46
46
  const aspectU = tmax / Math.max(imgWidth, 1);
@@ -53,7 +53,7 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
53
53
  let nextId = 0;
54
54
  const vertexId = new Uint32Array(count);
55
55
  for (let i = 0; i < count; i++) {
56
- const x = posAttr.getX(i), y = posAttr.getY(i), z = posAttr.getZ(i);
56
+ const x = posAttr[i * 3], y = posAttr[i * 3 + 1], z = posAttr[i * 3 + 2];
57
57
  const id = dedupMap.getOrSet(x, y, z, nextId);
58
58
  if (dedupMap.inserted)
59
59
  nextId++;
@@ -68,13 +68,13 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
68
68
  const maskedFracMasked = new Float64Array(uniqueCount);
69
69
  const maskedFracTotal = new Float64Array(uniqueCount);
70
70
  // 面排除权重
71
- const ewAttr = geometry.attributes.excludeWeight || null;
71
+ const ewAttr = geometry.excludeWeight || null;
72
72
  const userExcludedFaces = ewAttr ? new Uint8Array(count / 3) : null;
73
73
  const excludedPos = ewAttr ? new Uint8Array(uniqueCount) : null;
74
74
  for (let t = 0; t < count; t += 3) {
75
- vA.fromBufferAttribute(posAttr, t);
76
- vB.fromBufferAttribute(posAttr, t + 1);
77
- vC.fromBufferAttribute(posAttr, t + 2);
75
+ vA.set(posAttr[t * 3], posAttr[t * 3 + 1], posAttr[t * 3 + 2]);
76
+ vB.set(posAttr[(t + 1) * 3], posAttr[(t + 1) * 3 + 1], posAttr[(t + 1) * 3 + 2]);
77
+ vC.set(posAttr[(t + 2) * 3], posAttr[(t + 2) * 3 + 1], posAttr[(t + 2) * 3 + 2]);
78
78
  edge1.subVectors(vB, vA);
79
79
  edge2.subVectors(vC, vA);
80
80
  faceNrm.crossVectors(edge1, edge2);
@@ -87,7 +87,7 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
87
87
  : (settings.topAngleLimit ?? 0) > 0 &&
88
88
  faceAngle <= (settings.topAngleLimit ?? 0);
89
89
  const userExcluded = ewAttr
90
- ? (ewAttr.getX(t) + ewAttr.getX(t + 1) + ewAttr.getX(t + 2)) / 3 > 0.99
90
+ ? (ewAttr[t] + ewAttr[t + 1] + ewAttr[t + 2]) / 3 > 0.99
91
91
  : false;
92
92
  const faceMasked = angleMasked;
93
93
  if (userExcluded && userExcludedFaces)
@@ -96,7 +96,7 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
96
96
  const vid = vertexId[t + v];
97
97
  if (userExcluded && excludedPos)
98
98
  excludedPos[vid] = 1;
99
- tmpNrm.fromBufferAttribute(nrmAttr, t + v);
99
+ tmpNrm.set(nrmAttr[(t + v) * 3], nrmAttr[(t + v) * 3 + 1], nrmAttr[(t + v) * 3 + 2]);
100
100
  smoothNrmX[vid] += tmpNrm.x * faceArea;
101
101
  smoothNrmY[vid] += tmpNrm.y * faceArea;
102
102
  smoothNrmZ[vid] += tmpNrm.z * faceArea;
@@ -123,7 +123,7 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
123
123
  if (dispCacheSet[vid])
124
124
  continue;
125
125
  dispCacheSet[vid] = 1;
126
- tmpPos.fromBufferAttribute(posAttr, i);
126
+ tmpPos.set(posAttr[i * 3], posAttr[i * 3 + 1], posAttr[i * 3 + 2]);
127
127
  // Cubic 模式特殊处理
128
128
  if (settings.mappingMode === 6) {
129
129
  const md = Math.max(bounds.size.x, bounds.size.y, bounds.size.z, 1e-6);
@@ -181,8 +181,8 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
181
181
  // ── Pass 3: 每个顶点副本沿平滑法线位移 ──
182
182
  const REPORT_EVERY = 5000;
183
183
  for (let i = 0; i < count; i++) {
184
- tmpPos.fromBufferAttribute(posAttr, i);
185
- tmpNrm.fromBufferAttribute(nrmAttr, i);
184
+ tmpPos.set(posAttr[i * 3], posAttr[i * 3 + 1], posAttr[i * 3 + 2]);
185
+ tmpNrm.set(nrmAttr[i * 3], nrmAttr[i * 3 + 1], nrmAttr[i * 3 + 2]);
186
186
  const vid = vertexId[i];
187
187
  const grey = dispCacheVal[vid];
188
188
  const isFaceExcluded = userExcludedFaces && userExcludedFaces[Math.floor(i / 3)];
@@ -213,9 +213,9 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
213
213
  onProgress(i / count);
214
214
  }
215
215
  // 从位移后位置计算精确的面法线
216
- const eA = new THREE.Vector3();
217
- const eB = new THREE.Vector3();
218
- const fn = new THREE.Vector3();
216
+ const eA = new Vec3C();
217
+ const eB = new Vec3C();
218
+ const fn = new Vec3C();
219
219
  for (let t = 0; t < count; t += 3) {
220
220
  const ax = newPos[t * 3], ay = newPos[t * 3 + 1], az = newPos[t * 3 + 2];
221
221
  const bx = newPos[t * 3 + 3], by = newPos[t * 3 + 4], bz = newPos[t * 3 + 5];
@@ -229,10 +229,10 @@ export function applyDisplacement(geometry, imageData, imgWidth, imgHeight, sett
229
229
  newNrm[(t + v) * 3 + 2] = fn.z;
230
230
  }
231
231
  }
232
- const out = new THREE.BufferGeometry();
233
- out.setAttribute('position', new THREE.BufferAttribute(newPos, 3));
234
- out.setAttribute('normal', new THREE.BufferAttribute(newNrm, 3));
235
- return out;
232
+ const indices = new Uint32Array(count);
233
+ for (let i = 0; i < count; i++)
234
+ indices[i] = i;
235
+ return { positions: newPos, indices, normals: newNrm };
236
236
  }
237
237
  // ── 双线性采样 ──
238
238
  function sampleBilinear(data, w, h, u, v) {
@@ -1 +1 @@
1
- {"version":3,"file":"displacement.js","sourceRoot":"","sources":["../../../src/mesh/knurl/displacement.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * displacement.ts — 纹理位移核心,从 stlTexturizer/js/displacement.js 移植为 TS(简化版)。\n *\n * 对每个顶点:\n * 1. 用与 GPU 预览 shader 相同的数学计算 UV(mapping.ts)\n * 2. 双线性采样灰度 ImageData\n * 3. 沿平滑法线位移:grey × amplitude\n *\n * 简化:去掉了 boundaryFalloff、blendNormalSmoothing、cubic zoneArea 等。\n * 保留了核心水密性保证:同位置顶点使用相同平滑法线 + 相同位移值。\n */\n\nimport * as THREE from 'three'\nimport { QuantizedPointMap } from './meshIndex'\nimport { computeUV, getCubicBlendWeights, type MappingSettings } from './mapping'\n\n/**\n * Displacement settings: the mapping settings plus the amplitude, optional\n * symmetric displacement, and angle-based face-masking limits.\n */\nexport interface DisplacementSettings extends MappingSettings {\n mappingMode: number\n amplitude: number\n symmetricDisplacement?: boolean\n bottomAngleLimit?: number\n topAngleLimit?: number\n}\n\ninterface Bounds {\n min: THREE.Vector3\n max: THREE.Vector3\n center: THREE.Vector3\n size: THREE.Vector3\n}\n\ninterface ImageDataLike {\n data: Uint8ClampedArray | Uint8Array\n width: number\n height: number\n}\n\n/**\n * Displace every vertex of a non-indexed BufferGeometry. For each vertex the\n * UV is computed with the same math as the GPU preview shader, the greyscale\n * ImageData is sampled bilinearly, and the position is shifted along the\n * smoothed normal by grey × amplitude.\n *\n * @param geometry - the non-indexed source geometry (position + normal attributes).\n * @param imageData - RGBA pixel data of the height map.\n * @param imgWidth - texture width in pixels.\n * @param imgHeight - texture height in pixels.\n * @param settings - displacement and mapping settings.\n * @param bounds - overall mesh bounds used to normalize UV coordinates.\n * @param onProgress - optional callback receiving progress in [0, 1].\n * @returns a new BufferGeometry with displaced positions and face normals.\n */\nexport function applyDisplacement(\n geometry: THREE.BufferGeometry,\n imageData: ImageDataLike,\n imgWidth: number,\n imgHeight: number,\n settings: DisplacementSettings,\n bounds: Bounds,\n onProgress?: (p: number) => void,\n): THREE.BufferGeometry {\n const posAttr = geometry.attributes.position\n const nrmAttr = geometry.attributes.normal\n const count = posAttr.count\n\n const newPos = new Float32Array(count * 3)\n const newNrm = new Float32Array(count * 3)\n\n const tmpPos = new THREE.Vector3()\n const tmpNrm = new THREE.Vector3()\n const vA = new THREE.Vector3()\n const vB = new THREE.Vector3()\n const vC = new THREE.Vector3()\n const edge1 = new THREE.Vector3()\n const edge2 = new THREE.Vector3()\n const faceNrm = new THREE.Vector3()\n\n // 纹理纵横比校正\n const tmax = Math.max(imgWidth, imgHeight, 1)\n const aspectU = tmax / Math.max(imgWidth, 1)\n const aspectV = tmax / Math.max(imgHeight, 1)\n const settingsWithAspect = { ...settings, textureAspectU: aspectU, textureAspectV: aspectV }\n\n // 10μm 顶点去重\n const QUANT = 1e5\n\n // ── 顶点去重:position → numeric ID ──\n const dedupMap = new QuantizedPointMap(QUANT, Math.min(count, 1 << 22))\n let nextId = 0\n const vertexId = new Uint32Array(count)\n for (let i = 0; i < count; i++) {\n const x = posAttr.getX(i),\n y = posAttr.getY(i),\n z = posAttr.getZ(i)\n const id = dedupMap.getOrSet(x, y, z, nextId)\n if (dedupMap.inserted) nextId++\n vertexId[i] = id\n }\n const uniqueCount = nextId\n\n // ── Pass 1: 每个唯一顶点累加面积加权平滑法线 ──\n const smoothNrmX = new Float64Array(uniqueCount)\n const smoothNrmY = new Float64Array(uniqueCount)\n const smoothNrmZ = new Float64Array(uniqueCount)\n\n // 角度遮罩\n const maskedFracMasked = new Float64Array(uniqueCount)\n const maskedFracTotal = new Float64Array(uniqueCount)\n\n // 面排除权重\n const ewAttr = geometry.attributes.excludeWeight || null\n const userExcludedFaces = ewAttr ? new Uint8Array(count / 3) : null\n const excludedPos = ewAttr ? new Uint8Array(uniqueCount) : null\n\n for (let t = 0; t < count; t += 3) {\n vA.fromBufferAttribute(posAttr, t)\n vB.fromBufferAttribute(posAttr, t + 1)\n vC.fromBufferAttribute(posAttr, t + 2)\n edge1.subVectors(vB, vA)\n edge2.subVectors(vC, vA)\n faceNrm.crossVectors(edge1, edge2)\n\n const faceArea = faceNrm.length()\n const faceNzNorm = faceArea > 1e-12 ? faceNrm.z / faceArea : 0\n const faceAngle = Math.acos(Math.abs(faceNzNorm)) * (180 / Math.PI)\n const angleMasked =\n faceNzNorm < 0\n ? (settings.bottomAngleLimit ?? 0) > 0 &&\n faceAngle <= (settings.bottomAngleLimit ?? 0)\n : (settings.topAngleLimit ?? 0) > 0 &&\n faceAngle <= (settings.topAngleLimit ?? 0)\n\n const userExcluded = ewAttr\n ? (ewAttr.getX(t) + ewAttr.getX(t + 1) + ewAttr.getX(t + 2)) / 3 > 0.99\n : false\n const faceMasked = angleMasked\n if (userExcluded && userExcludedFaces) userExcludedFaces[t / 3] = 1\n\n for (let v = 0; v < 3; v++) {\n const vid = vertexId[t + v]\n if (userExcluded && excludedPos) excludedPos[vid] = 1\n tmpNrm.fromBufferAttribute(nrmAttr, t + v)\n smoothNrmX[vid] += tmpNrm.x * faceArea\n smoothNrmY[vid] += tmpNrm.y * faceArea\n smoothNrmZ[vid] += tmpNrm.z * faceArea\n if (faceMasked) maskedFracMasked[vid] += faceArea\n maskedFracTotal[vid] += faceArea\n }\n }\n\n // 归一化平滑法线\n for (let id = 0; id < uniqueCount; id++) {\n const len = Math.sqrt(\n smoothNrmX[id] * smoothNrmX[id] +\n smoothNrmY[id] * smoothNrmY[id] +\n smoothNrmZ[id] * smoothNrmZ[id],\n )\n const inv = len > 0 ? 1 / len : 1\n smoothNrmX[id] *= inv\n smoothNrmY[id] *= inv\n smoothNrmZ[id] *= inv\n }\n\n // ── Pass 2: 每个唯一顶点采样纹理一次 ──\n const dispCacheVal = new Float64Array(uniqueCount)\n const dispCacheSet = new Uint8Array(uniqueCount)\n\n for (let i = 0; i < count; i++) {\n const vid = vertexId[i]\n if (dispCacheSet[vid]) continue\n dispCacheSet[vid] = 1\n\n tmpPos.fromBufferAttribute(posAttr, i)\n\n // Cubic 模式特殊处理\n if (settings.mappingMode === 6) {\n const md = Math.max(bounds.size.x, bounds.size.y, bounds.size.z, 1e-6)\n const rotRad = (settings.rotation ?? 0) * Math.PI / 180\n const cubicBlend = settings.mappingBlend ?? 0\n const cubicBandWidth = settings.seamBandWidth ?? 0.35\n\n const sn = {\n x: smoothNrmX[vid],\n y: smoothNrmY[vid],\n z: smoothNrmZ[vid],\n }\n const w = getCubicBlendWeights(sn, cubicBlend, cubicBandWidth)\n\n if (w.x + w.y + w.z > 0) {\n let grey = 0\n if (w.x > 0) {\n let rawU = (tmpPos.y - bounds.min.y) / md\n if (smoothNrmX[vid] < 0) rawU = -rawU\n const uv = _cubicUV(rawU, (tmpPos.z - bounds.min.z) / md, settings, rotRad, aspectU, aspectV)\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, uv.u, uv.v) * w.x\n }\n if (w.y > 0) {\n let rawU = (tmpPos.x - bounds.min.x) / md\n if (smoothNrmY[vid] > 0) rawU = -rawU\n const uv = _cubicUV(rawU, (tmpPos.z - bounds.min.z) / md, settings, rotRad, aspectU, aspectV)\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, uv.u, uv.v) * w.y\n }\n if (w.z > 0) {\n let rawU = (tmpPos.x - bounds.min.x) / md\n if (smoothNrmZ[vid] < 0) rawU = -rawU\n const uv = _cubicUV(rawU, (tmpPos.y - bounds.min.y) / md, settings, rotRad, aspectU, aspectV)\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, uv.u, uv.v) * w.z\n }\n dispCacheVal[vid] = grey\n continue\n }\n }\n\n // 其他模式:用平滑法线计算 UV\n tmpNrm.set(smoothNrmX[vid], smoothNrmY[vid], smoothNrmZ[vid])\n\n const uvResult = computeUV(tmpPos, tmpNrm, settings.mappingMode, settingsWithAspect, bounds)\n let grey: number\n if (uvResult.triplanar && uvResult.samples) {\n grey = 0\n for (const s of uvResult.samples) {\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, s.u, s.v) * s.w\n }\n } else {\n grey = sampleBilinear(imageData.data, imgWidth, imgHeight, uvResult.u, uvResult.v)\n }\n dispCacheVal[vid] = grey\n }\n\n // ── Pass 3: 每个顶点副本沿平滑法线位移 ──\n const REPORT_EVERY = 5000\n\n for (let i = 0; i < count; i++) {\n tmpPos.fromBufferAttribute(posAttr, i)\n tmpNrm.fromBufferAttribute(nrmAttr, i)\n\n const vid = vertexId[i]\n const grey = dispCacheVal[vid]\n\n const isFaceExcluded = userExcludedFaces && userExcludedFaces[Math.floor(i / 3)]\n const isSealedBoundary = !isFaceExcluded && excludedPos && excludedPos[vid] === 1\n const mfTotal = maskedFracTotal[vid]\n const maskedFrac = mfTotal > 0 ? maskedFracMasked[vid] / mfTotal : 0\n const centeredGrey = settings.symmetricDisplacement ? grey - 0.5 : grey\n const disp =\n isFaceExcluded || isSealedBoundary\n ? 0\n : (1 - maskedFrac) * centeredGrey * settings.amplitude\n\n const newX = tmpPos.x + smoothNrmX[vid] * disp\n const newY = tmpPos.y + smoothNrmY[vid] * disp\n let newZ = tmpPos.z + smoothNrmZ[vid] * disp\n\n // 防止边界顶点穿过遮罩表面\n if (maskedFrac > 0) {\n if ((settings.bottomAngleLimit ?? 0) > 0 && newZ < tmpPos.z) newZ = tmpPos.z\n if ((settings.topAngleLimit ?? 0) > 0 && newZ > tmpPos.z) newZ = tmpPos.z\n }\n\n newPos[i * 3] = newX\n newPos[i * 3 + 1] = newY\n newPos[i * 3 + 2] = newZ\n\n newNrm[i * 3] = tmpNrm.x\n newNrm[i * 3 + 1] = tmpNrm.y\n newNrm[i * 3 + 2] = tmpNrm.z\n\n if (onProgress && i % REPORT_EVERY === 0) onProgress(i / count)\n }\n\n // 从位移后位置计算精确的面法线\n const eA = new THREE.Vector3()\n const eB = new THREE.Vector3()\n const fn = new THREE.Vector3()\n for (let t = 0; t < count; t += 3) {\n const ax = newPos[t * 3],\n ay = newPos[t * 3 + 1],\n az = newPos[t * 3 + 2]\n const bx = newPos[t * 3 + 3],\n by = newPos[t * 3 + 4],\n bz = newPos[t * 3 + 5]\n const cx = newPos[t * 3 + 6],\n cy = newPos[t * 3 + 7],\n cz = newPos[t * 3 + 8]\n eA.set(bx - ax, by - ay, bz - az)\n eB.set(cx - ax, cy - ay, cz - az)\n fn.crossVectors(eA, eB).normalize()\n for (let v = 0; v < 3; v++) {\n newNrm[(t + v) * 3] = fn.x\n newNrm[(t + v) * 3 + 1] = fn.y\n newNrm[(t + v) * 3 + 2] = fn.z\n }\n }\n\n const out = new THREE.BufferGeometry()\n out.setAttribute('position', new THREE.BufferAttribute(newPos, 3))\n out.setAttribute('normal', new THREE.BufferAttribute(newNrm, 3))\n return out\n}\n\n// ── 双线性采样 ──\n\nfunction sampleBilinear(\n data: Uint8ClampedArray | Uint8Array,\n w: number,\n h: number,\n u: number,\n v: number,\n): number {\n u = ((u % 1) + 1) % 1\n v = ((v % 1) + 1) % 1\n v = 1 - v\n\n const fx = u * w - 0.5\n const fy = v * h - 0.5\n let x0 = Math.floor(fx)\n let y0 = Math.floor(fy)\n const tx = fx - x0\n const ty = fy - y0\n const x1 = (x0 + 1 + w) % w\n const y1 = (y0 + 1 + h) % h\n x0 = ((x0 % w) + w) % w\n y0 = ((y0 % h) + h) % h\n\n const v00 = data[(y0 * w + x0) * 4] / 255\n const v10 = data[(y0 * w + x1) * 4] / 255\n const v01 = data[(y1 * w + x0) * 4] / 255\n const v11 = data[(y1 * w + x1) * 4] / 255\n\n return (\n v00 * (1 - tx) * (1 - ty) +\n v10 * tx * (1 - ty) +\n v01 * (1 - tx) * ty +\n v11 * tx * ty\n )\n}\n\nfunction _cubicUV(\n rawU: number,\n rawV: number,\n settings: DisplacementSettings,\n rotRad: number,\n aspectU: number,\n aspectV: number,\n): { u: number; v: number } {\n let u = (rawU * aspectU) / settings.scaleU + settings.offsetU\n let v = (rawV * aspectV) / settings.scaleV + settings.offsetV\n if (rotRad !== 0) {\n const c = Math.cos(rotRad),\n s = Math.sin(rotRad)\n u -= 0.5\n v -= 0.5\n const ru = c * u - s * v,\n rv = s * u + c * v\n u = ru + 0.5\n v = rv + 0.5\n }\n return { u: u - Math.floor(u), v: v - Math.floor(v) }\n}\n"]}
1
+ {"version":3,"file":"displacement.js","sourceRoot":"","sources":["../../../src/mesh/knurl/displacement.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * displacement.ts — 纹理位移核心,从 stlTexturizer/js/displacement.js 移植为 TS(简化版)。\n *\n * 对每个顶点:\n * 1. 用与 GPU 预览 shader 相同的数学计算 UV(mapping.ts)\n * 2. 双线性采样灰度 ImageData\n * 3. 沿平滑法线位移:grey × amplitude\n *\n * 简化:去掉了 boundaryFalloff、blendNormalSmoothing、cubic zoneArea 等。\n * 保留了核心水密性保证:同位置顶点使用相同平滑法线 + 相同位移值。\n */\n\nimport { Vec3 as Vec3C } from '../../math3d'\nimport type { Shape } from '../types'\nimport { QuantizedPointMap } from './meshIndex'\nimport { computeUV, getCubicBlendWeights, type MappingSettings } from './mapping'\n\n/**\n * Displacement settings: the mapping settings plus the amplitude, optional\n * symmetric displacement, and angle-based face-masking limits.\n */\nexport interface DisplacementSettings extends MappingSettings {\n mappingMode: number\n amplitude: number\n symmetricDisplacement?: boolean\n bottomAngleLimit?: number\n topAngleLimit?: number\n}\n\ninterface Bounds {\n min: Vec3C\n max: Vec3C\n center: Vec3C\n size: Vec3C\n}\n\ninterface ImageDataLike {\n data: Uint8ClampedArray | Uint8Array\n width: number\n height: number\n}\n\n/**\n * Displace every vertex of a non-indexed BufferGeometry. For each vertex the\n * UV is computed with the same math as the GPU preview shader, the greyscale\n * ImageData is sampled bilinearly, and the position is shifted along the\n * smoothed normal by grey × amplitude.\n *\n * @param geometry - the non-indexed source geometry (position + normal attributes).\n * @param imageData - RGBA pixel data of the height map.\n * @param imgWidth - texture width in pixels.\n * @param imgHeight - texture height in pixels.\n * @param settings - displacement and mapping settings.\n * @param bounds - overall mesh bounds used to normalize UV coordinates.\n * @param onProgress - optional callback receiving progress in [0, 1].\n * @returns a new BufferGeometry with displaced positions and face normals.\n */\nexport function applyDisplacement(\n geometry: Shape,\n imageData: ImageDataLike,\n imgWidth: number,\n imgHeight: number,\n settings: DisplacementSettings,\n bounds: Bounds,\n onProgress?: (p: number) => void,\n): Shape {\n const posAttr = geometry.positions\n const nrmAttr = geometry.normals || new Float32Array(posAttr.length)\n const count = posAttr.length / 3\n\n const newPos = new Float32Array(count * 3)\n const newNrm = new Float32Array(count * 3)\n\n const tmpPos = new Vec3C()\n const tmpNrm = new Vec3C()\n const vA = new Vec3C()\n const vB = new Vec3C()\n const vC = new Vec3C()\n const edge1 = new Vec3C()\n const edge2 = new Vec3C()\n const faceNrm = new Vec3C()\n\n // 纹理纵横比校正\n const tmax = Math.max(imgWidth, imgHeight, 1)\n const aspectU = tmax / Math.max(imgWidth, 1)\n const aspectV = tmax / Math.max(imgHeight, 1)\n const settingsWithAspect = { ...settings, textureAspectU: aspectU, textureAspectV: aspectV }\n\n // 10μm 顶点去重\n const QUANT = 1e5\n\n // ── 顶点去重:position → numeric ID ──\n const dedupMap = new QuantizedPointMap(QUANT, Math.min(count, 1 << 22))\n let nextId = 0\n const vertexId = new Uint32Array(count)\n for (let i = 0; i < count; i++) {\n const x = posAttr[i * 3],\n y = posAttr[i * 3 + 1],\n z = posAttr[i * 3 + 2]\n const id = dedupMap.getOrSet(x, y, z, nextId)\n if (dedupMap.inserted) nextId++\n vertexId[i] = id\n }\n const uniqueCount = nextId\n\n // ── Pass 1: 每个唯一顶点累加面积加权平滑法线 ──\n const smoothNrmX = new Float64Array(uniqueCount)\n const smoothNrmY = new Float64Array(uniqueCount)\n const smoothNrmZ = new Float64Array(uniqueCount)\n\n // 角度遮罩\n const maskedFracMasked = new Float64Array(uniqueCount)\n const maskedFracTotal = new Float64Array(uniqueCount)\n\n // 面排除权重\n const ewAttr = (geometry as Shape & { excludeWeight?: Float32Array | null }).excludeWeight || null\n const userExcludedFaces = ewAttr ? new Uint8Array(count / 3) : null\n const excludedPos = ewAttr ? new Uint8Array(uniqueCount) : null\n\n for (let t = 0; t < count; t += 3) {\n vA.set(posAttr[t * 3], posAttr[t * 3 + 1], posAttr[t * 3 + 2])\n vB.set(posAttr[(t + 1) * 3], posAttr[(t + 1) * 3 + 1], posAttr[(t + 1) * 3 + 2])\n vC.set(posAttr[(t + 2) * 3], posAttr[(t + 2) * 3 + 1], posAttr[(t + 2) * 3 + 2])\n edge1.subVectors(vB, vA)\n edge2.subVectors(vC, vA)\n faceNrm.crossVectors(edge1, edge2)\n\n const faceArea = faceNrm.length()\n const faceNzNorm = faceArea > 1e-12 ? faceNrm.z / faceArea : 0\n const faceAngle = Math.acos(Math.abs(faceNzNorm)) * (180 / Math.PI)\n const angleMasked =\n faceNzNorm < 0\n ? (settings.bottomAngleLimit ?? 0) > 0 &&\n faceAngle <= (settings.bottomAngleLimit ?? 0)\n : (settings.topAngleLimit ?? 0) > 0 &&\n faceAngle <= (settings.topAngleLimit ?? 0)\n\n const userExcluded = ewAttr\n ? (ewAttr[t] + ewAttr[t + 1] + ewAttr[t + 2]) / 3 > 0.99\n : false\n const faceMasked = angleMasked\n if (userExcluded && userExcludedFaces) userExcludedFaces[t / 3] = 1\n\n for (let v = 0; v < 3; v++) {\n const vid = vertexId[t + v]\n if (userExcluded && excludedPos) excludedPos[vid] = 1\n tmpNrm.set(nrmAttr[(t + v) * 3], nrmAttr[(t + v) * 3 + 1], nrmAttr[(t + v) * 3 + 2])\n smoothNrmX[vid] += tmpNrm.x * faceArea\n smoothNrmY[vid] += tmpNrm.y * faceArea\n smoothNrmZ[vid] += tmpNrm.z * faceArea\n if (faceMasked) maskedFracMasked[vid] += faceArea\n maskedFracTotal[vid] += faceArea\n }\n }\n\n // 归一化平滑法线\n for (let id = 0; id < uniqueCount; id++) {\n const len = Math.sqrt(\n smoothNrmX[id] * smoothNrmX[id] +\n smoothNrmY[id] * smoothNrmY[id] +\n smoothNrmZ[id] * smoothNrmZ[id],\n )\n const inv = len > 0 ? 1 / len : 1\n smoothNrmX[id] *= inv\n smoothNrmY[id] *= inv\n smoothNrmZ[id] *= inv\n }\n\n // ── Pass 2: 每个唯一顶点采样纹理一次 ──\n const dispCacheVal = new Float64Array(uniqueCount)\n const dispCacheSet = new Uint8Array(uniqueCount)\n\n for (let i = 0; i < count; i++) {\n const vid = vertexId[i]\n if (dispCacheSet[vid]) continue\n dispCacheSet[vid] = 1\n\n tmpPos.set(posAttr[i * 3], posAttr[i * 3 + 1], posAttr[i * 3 + 2])\n\n // Cubic 模式特殊处理\n if (settings.mappingMode === 6) {\n const md = Math.max(bounds.size.x, bounds.size.y, bounds.size.z, 1e-6)\n const rotRad = (settings.rotation ?? 0) * Math.PI / 180\n const cubicBlend = settings.mappingBlend ?? 0\n const cubicBandWidth = settings.seamBandWidth ?? 0.35\n\n const sn = {\n x: smoothNrmX[vid],\n y: smoothNrmY[vid],\n z: smoothNrmZ[vid],\n }\n const w = getCubicBlendWeights(sn, cubicBlend, cubicBandWidth)\n\n if (w.x + w.y + w.z > 0) {\n let grey = 0\n if (w.x > 0) {\n let rawU = (tmpPos.y - bounds.min.y) / md\n if (smoothNrmX[vid] < 0) rawU = -rawU\n const uv = _cubicUV(rawU, (tmpPos.z - bounds.min.z) / md, settings, rotRad, aspectU, aspectV)\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, uv.u, uv.v) * w.x\n }\n if (w.y > 0) {\n let rawU = (tmpPos.x - bounds.min.x) / md\n if (smoothNrmY[vid] > 0) rawU = -rawU\n const uv = _cubicUV(rawU, (tmpPos.z - bounds.min.z) / md, settings, rotRad, aspectU, aspectV)\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, uv.u, uv.v) * w.y\n }\n if (w.z > 0) {\n let rawU = (tmpPos.x - bounds.min.x) / md\n if (smoothNrmZ[vid] < 0) rawU = -rawU\n const uv = _cubicUV(rawU, (tmpPos.y - bounds.min.y) / md, settings, rotRad, aspectU, aspectV)\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, uv.u, uv.v) * w.z\n }\n dispCacheVal[vid] = grey\n continue\n }\n }\n\n // 其他模式:用平滑法线计算 UV\n tmpNrm.set(smoothNrmX[vid], smoothNrmY[vid], smoothNrmZ[vid])\n\n const uvResult = computeUV(tmpPos, tmpNrm, settings.mappingMode, settingsWithAspect, bounds)\n let grey: number\n if (uvResult.triplanar && uvResult.samples) {\n grey = 0\n for (const s of uvResult.samples) {\n grey += sampleBilinear(imageData.data, imgWidth, imgHeight, s.u, s.v) * s.w\n }\n } else {\n grey = sampleBilinear(imageData.data, imgWidth, imgHeight, uvResult.u, uvResult.v)\n }\n dispCacheVal[vid] = grey\n }\n\n // ── Pass 3: 每个顶点副本沿平滑法线位移 ──\n const REPORT_EVERY = 5000\n\n for (let i = 0; i < count; i++) {\n tmpPos.set(posAttr[i * 3], posAttr[i * 3 + 1], posAttr[i * 3 + 2])\n tmpNrm.set(nrmAttr[i * 3], nrmAttr[i * 3 + 1], nrmAttr[i * 3 + 2])\n\n const vid = vertexId[i]\n const grey = dispCacheVal[vid]\n\n const isFaceExcluded = userExcludedFaces && userExcludedFaces[Math.floor(i / 3)]\n const isSealedBoundary = !isFaceExcluded && excludedPos && excludedPos[vid] === 1\n const mfTotal = maskedFracTotal[vid]\n const maskedFrac = mfTotal > 0 ? maskedFracMasked[vid] / mfTotal : 0\n const centeredGrey = settings.symmetricDisplacement ? grey - 0.5 : grey\n const disp =\n isFaceExcluded || isSealedBoundary\n ? 0\n : (1 - maskedFrac) * centeredGrey * settings.amplitude\n\n const newX = tmpPos.x + smoothNrmX[vid] * disp\n const newY = tmpPos.y + smoothNrmY[vid] * disp\n let newZ = tmpPos.z + smoothNrmZ[vid] * disp\n\n // 防止边界顶点穿过遮罩表面\n if (maskedFrac > 0) {\n if ((settings.bottomAngleLimit ?? 0) > 0 && newZ < tmpPos.z) newZ = tmpPos.z\n if ((settings.topAngleLimit ?? 0) > 0 && newZ > tmpPos.z) newZ = tmpPos.z\n }\n\n newPos[i * 3] = newX\n newPos[i * 3 + 1] = newY\n newPos[i * 3 + 2] = newZ\n\n newNrm[i * 3] = tmpNrm.x\n newNrm[i * 3 + 1] = tmpNrm.y\n newNrm[i * 3 + 2] = tmpNrm.z\n\n if (onProgress && i % REPORT_EVERY === 0) onProgress(i / count)\n }\n\n // 从位移后位置计算精确的面法线\n const eA = new Vec3C()\n const eB = new Vec3C()\n const fn = new Vec3C()\n for (let t = 0; t < count; t += 3) {\n const ax = newPos[t * 3],\n ay = newPos[t * 3 + 1],\n az = newPos[t * 3 + 2]\n const bx = newPos[t * 3 + 3],\n by = newPos[t * 3 + 4],\n bz = newPos[t * 3 + 5]\n const cx = newPos[t * 3 + 6],\n cy = newPos[t * 3 + 7],\n cz = newPos[t * 3 + 8]\n eA.set(bx - ax, by - ay, bz - az)\n eB.set(cx - ax, cy - ay, cz - az)\n fn.crossVectors(eA, eB).normalize()\n for (let v = 0; v < 3; v++) {\n newNrm[(t + v) * 3] = fn.x\n newNrm[(t + v) * 3 + 1] = fn.y\n newNrm[(t + v) * 3 + 2] = fn.z\n }\n }\n\n const indices = new Uint32Array(count)\n for (let i = 0; i < count; i++) indices[i] = i\n return { positions: newPos, indices, normals: newNrm }\n}\n\n// ── 双线性采样 ──\n\nfunction sampleBilinear(\n data: Uint8ClampedArray | Uint8Array,\n w: number,\n h: number,\n u: number,\n v: number,\n): number {\n u = ((u % 1) + 1) % 1\n v = ((v % 1) + 1) % 1\n v = 1 - v\n\n const fx = u * w - 0.5\n const fy = v * h - 0.5\n let x0 = Math.floor(fx)\n let y0 = Math.floor(fy)\n const tx = fx - x0\n const ty = fy - y0\n const x1 = (x0 + 1 + w) % w\n const y1 = (y0 + 1 + h) % h\n x0 = ((x0 % w) + w) % w\n y0 = ((y0 % h) + h) % h\n\n const v00 = data[(y0 * w + x0) * 4] / 255\n const v10 = data[(y0 * w + x1) * 4] / 255\n const v01 = data[(y1 * w + x0) * 4] / 255\n const v11 = data[(y1 * w + x1) * 4] / 255\n\n return (\n v00 * (1 - tx) * (1 - ty) +\n v10 * tx * (1 - ty) +\n v01 * (1 - tx) * ty +\n v11 * tx * ty\n )\n}\n\nfunction _cubicUV(\n rawU: number,\n rawV: number,\n settings: DisplacementSettings,\n rotRad: number,\n aspectU: number,\n aspectV: number,\n): { u: number; v: number } {\n let u = (rawU * aspectU) / settings.scaleU + settings.offsetU\n let v = (rawV * aspectV) / settings.scaleV + settings.offsetV\n if (rotRad !== 0) {\n const c = Math.cos(rotRad),\n s = Math.sin(rotRad)\n u -= 0.5\n v -= 0.5\n const ru = c * u - s * v,\n rv = s * u + c * v\n u = ru + 0.5\n v = rv + 0.5\n }\n return { u: u - Math.floor(u), v: v - Math.floor(v) }\n}\n"]}
@@ -33,7 +33,7 @@
33
33
  * - E2E 测试通过:hasNaN: false, bounds 正确
34
34
  * - 原始 bounds [0,0,0]~[150,120,90] → knurl 后 [-0.5,-0.5,0]~[150.5,120.5,90.5]
35
35
  */
36
- import * as THREE from 'three';
36
+ import type { Shape } from '../types.js';
37
37
  /**
38
38
  * Adaptively subdivide a geometry until every edge is ≤ maxEdgeLength.
39
39
  * Indexed inputs are expanded to non-indexed form first; sharp edges are
@@ -47,8 +47,8 @@ import * as THREE from 'three';
47
47
  * @param faceWeights - optional per-face exclusion weights (non-indexed triangle soup layout).
48
48
  * @returns the subdivided non-indexed geometry and whether the safety cap was reached.
49
49
  */
50
- export declare function subdivide(geometry: THREE.BufferGeometry, maxEdgeLength: number, onProgress?: (p: number, triCount: number, longestEdge: number) => void, faceWeights?: Float32Array | null): Promise<{
51
- geometry: THREE.BufferGeometry;
50
+ export declare function subdivide(geometry: Shape, maxEdgeLength: number, onProgress?: (p: number, triCount: number, longestEdge: number) => void, faceWeights?: Float32Array | null): Promise<{
51
+ geometry: Shape;
52
52
  safetyCapHit: boolean;
53
53
  }>;
54
54
  //# sourceMappingURL=subdivision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subdivision.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/subdivision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA6D9B;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,EACvE,WAAW,GAAE,YAAY,GAAG,IAAW,GACtC,OAAO,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;CACtB,CAAC,CAsED"}
1
+ {"version":3,"file":"subdivision.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/subdivision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AA8DrC;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,EACvE,WAAW,GAAE,YAAY,GAAG,IAAW,GACtC,OAAO,CAAC;IACT,QAAQ,EAAE,KAAK,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;CACtB,CAAC,CAuED"}