@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
@@ -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 { toNonIndexed as shapeToNonIndexed } from '../meshdata/ops.js';
37
37
  import { QuantizedPointMap } from './meshIndex.js';
38
38
  // 10μm 顶点去重网格
39
39
  const QUANTISE = 1e5;
@@ -92,8 +92,9 @@ function makeVertStore(initialCap, hasWeights, hasCanon) {
92
92
  export async function subdivide(geometry, maxEdgeLength, onProgress, faceWeights = null) {
93
93
  // 确保 geometry 是 non-indexed(toIndexed 假设输入是 flat 的)
94
94
  let workingGeo = geometry;
95
- if (geometry.index) {
96
- workingGeo = geometry.toNonIndexed();
95
+ if (geometry.indices.length > 0) {
96
+ const ni = shapeToNonIndexed(geometry);
97
+ workingGeo = { positions: ni.positions, indices: ni.indices };
97
98
  }
98
99
  // 在 toIndexed 之前推导每面排除标记
99
100
  let initialFaceExcluded = null;
@@ -365,15 +366,15 @@ function getMidpoint(verts, cache, a, b, posCanonMap) {
365
366
  return idx;
366
367
  }
367
368
  function toIndexed(geometry, nonIndexedWeights = null) {
368
- const posAttr = geometry.attributes.position;
369
- const n = posAttr.count;
369
+ const positions = geometry.positions;
370
+ const n = positions.length / 3;
370
371
  // 预计算每个面的法线(单位 + 原始叉积)
371
372
  const faceNrmUnit = new Float32Array(n * 3);
372
373
  const faceNrmRaw = new Float32Array(n * 3);
373
374
  for (let t = 0; t < n; t += 3) {
374
- const ax = posAttr.getX(t), ay = posAttr.getY(t), az = posAttr.getZ(t);
375
- const bx = posAttr.getX(t + 1), by = posAttr.getY(t + 1), bz = posAttr.getZ(t + 1);
376
- const cx = posAttr.getX(t + 2), cy = posAttr.getY(t + 2), cz = posAttr.getZ(t + 2);
375
+ const ax = positions[t * 3], ay = positions[t * 3 + 1], az = positions[t * 3 + 2];
376
+ const bx = positions[(t + 1) * 3], by = positions[(t + 1) * 3 + 1], bz = positions[(t + 1) * 3 + 2];
377
+ const cx = positions[(t + 2) * 3], cy = positions[(t + 2) * 3 + 1], cz = positions[(t + 2) * 3 + 2];
377
378
  const e1x = bx - ax, e1y = by - ay, e1z = bz - az;
378
379
  const e2x = cx - ax, e2y = cy - ay, e2z = cz - az;
379
380
  const rx = e1y * e2z - e1z * e2y;
@@ -397,9 +398,9 @@ function toIndexed(geometry, nonIndexedWeights = null) {
397
398
  // canonical ID → cluster list at that position
398
399
  const clustersByCanon = new Map();
399
400
  for (let i = 0; i < n; i++) {
400
- const px = posAttr.getX(i);
401
- const py = posAttr.getY(i);
402
- const pz = posAttr.getZ(i);
401
+ const px = positions[i * 3];
402
+ const py = positions[i * 3 + 1];
403
+ const pz = positions[i * 3 + 2];
403
404
  const fnUx = faceNrmUnit[i * 3], fnUy = faceNrmUnit[i * 3 + 1], fnUz = faceNrmUnit[i * 3 + 2];
404
405
  const fnRx = faceNrmRaw[i * 3], fnRy = faceNrmRaw[i * 3 + 1], fnRz = faceNrmRaw[i * 3 + 2];
405
406
  // 第一个到达此位置的顶点成为 canonical ID
@@ -507,11 +508,16 @@ function toNonIndexed(verts, indices, faceExcluded = null) {
507
508
  wgtArray[t * 3 + v] = faceW !== null ? faceW : weights[vidx];
508
509
  }
509
510
  }
510
- const geo = new THREE.BufferGeometry();
511
- geo.setAttribute('position', new THREE.BufferAttribute(posArray, 3));
512
- geo.setAttribute('normal', new THREE.BufferAttribute(nrmArray, 3));
511
+ const seqIndices = new Uint32Array(triCount * 3);
512
+ for (let i = 0; i < seqIndices.length; i++)
513
+ seqIndices[i] = i;
514
+ const geo = {
515
+ positions: posArray,
516
+ indices: seqIndices,
517
+ normals: nrmArray,
518
+ };
513
519
  if (wgtArray)
514
- geo.setAttribute('excludeWeight', new THREE.BufferAttribute(wgtArray, 1));
520
+ geo.excludeWeight = wgtArray;
515
521
  return geo;
516
522
  }
517
523
  //# sourceMappingURL=subdivision.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subdivision.js","sourceRoot":"","sources":["../../../src/mesh/knurl/subdivision.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * subdivision.ts — 自适应边细分,从 stlTexturizer/js/subdivision.js 移植为 TS。\n *\n * 细分直到每条边 ≤ maxEdgeLength。\n *\n * 关键特性:\n * - toIndexed (export path): 锐边分裂 — 同位置但法线夹角 > 30° 的顶点分开存储\n * - 确保水密性\n *\n * 管线:\n * toIndexed(geometry) → 索引化 + 顶点去重 + 锐边分裂\n * 循环细分:标记长边 → 按标记数量分裂三角形\n * toNonIndexed(verts, indices) → 输出 non-indexed BufferGeometry\n *\n * Bug 修复记录 (2026-07-22):\n * 问题: 检测到 knurl 后的 mesh 出现 NaN 值和错误 bounds\n * (bounds 从 [-0.5, 0.5] 变成 [-17, 17],且 hasNaN: true)\n *\n * 根因分析:\n * 1. box_boss.3mf 是 indexed geometry (530 vertices, 1548 indices)\n * 2. toIndexed() 函数假设输入是 non-indexed (flat triangles)\n * 3. 当传入 indexed geometry 时,toIndexed() 错误处理顶点数据:\n * - n = posAttr.count = 530 (顶点数)\n * - 但代码按 triangle count = n/3 = 176 处理\n * - 导致顶点索引越界,读取错误位置的数据\n * 4. 细分后顶点位置完全错误,进而导致 displacement 计算产生 NaN\n *\n * 修复方案:\n * 在 subdivide() 入口添加 indexed → non-indexed 转换:\n * if (geometry.index) { workingGeo = geometry.toNonIndexed() }\n *\n * 验证:\n * - E2E 测试通过:hasNaN: false, bounds 正确\n * - 原始 bounds [0,0,0]~[150,120,90] → knurl 后 [-0.5,-0.5,0]~[150.5,120.5,90.5]\n */\n\nimport * as THREE from 'three'\nimport { QuantizedPointMap } from './meshIndex'\n\n// 10μm 顶点去重网格\nconst QUANTISE = 1e5\n// 安全上限\nconst SAFETY_CAP =\n typeof navigator !== 'undefined' &&\n (navigator as Navigator & { deviceMemory?: number }).deviceMemory !== undefined &&\n (navigator as Navigator & { deviceMemory?: number }).deviceMemory! >= 8\n ? 32_000_000\n : 16_000_000\n\n// 锐边角度阈值(度)— 法线夹角超过此值的顶点在索引化时分裂\nconst SHARP_ANGLE_DEG = 30\nconst SHARP_COS = Math.cos(SHARP_ANGLE_DEG * Math.PI / 180)\n\n// ── 可增长类型化顶点存储 ──\n\ninterface VertStore {\n cap: number\n count: number\n pos: Float64Array\n nrm: Float64Array\n wgt: Float64Array | null\n canon: Int32Array | null // 规范位置 ID(准确模式)\n grow(): void\n}\n\nfunction makeVertStore(initialCap: number, hasWeights: boolean, hasCanon: boolean): VertStore {\n return {\n cap: initialCap,\n count: 0,\n pos: new Float64Array(initialCap * 3),\n nrm: new Float64Array(initialCap * 3),\n wgt: hasWeights ? new Float64Array(initialCap) : null,\n canon: hasCanon ? new Int32Array(initialCap) : null,\n grow() {\n this.cap *= 2\n const np = new Float64Array(this.cap * 3)\n np.set(this.pos)\n this.pos = np\n const nn = new Float64Array(this.cap * 3)\n nn.set(this.nrm)\n this.nrm = nn\n if (this.wgt) {\n const nw = new Float64Array(this.cap)\n nw.set(this.wgt)\n this.wgt = nw\n }\n if (this.canon) {\n const nc = new Int32Array(this.cap)\n nc.set(this.canon)\n this.canon = nc\n }\n },\n }\n}\n\n// ── 公共入口 ──\n\n/**\n * Adaptively subdivide a geometry until every edge is ≤ maxEdgeLength.\n * Indexed inputs are expanded to non-indexed form first; sharp edges are\n * split at vertices whose face-normal angle exceeds the threshold so each\n * surface keeps its own normal direction and the result stays watertight.\n * Faces marked by `faceWeights` are excluded from refinement.\n *\n * @param geometry - the source geometry (position attribute; may be indexed).\n * @param maxEdgeLength - maximum allowed edge length in millimeters.\n * @param onProgress - optional callback receiving progress, triangle count, and longest edge.\n * @param faceWeights - optional per-face exclusion weights (non-indexed triangle soup layout).\n * @returns the subdivided non-indexed geometry and whether the safety cap was reached.\n */\nexport async function subdivide(\n geometry: THREE.BufferGeometry,\n maxEdgeLength: number,\n onProgress?: (p: number, triCount: number, longestEdge: number) => void,\n faceWeights: Float32Array | null = null,\n): Promise<{\n geometry: THREE.BufferGeometry\n safetyCapHit: boolean\n}> {\n // 确保 geometry 是 non-indexed(toIndexed 假设输入是 flat 的)\n let workingGeo = geometry\n if (geometry.index) {\n workingGeo = geometry.toNonIndexed()\n }\n\n // 在 toIndexed 之前推导每面排除标记\n let initialFaceExcluded: Uint8Array | null = null\n if (faceWeights) {\n const triCount = faceWeights.length / 3\n initialFaceExcluded = new Uint8Array(triCount)\n for (let i = 0; i < triCount; i++) {\n if (faceWeights[i * 3] > 0.99) initialFaceExcluded[i] = 1\n }\n }\n\n // 使用准确模式(带锐边分裂的 toIndexed)\n const { verts, indices, posCanonMap } = toIndexed(workingGeo, faceWeights)\n\n const maxIterations = 12\n let currentIndices = indices\n let currentFaceExcluded = initialFaceExcluded\n let safetyCapHit = false\n\n for (let iter = 0; iter < maxIterations; iter++) {\n const triCount = currentIndices.length / 3\n if (triCount >= SAFETY_CAP) {\n safetyCapHit = true\n break\n }\n\n const { newIndices, newFaceExcluded, changed, capped } = subdividePass(\n verts,\n currentIndices,\n maxEdgeLength,\n SAFETY_CAP,\n currentFaceExcluded,\n posCanonMap,\n )\n currentIndices = newIndices\n if (newFaceExcluded) currentFaceExcluded = newFaceExcluded\n\n if (capped || newIndices.length / 3 >= SAFETY_CAP) safetyCapHit = true\n\n const positions = verts.pos\n let maxEdgeLenSq = 0\n for (let t = 0; t < currentIndices.length; t += 3) {\n const a = currentIndices[t],\n b = currentIndices[t + 1],\n c = currentIndices[t + 2]\n const ab = edgeLenSq(positions, a, b)\n const bc = edgeLenSq(positions, b, c)\n const ca = edgeLenSq(positions, c, a)\n if (ab > maxEdgeLenSq) maxEdgeLenSq = ab\n if (bc > maxEdgeLenSq) maxEdgeLenSq = bc\n if (ca > maxEdgeLenSq) maxEdgeLenSq = ca\n }\n const longestEdge = Math.sqrt(maxEdgeLenSq)\n\n const newTriCount = newIndices.length / 3\n if (onProgress) onProgress(Math.min(0.95, (iter + 1) / maxIterations), newTriCount, longestEdge)\n await new Promise((r) => setTimeout(r, 0))\n if (!changed || safetyCapHit) break\n }\n\n return {\n geometry: toNonIndexed(verts, currentIndices, currentFaceExcluded),\n safetyCapHit,\n }\n}\n\n// ── 一次细分 pass ──\n\nfunction subdividePass(\n verts: VertStore,\n indices: Uint32Array,\n maxEdgeLength: number,\n safetyCap: number,\n faceExcluded: Uint8Array | null = null,\n posCanonMap: QuantizedPointMap | null = null,\n): {\n newIndices: Uint32Array\n newFaceExcluded: Uint8Array | null\n changed: boolean\n capped?: boolean\n} {\n const maxSq = maxEdgeLength * maxEdgeLength\n const midCache = new QuantizedPointMap(1, 1 << 16)\n const positions = verts.pos\n const canonIdx = verts.canon\n\n const splitEdges = new QuantizedPointMap(1, 1 << 16)\n const markEdge = (a: number, b: number) => {\n const u = canonIdx ? canonIdx[a] : a,\n v = canonIdx ? canonIdx[b] : b\n if (u < v) splitEdges.getOrSet(u, v, 0, 1)\n else splitEdges.getOrSet(v, u, 0, 1)\n }\n const isMarked = (a: number, b: number) => {\n const u = canonIdx ? canonIdx[a] : a,\n v = canonIdx ? canonIdx[b] : b\n return (u < v ? splitEdges.get(u, v, 0) : splitEdges.get(v, u, 0)) !== -1\n }\n\n // Step 1: 标记需要分裂的边\n for (let t = 0; t < indices.length; t += 3) {\n if (faceExcluded && faceExcluded[t / 3]) continue\n const a = indices[t],\n b = indices[t + 1],\n c = indices[t + 2]\n if (edgeLenSq(positions, a, b) > maxSq) markEdge(a, b)\n if (edgeLenSq(positions, b, c) > maxSq) markEdge(b, c)\n if (edgeLenSq(positions, c, a) > maxSq) markEdge(c, a)\n }\n\n if (splitEdges.size === 0)\n return { newIndices: indices, newFaceExcluded: faceExcluded, changed: false }\n\n // Step 1.5: 预测分裂后三角形数量\n let predictedTris = 0\n for (let t = 0; t < indices.length; t += 3) {\n const a = indices[t],\n b = indices[t + 1],\n c = indices[t + 2]\n const sAB = isMarked(a, b)\n const sBC = isMarked(b, c)\n const sCA = isMarked(c, a)\n const n = (sAB ? 1 : 0) + (sBC ? 1 : 0) + (sCA ? 1 : 0)\n predictedTris += n === 0 ? 1 : n + 1\n }\n if (predictedTris > safetyCap) {\n return { newIndices: indices, newFaceExcluded: faceExcluded, changed: false, capped: true }\n }\n\n // Step 2: 重建索引列表\n const nextIndices = new Uint32Array(predictedTris * 3)\n const nextFaceExcluded = faceExcluded ? new Uint8Array(predictedTris) : null\n let wi = 0\n let fi = 0\n\n for (let t = 0; t < indices.length; t += 3) {\n const a = indices[t],\n b = indices[t + 1],\n c = indices[t + 2]\n const fIdx = t / 3\n const excl = faceExcluded ? faceExcluded[fIdx] : 0\n const sAB = isMarked(a, b)\n const sBC = isMarked(b, c)\n const sCA = isMarked(c, a)\n const n = (sAB ? 1 : 0) + (sBC ? 1 : 0) + (sCA ? 1 : 0)\n\n if (n === 0) {\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n } else if (n === 3) {\n const mAB = getMidpoint(verts, midCache, a, b, posCanonMap)\n const mBC = getMidpoint(verts, midCache, b, c, posCanonMap)\n const mCA = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mAB\n nextIndices[wi++] = b\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mBC\n nextIndices[wi++] = c\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mCA\n for (let k = 0; k < 4; k++) {\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n }\n } else if (n === 1) {\n if (sAB) {\n const m = getMidpoint(verts, midCache, a, b, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = m\n nextIndices[wi++] = c\n nextIndices[wi++] = m\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n } else if (sBC) {\n const m = getMidpoint(verts, midCache, b, c, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = m\n nextIndices[wi++] = a\n nextIndices[wi++] = m\n nextIndices[wi++] = c\n } else {\n const m = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = m\n nextIndices[wi++] = m\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n }\n for (let k = 0; k < 2; k++) {\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n }\n } else {\n // n === 2: 3 sub-triangles, fan from the untouched-edge vertex\n if (!sAB) {\n // sBC + sCA: fan from C\n const mBC = getMidpoint(verts, midCache, b, c, posCanonMap)\n const mCA = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = mBC\n nextIndices[wi++] = a\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mCA\n nextIndices[wi++] = c\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mBC\n } else if (!sBC) {\n // sAB + sCA: fan from A\n const mAB = getMidpoint(verts, midCache, a, b, posCanonMap)\n const mCA = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mAB\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n nextIndices[wi++] = mAB\n nextIndices[wi++] = c\n nextIndices[wi++] = mCA\n } else {\n // sAB + sBC: fan from B\n const mAB = getMidpoint(verts, midCache, a, b, posCanonMap)\n const mBC = getMidpoint(verts, midCache, b, c, posCanonMap)\n nextIndices[wi++] = b\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mAB\n nextIndices[wi++] = a\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mBC\n nextIndices[wi++] = a\n nextIndices[wi++] = mBC\n nextIndices[wi++] = c\n }\n for (let k = 0; k < 3; k++) {\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n }\n }\n }\n\n return { newIndices: nextIndices, newFaceExcluded: nextFaceExcluded, changed: true }\n}\n\n// ── 辅助函数 ──\n\nfunction edgeLenSq(pos: Float64Array, a: number, b: number): number {\n const dx = pos[a * 3] - pos[b * 3]\n const dy = pos[a * 3 + 1] - pos[b * 3 + 1]\n const dz = pos[a * 3 + 2] - pos[b * 3 + 2]\n return dx * dx + dy * dy + dz * dz\n}\n\nfunction getMidpoint(\n verts: VertStore,\n cache: QuantizedPointMap,\n a: number,\n b: number,\n posCanonMap: QuantizedPointMap | null,\n): number {\n const lo = a < b ? a : b,\n hi = a < b ? b : a\n const cached = cache.get(lo, hi, 0)\n if (cached !== -1) return cached\n\n const pos = verts.pos,\n nrm = verts.nrm\n\n const mx = (pos[a * 3] + pos[b * 3]) / 2\n const my = (pos[a * 3 + 1] + pos[b * 3 + 1]) / 2\n const mz = (pos[a * 3 + 2] + pos[b * 3 + 2]) / 2\n\n const nx = nrm[a * 3] + nrm[b * 3]\n const ny = nrm[a * 3 + 1] + nrm[b * 3 + 1]\n const nz = nrm[a * 3 + 2] + nrm[b * 3 + 2]\n const nl = Math.sqrt(nx * nx + ny * ny + nz * nz) || 1\n\n const idx = verts.count\n if (idx === verts.cap) verts.grow()\n verts.pos[idx * 3] = mx\n verts.pos[idx * 3 + 1] = my\n verts.pos[idx * 3 + 2] = mz\n verts.nrm[idx * 3] = nx / nl\n verts.nrm[idx * 3 + 1] = ny / nl\n verts.nrm[idx * 3 + 2] = nz / nl\n if (verts.wgt) verts.wgt[idx] = (verts.wgt[a] + verts.wgt[b]) / 2\n // 维护规范位置 ID\n if (verts.canon && posCanonMap) {\n verts.canon[idx] = posCanonMap.getOrSet(mx, my, mz, idx)\n }\n verts.count = idx + 1\n\n cache.getOrSet(lo, hi, 0, idx)\n return idx\n}\n\n// ── 准确模式:非 indexed → indexed(带锐边分裂) ──\n//\n// 关键:同一位置但法线夹角 > SHARP_ANGLE_DEG 的顶点会被分裂成不同的 indexed vertex。\n// 这确保立方体的每个面保持独立的法线方向,位移后不会产生破面。\n\ninterface ClusterInfo {\n idx: number\n fnU: [number, number, number] // 面法线单位向量(运行平均值)\n}\n\nfunction toIndexed(\n geometry: THREE.BufferGeometry,\n nonIndexedWeights: Float32Array | null = null,\n): { verts: VertStore; indices: Uint32Array; posCanonMap: QuantizedPointMap } {\n const posAttr = geometry.attributes.position\n const n = posAttr.count\n\n // 预计算每个面的法线(单位 + 原始叉积)\n const faceNrmUnit = new Float32Array(n * 3)\n const faceNrmRaw = new Float32Array(n * 3)\n for (let t = 0; t < n; t += 3) {\n const ax = posAttr.getX(t),\n ay = posAttr.getY(t),\n az = posAttr.getZ(t)\n const bx = posAttr.getX(t + 1),\n by = posAttr.getY(t + 1),\n bz = posAttr.getZ(t + 1)\n const cx = posAttr.getX(t + 2),\n cy = posAttr.getY(t + 2),\n cz = posAttr.getZ(t + 2)\n const e1x = bx - ax,\n e1y = by - ay,\n e1z = bz - az\n const e2x = cx - ax,\n e2y = cy - ay,\n e2z = cz - az\n const rx = e1y * e2z - e1z * e2y\n const ry = e1z * e2x - e1x * e2z\n const rz = e1x * e2y - e1y * e2x\n const len = Math.sqrt(rx * rx + ry * ry + rz * rz) || 1\n const ux = rx / len,\n uy = ry / len,\n uz = rz / len\n for (let v = 0; v < 3; v++) {\n faceNrmUnit[(t + v) * 3] = ux\n faceNrmUnit[(t + v) * 3 + 1] = uy\n faceNrmUnit[(t + v) * 3 + 2] = uz\n faceNrmRaw[(t + v) * 3] = rx\n faceNrmRaw[(t + v) * 3 + 1] = ry\n faceNrmRaw[(t + v) * 3 + 2] = rz\n }\n }\n\n const indices = new Uint32Array(n)\n const verts = makeVertStore(Math.max(16, Math.min(1 << 16, n)), !!nonIndexedWeights, true)\n // position → first vertex idx at that position (canonical ID)\n const posCanonMap = new QuantizedPointMap(QUANTISE, Math.min(n, 1 << 22))\n // canonical ID → cluster list at that position\n const clustersByCanon = new Map<number, ClusterInfo[]>()\n\n for (let i = 0; i < n; i++) {\n const px = posAttr.getX(i)\n const py = posAttr.getY(i)\n const pz = posAttr.getZ(i)\n const fnUx = faceNrmUnit[i * 3],\n fnUy = faceNrmUnit[i * 3 + 1],\n fnUz = faceNrmUnit[i * 3 + 2]\n const fnRx = faceNrmRaw[i * 3],\n fnRy = faceNrmRaw[i * 3 + 1],\n fnRz = faceNrmRaw[i * 3 + 2]\n\n // 第一个到达此位置的顶点成为 canonical ID\n const canonId = posCanonMap.getOrSet(px, py, pz, verts.count)\n const clusters = posCanonMap.inserted ? undefined : clustersByCanon.get(canonId)\n\n if (clusters) {\n let matched = false\n for (const cl of clusters) {\n const dot = cl.fnU[0] * fnUx + cl.fnU[1] * fnUy + cl.fnU[2] * fnUz\n if (dot >= SHARP_COS) {\n // 同一 smooth group — 累加面积加权法线\n const idx = cl.idx\n verts.nrm[idx * 3] += fnRx\n verts.nrm[idx * 3 + 1] += fnRy\n verts.nrm[idx * 3 + 2] += fnRz\n if (verts.wgt && nonIndexedWeights && nonIndexedWeights[i] > verts.wgt[idx]) {\n verts.wgt[idx] = nonIndexedWeights[i]\n }\n // 更新 cluster 代表法线为运行平均值\n cl.fnU[0] += fnUx\n cl.fnU[1] += fnUy\n cl.fnU[2] += fnUz\n const rl =\n Math.sqrt(cl.fnU[0] * cl.fnU[0] + cl.fnU[1] * cl.fnU[1] + cl.fnU[2] * cl.fnU[2]) || 1\n cl.fnU[0] /= rl\n cl.fnU[1] /= rl\n cl.fnU[2] /= rl\n indices[i] = idx\n matched = true\n break\n }\n }\n if (!matched) {\n // 此位置的新 cluster(锐边分裂)\n const idx = verts.count\n if (idx === verts.cap) verts.grow()\n verts.pos[idx * 3] = px\n verts.pos[idx * 3 + 1] = py\n verts.pos[idx * 3 + 2] = pz\n verts.nrm[idx * 3] = fnRx\n verts.nrm[idx * 3 + 1] = fnRy\n verts.nrm[idx * 3 + 2] = fnRz\n if (verts.wgt && nonIndexedWeights) verts.wgt[idx] = nonIndexedWeights[i]\n if (verts.canon) verts.canon[idx] = canonId\n verts.count++\n clusters.push({ idx, fnU: [fnUx, fnUy, fnUz] })\n indices[i] = idx\n }\n } else {\n // 此位置的第一个顶点\n const idx = verts.count // === canonId\n if (idx === verts.cap) verts.grow()\n verts.pos[idx * 3] = px\n verts.pos[idx * 3 + 1] = py\n verts.pos[idx * 3 + 2] = pz\n verts.nrm[idx * 3] = fnRx\n verts.nrm[idx * 3 + 1] = fnRy\n verts.nrm[idx * 3 + 2] = fnRz\n if (verts.wgt && nonIndexedWeights) verts.wgt[idx] = nonIndexedWeights[i]\n if (verts.canon) verts.canon[idx] = canonId\n verts.count++\n clustersByCanon.set(canonId, [{ idx, fnU: [fnUx, fnUy, fnUz] }])\n indices[i] = idx\n }\n }\n\n normalizeStoreNormals(verts)\n return { verts, indices, posCanonMap }\n}\n\nfunction normalizeStoreNormals(verts: VertStore): void {\n const nrm = verts.nrm\n for (let i = 0; i < verts.count; i++) {\n const nx = nrm[i * 3]\n const ny = nrm[i * 3 + 1]\n const nz = nrm[i * 3 + 2]\n const len = Math.sqrt(nx * nx + ny * ny + nz * nz) || 1\n nrm[i * 3] = nx / len\n nrm[i * 3 + 1] = ny / len\n nrm[i * 3 + 2] = nz / len\n }\n}\n\n// ── Indexed → non-indexed ──\n\nfunction toNonIndexed(\n verts: VertStore,\n indices: Uint32Array,\n faceExcluded: Uint8Array | null = null,\n): THREE.BufferGeometry {\n const positions = verts.pos,\n normals = verts.nrm,\n weights = verts.wgt\n const triCount = indices.length / 3\n const posArray = new Float32Array(triCount * 9)\n const nrmArray = new Float32Array(triCount * 9)\n const wgtArray = faceExcluded || weights ? new Float32Array(triCount * 3) : null\n\n for (let t = 0; t < triCount; t++) {\n const faceW = faceExcluded ? (faceExcluded[t] ? 1.0 : 0.0) : null\n for (let v = 0; v < 3; v++) {\n const vidx = indices[t * 3 + v]\n posArray[t * 9 + v * 3] = positions[vidx * 3]\n posArray[t * 9 + v * 3 + 1] = positions[vidx * 3 + 1]\n posArray[t * 9 + v * 3 + 2] = positions[vidx * 3 + 2]\n\n nrmArray[t * 9 + v * 3] = normals[vidx * 3]\n nrmArray[t * 9 + v * 3 + 1] = normals[vidx * 3 + 1]\n nrmArray[t * 9 + v * 3 + 2] = normals[vidx * 3 + 2]\n\n if (wgtArray) wgtArray[t * 3 + v] = faceW !== null ? faceW : weights![vidx]\n }\n }\n\n const geo = new THREE.BufferGeometry()\n geo.setAttribute('position', new THREE.BufferAttribute(posArray, 3))\n geo.setAttribute('normal', new THREE.BufferAttribute(nrmArray, 3))\n if (wgtArray) geo.setAttribute('excludeWeight', new THREE.BufferAttribute(wgtArray, 1))\n return geo\n}\n"]}
1
+ {"version":3,"file":"subdivision.js","sourceRoot":"","sources":["../../../src/mesh/knurl/subdivision.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * subdivision.ts — 自适应边细分,从 stlTexturizer/js/subdivision.js 移植为 TS。\n *\n * 细分直到每条边 ≤ maxEdgeLength。\n *\n * 关键特性:\n * - toIndexed (export path): 锐边分裂 — 同位置但法线夹角 > 30° 的顶点分开存储\n * - 确保水密性\n *\n * 管线:\n * toIndexed(geometry) → 索引化 + 顶点去重 + 锐边分裂\n * 循环细分:标记长边 → 按标记数量分裂三角形\n * toNonIndexed(verts, indices) → 输出 non-indexed BufferGeometry\n *\n * Bug 修复记录 (2026-07-22):\n * 问题: 检测到 knurl 后的 mesh 出现 NaN 值和错误 bounds\n * (bounds 从 [-0.5, 0.5] 变成 [-17, 17],且 hasNaN: true)\n *\n * 根因分析:\n * 1. box_boss.3mf 是 indexed geometry (530 vertices, 1548 indices)\n * 2. toIndexed() 函数假设输入是 non-indexed (flat triangles)\n * 3. 当传入 indexed geometry 时,toIndexed() 错误处理顶点数据:\n * - n = posAttr.count = 530 (顶点数)\n * - 但代码按 triangle count = n/3 = 176 处理\n * - 导致顶点索引越界,读取错误位置的数据\n * 4. 细分后顶点位置完全错误,进而导致 displacement 计算产生 NaN\n *\n * 修复方案:\n * 在 subdivide() 入口添加 indexed → non-indexed 转换:\n * if (geometry.index) { workingGeo = geometry.toNonIndexed() }\n *\n * 验证:\n * - E2E 测试通过:hasNaN: false, bounds 正确\n * - 原始 bounds [0,0,0]~[150,120,90] → knurl 后 [-0.5,-0.5,0]~[150.5,120.5,90.5]\n */\n\nimport type { Shape } from '../types'\nimport { toNonIndexed as shapeToNonIndexed } from '../meshdata/ops'\nimport { QuantizedPointMap } from './meshIndex'\n\n// 10μm 顶点去重网格\nconst QUANTISE = 1e5\n// 安全上限\nconst SAFETY_CAP =\n typeof navigator !== 'undefined' &&\n (navigator as Navigator & { deviceMemory?: number }).deviceMemory !== undefined &&\n (navigator as Navigator & { deviceMemory?: number }).deviceMemory! >= 8\n ? 32_000_000\n : 16_000_000\n\n// 锐边角度阈值(度)— 法线夹角超过此值的顶点在索引化时分裂\nconst SHARP_ANGLE_DEG = 30\nconst SHARP_COS = Math.cos(SHARP_ANGLE_DEG * Math.PI / 180)\n\n// ── 可增长类型化顶点存储 ──\n\ninterface VertStore {\n cap: number\n count: number\n pos: Float64Array\n nrm: Float64Array\n wgt: Float64Array | null\n canon: Int32Array | null // 规范位置 ID(准确模式)\n grow(): void\n}\n\nfunction makeVertStore(initialCap: number, hasWeights: boolean, hasCanon: boolean): VertStore {\n return {\n cap: initialCap,\n count: 0,\n pos: new Float64Array(initialCap * 3),\n nrm: new Float64Array(initialCap * 3),\n wgt: hasWeights ? new Float64Array(initialCap) : null,\n canon: hasCanon ? new Int32Array(initialCap) : null,\n grow() {\n this.cap *= 2\n const np = new Float64Array(this.cap * 3)\n np.set(this.pos)\n this.pos = np\n const nn = new Float64Array(this.cap * 3)\n nn.set(this.nrm)\n this.nrm = nn\n if (this.wgt) {\n const nw = new Float64Array(this.cap)\n nw.set(this.wgt)\n this.wgt = nw\n }\n if (this.canon) {\n const nc = new Int32Array(this.cap)\n nc.set(this.canon)\n this.canon = nc\n }\n },\n }\n}\n\n// ── 公共入口 ──\n\n/**\n * Adaptively subdivide a geometry until every edge is ≤ maxEdgeLength.\n * Indexed inputs are expanded to non-indexed form first; sharp edges are\n * split at vertices whose face-normal angle exceeds the threshold so each\n * surface keeps its own normal direction and the result stays watertight.\n * Faces marked by `faceWeights` are excluded from refinement.\n *\n * @param geometry - the source geometry (position attribute; may be indexed).\n * @param maxEdgeLength - maximum allowed edge length in millimeters.\n * @param onProgress - optional callback receiving progress, triangle count, and longest edge.\n * @param faceWeights - optional per-face exclusion weights (non-indexed triangle soup layout).\n * @returns the subdivided non-indexed geometry and whether the safety cap was reached.\n */\nexport async function subdivide(\n geometry: Shape,\n maxEdgeLength: number,\n onProgress?: (p: number, triCount: number, longestEdge: number) => void,\n faceWeights: Float32Array | null = null,\n): Promise<{\n geometry: Shape\n safetyCapHit: boolean\n}> {\n // 确保 geometry 是 non-indexed(toIndexed 假设输入是 flat 的)\n let workingGeo: Shape = geometry\n if (geometry.indices.length > 0) {\n const ni = shapeToNonIndexed(geometry)\n workingGeo = { positions: ni.positions, indices: ni.indices }\n }\n\n // 在 toIndexed 之前推导每面排除标记\n let initialFaceExcluded: Uint8Array | null = null\n if (faceWeights) {\n const triCount = faceWeights.length / 3\n initialFaceExcluded = new Uint8Array(triCount)\n for (let i = 0; i < triCount; i++) {\n if (faceWeights[i * 3] > 0.99) initialFaceExcluded[i] = 1\n }\n }\n\n // 使用准确模式(带锐边分裂的 toIndexed)\n const { verts, indices, posCanonMap } = toIndexed(workingGeo, faceWeights)\n\n const maxIterations = 12\n let currentIndices = indices\n let currentFaceExcluded = initialFaceExcluded\n let safetyCapHit = false\n\n for (let iter = 0; iter < maxIterations; iter++) {\n const triCount = currentIndices.length / 3\n if (triCount >= SAFETY_CAP) {\n safetyCapHit = true\n break\n }\n\n const { newIndices, newFaceExcluded, changed, capped } = subdividePass(\n verts,\n currentIndices,\n maxEdgeLength,\n SAFETY_CAP,\n currentFaceExcluded,\n posCanonMap,\n )\n currentIndices = newIndices\n if (newFaceExcluded) currentFaceExcluded = newFaceExcluded\n\n if (capped || newIndices.length / 3 >= SAFETY_CAP) safetyCapHit = true\n\n const positions = verts.pos\n let maxEdgeLenSq = 0\n for (let t = 0; t < currentIndices.length; t += 3) {\n const a = currentIndices[t],\n b = currentIndices[t + 1],\n c = currentIndices[t + 2]\n const ab = edgeLenSq(positions, a, b)\n const bc = edgeLenSq(positions, b, c)\n const ca = edgeLenSq(positions, c, a)\n if (ab > maxEdgeLenSq) maxEdgeLenSq = ab\n if (bc > maxEdgeLenSq) maxEdgeLenSq = bc\n if (ca > maxEdgeLenSq) maxEdgeLenSq = ca\n }\n const longestEdge = Math.sqrt(maxEdgeLenSq)\n\n const newTriCount = newIndices.length / 3\n if (onProgress) onProgress(Math.min(0.95, (iter + 1) / maxIterations), newTriCount, longestEdge)\n await new Promise((r) => setTimeout(r, 0))\n if (!changed || safetyCapHit) break\n }\n\n return {\n geometry: toNonIndexed(verts, currentIndices, currentFaceExcluded),\n safetyCapHit,\n }\n}\n\n// ── 一次细分 pass ──\n\nfunction subdividePass(\n verts: VertStore,\n indices: Uint32Array,\n maxEdgeLength: number,\n safetyCap: number,\n faceExcluded: Uint8Array | null = null,\n posCanonMap: QuantizedPointMap | null = null,\n): {\n newIndices: Uint32Array\n newFaceExcluded: Uint8Array | null\n changed: boolean\n capped?: boolean\n} {\n const maxSq = maxEdgeLength * maxEdgeLength\n const midCache = new QuantizedPointMap(1, 1 << 16)\n const positions = verts.pos\n const canonIdx = verts.canon\n\n const splitEdges = new QuantizedPointMap(1, 1 << 16)\n const markEdge = (a: number, b: number) => {\n const u = canonIdx ? canonIdx[a] : a,\n v = canonIdx ? canonIdx[b] : b\n if (u < v) splitEdges.getOrSet(u, v, 0, 1)\n else splitEdges.getOrSet(v, u, 0, 1)\n }\n const isMarked = (a: number, b: number) => {\n const u = canonIdx ? canonIdx[a] : a,\n v = canonIdx ? canonIdx[b] : b\n return (u < v ? splitEdges.get(u, v, 0) : splitEdges.get(v, u, 0)) !== -1\n }\n\n // Step 1: 标记需要分裂的边\n for (let t = 0; t < indices.length; t += 3) {\n if (faceExcluded && faceExcluded[t / 3]) continue\n const a = indices[t],\n b = indices[t + 1],\n c = indices[t + 2]\n if (edgeLenSq(positions, a, b) > maxSq) markEdge(a, b)\n if (edgeLenSq(positions, b, c) > maxSq) markEdge(b, c)\n if (edgeLenSq(positions, c, a) > maxSq) markEdge(c, a)\n }\n\n if (splitEdges.size === 0)\n return { newIndices: indices, newFaceExcluded: faceExcluded, changed: false }\n\n // Step 1.5: 预测分裂后三角形数量\n let predictedTris = 0\n for (let t = 0; t < indices.length; t += 3) {\n const a = indices[t],\n b = indices[t + 1],\n c = indices[t + 2]\n const sAB = isMarked(a, b)\n const sBC = isMarked(b, c)\n const sCA = isMarked(c, a)\n const n = (sAB ? 1 : 0) + (sBC ? 1 : 0) + (sCA ? 1 : 0)\n predictedTris += n === 0 ? 1 : n + 1\n }\n if (predictedTris > safetyCap) {\n return { newIndices: indices, newFaceExcluded: faceExcluded, changed: false, capped: true }\n }\n\n // Step 2: 重建索引列表\n const nextIndices = new Uint32Array(predictedTris * 3)\n const nextFaceExcluded = faceExcluded ? new Uint8Array(predictedTris) : null\n let wi = 0\n let fi = 0\n\n for (let t = 0; t < indices.length; t += 3) {\n const a = indices[t],\n b = indices[t + 1],\n c = indices[t + 2]\n const fIdx = t / 3\n const excl = faceExcluded ? faceExcluded[fIdx] : 0\n const sAB = isMarked(a, b)\n const sBC = isMarked(b, c)\n const sCA = isMarked(c, a)\n const n = (sAB ? 1 : 0) + (sBC ? 1 : 0) + (sCA ? 1 : 0)\n\n if (n === 0) {\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n } else if (n === 3) {\n const mAB = getMidpoint(verts, midCache, a, b, posCanonMap)\n const mBC = getMidpoint(verts, midCache, b, c, posCanonMap)\n const mCA = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mAB\n nextIndices[wi++] = b\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mBC\n nextIndices[wi++] = c\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mCA\n for (let k = 0; k < 4; k++) {\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n }\n } else if (n === 1) {\n if (sAB) {\n const m = getMidpoint(verts, midCache, a, b, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = m\n nextIndices[wi++] = c\n nextIndices[wi++] = m\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n } else if (sBC) {\n const m = getMidpoint(verts, midCache, b, c, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = m\n nextIndices[wi++] = a\n nextIndices[wi++] = m\n nextIndices[wi++] = c\n } else {\n const m = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = m\n nextIndices[wi++] = m\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n }\n for (let k = 0; k < 2; k++) {\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n }\n } else {\n // n === 2: 3 sub-triangles, fan from the untouched-edge vertex\n if (!sAB) {\n // sBC + sCA: fan from C\n const mBC = getMidpoint(verts, midCache, b, c, posCanonMap)\n const mCA = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = b\n nextIndices[wi++] = mBC\n nextIndices[wi++] = a\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mCA\n nextIndices[wi++] = c\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mBC\n } else if (!sBC) {\n // sAB + sCA: fan from A\n const mAB = getMidpoint(verts, midCache, a, b, posCanonMap)\n const mCA = getMidpoint(verts, midCache, c, a, posCanonMap)\n nextIndices[wi++] = a\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mCA\n nextIndices[wi++] = mAB\n nextIndices[wi++] = b\n nextIndices[wi++] = c\n nextIndices[wi++] = mAB\n nextIndices[wi++] = c\n nextIndices[wi++] = mCA\n } else {\n // sAB + sBC: fan from B\n const mAB = getMidpoint(verts, midCache, a, b, posCanonMap)\n const mBC = getMidpoint(verts, midCache, b, c, posCanonMap)\n nextIndices[wi++] = b\n nextIndices[wi++] = mBC\n nextIndices[wi++] = mAB\n nextIndices[wi++] = a\n nextIndices[wi++] = mAB\n nextIndices[wi++] = mBC\n nextIndices[wi++] = a\n nextIndices[wi++] = mBC\n nextIndices[wi++] = c\n }\n for (let k = 0; k < 3; k++) {\n if (nextFaceExcluded) nextFaceExcluded[fi] = excl\n fi++\n }\n }\n }\n\n return { newIndices: nextIndices, newFaceExcluded: nextFaceExcluded, changed: true }\n}\n\n// ── 辅助函数 ──\n\nfunction edgeLenSq(pos: Float64Array, a: number, b: number): number {\n const dx = pos[a * 3] - pos[b * 3]\n const dy = pos[a * 3 + 1] - pos[b * 3 + 1]\n const dz = pos[a * 3 + 2] - pos[b * 3 + 2]\n return dx * dx + dy * dy + dz * dz\n}\n\nfunction getMidpoint(\n verts: VertStore,\n cache: QuantizedPointMap,\n a: number,\n b: number,\n posCanonMap: QuantizedPointMap | null,\n): number {\n const lo = a < b ? a : b,\n hi = a < b ? b : a\n const cached = cache.get(lo, hi, 0)\n if (cached !== -1) return cached\n\n const pos = verts.pos,\n nrm = verts.nrm\n\n const mx = (pos[a * 3] + pos[b * 3]) / 2\n const my = (pos[a * 3 + 1] + pos[b * 3 + 1]) / 2\n const mz = (pos[a * 3 + 2] + pos[b * 3 + 2]) / 2\n\n const nx = nrm[a * 3] + nrm[b * 3]\n const ny = nrm[a * 3 + 1] + nrm[b * 3 + 1]\n const nz = nrm[a * 3 + 2] + nrm[b * 3 + 2]\n const nl = Math.sqrt(nx * nx + ny * ny + nz * nz) || 1\n\n const idx = verts.count\n if (idx === verts.cap) verts.grow()\n verts.pos[idx * 3] = mx\n verts.pos[idx * 3 + 1] = my\n verts.pos[idx * 3 + 2] = mz\n verts.nrm[idx * 3] = nx / nl\n verts.nrm[idx * 3 + 1] = ny / nl\n verts.nrm[idx * 3 + 2] = nz / nl\n if (verts.wgt) verts.wgt[idx] = (verts.wgt[a] + verts.wgt[b]) / 2\n // 维护规范位置 ID\n if (verts.canon && posCanonMap) {\n verts.canon[idx] = posCanonMap.getOrSet(mx, my, mz, idx)\n }\n verts.count = idx + 1\n\n cache.getOrSet(lo, hi, 0, idx)\n return idx\n}\n\n// ── 准确模式:非 indexed → indexed(带锐边分裂) ──\n//\n// 关键:同一位置但法线夹角 > SHARP_ANGLE_DEG 的顶点会被分裂成不同的 indexed vertex。\n// 这确保立方体的每个面保持独立的法线方向,位移后不会产生破面。\n\ninterface ClusterInfo {\n idx: number\n fnU: [number, number, number] // 面法线单位向量(运行平均值)\n}\n\nfunction toIndexed(\n geometry: Shape,\n nonIndexedWeights: Float32Array | null = null,\n): { verts: VertStore; indices: Uint32Array; posCanonMap: QuantizedPointMap } {\n const positions = geometry.positions\n const n = positions.length / 3\n\n // 预计算每个面的法线(单位 + 原始叉积)\n const faceNrmUnit = new Float32Array(n * 3)\n const faceNrmRaw = new Float32Array(n * 3)\n for (let t = 0; t < n; t += 3) {\n const ax = positions[t * 3],\n ay = positions[t * 3 + 1],\n az = positions[t * 3 + 2]\n const bx = positions[(t + 1) * 3],\n by = positions[(t + 1) * 3 + 1],\n bz = positions[(t + 1) * 3 + 2]\n const cx = positions[(t + 2) * 3],\n cy = positions[(t + 2) * 3 + 1],\n cz = positions[(t + 2) * 3 + 2]\n const e1x = bx - ax,\n e1y = by - ay,\n e1z = bz - az\n const e2x = cx - ax,\n e2y = cy - ay,\n e2z = cz - az\n const rx = e1y * e2z - e1z * e2y\n const ry = e1z * e2x - e1x * e2z\n const rz = e1x * e2y - e1y * e2x\n const len = Math.sqrt(rx * rx + ry * ry + rz * rz) || 1\n const ux = rx / len,\n uy = ry / len,\n uz = rz / len\n for (let v = 0; v < 3; v++) {\n faceNrmUnit[(t + v) * 3] = ux\n faceNrmUnit[(t + v) * 3 + 1] = uy\n faceNrmUnit[(t + v) * 3 + 2] = uz\n faceNrmRaw[(t + v) * 3] = rx\n faceNrmRaw[(t + v) * 3 + 1] = ry\n faceNrmRaw[(t + v) * 3 + 2] = rz\n }\n }\n\n const indices = new Uint32Array(n)\n const verts = makeVertStore(Math.max(16, Math.min(1 << 16, n)), !!nonIndexedWeights, true)\n // position → first vertex idx at that position (canonical ID)\n const posCanonMap = new QuantizedPointMap(QUANTISE, Math.min(n, 1 << 22))\n // canonical ID → cluster list at that position\n const clustersByCanon = new Map<number, ClusterInfo[]>()\n\n for (let i = 0; i < n; i++) {\n const px = positions[i * 3]\n const py = positions[i * 3 + 1]\n const pz = positions[i * 3 + 2]\n const fnUx = faceNrmUnit[i * 3],\n fnUy = faceNrmUnit[i * 3 + 1],\n fnUz = faceNrmUnit[i * 3 + 2]\n const fnRx = faceNrmRaw[i * 3],\n fnRy = faceNrmRaw[i * 3 + 1],\n fnRz = faceNrmRaw[i * 3 + 2]\n\n // 第一个到达此位置的顶点成为 canonical ID\n const canonId = posCanonMap.getOrSet(px, py, pz, verts.count)\n const clusters = posCanonMap.inserted ? undefined : clustersByCanon.get(canonId)\n\n if (clusters) {\n let matched = false\n for (const cl of clusters) {\n const dot = cl.fnU[0] * fnUx + cl.fnU[1] * fnUy + cl.fnU[2] * fnUz\n if (dot >= SHARP_COS) {\n // 同一 smooth group — 累加面积加权法线\n const idx = cl.idx\n verts.nrm[idx * 3] += fnRx\n verts.nrm[idx * 3 + 1] += fnRy\n verts.nrm[idx * 3 + 2] += fnRz\n if (verts.wgt && nonIndexedWeights && nonIndexedWeights[i] > verts.wgt[idx]) {\n verts.wgt[idx] = nonIndexedWeights[i]\n }\n // 更新 cluster 代表法线为运行平均值\n cl.fnU[0] += fnUx\n cl.fnU[1] += fnUy\n cl.fnU[2] += fnUz\n const rl =\n Math.sqrt(cl.fnU[0] * cl.fnU[0] + cl.fnU[1] * cl.fnU[1] + cl.fnU[2] * cl.fnU[2]) || 1\n cl.fnU[0] /= rl\n cl.fnU[1] /= rl\n cl.fnU[2] /= rl\n indices[i] = idx\n matched = true\n break\n }\n }\n if (!matched) {\n // 此位置的新 cluster(锐边分裂)\n const idx = verts.count\n if (idx === verts.cap) verts.grow()\n verts.pos[idx * 3] = px\n verts.pos[idx * 3 + 1] = py\n verts.pos[idx * 3 + 2] = pz\n verts.nrm[idx * 3] = fnRx\n verts.nrm[idx * 3 + 1] = fnRy\n verts.nrm[idx * 3 + 2] = fnRz\n if (verts.wgt && nonIndexedWeights) verts.wgt[idx] = nonIndexedWeights[i]\n if (verts.canon) verts.canon[idx] = canonId\n verts.count++\n clusters.push({ idx, fnU: [fnUx, fnUy, fnUz] })\n indices[i] = idx\n }\n } else {\n // 此位置的第一个顶点\n const idx = verts.count // === canonId\n if (idx === verts.cap) verts.grow()\n verts.pos[idx * 3] = px\n verts.pos[idx * 3 + 1] = py\n verts.pos[idx * 3 + 2] = pz\n verts.nrm[idx * 3] = fnRx\n verts.nrm[idx * 3 + 1] = fnRy\n verts.nrm[idx * 3 + 2] = fnRz\n if (verts.wgt && nonIndexedWeights) verts.wgt[idx] = nonIndexedWeights[i]\n if (verts.canon) verts.canon[idx] = canonId\n verts.count++\n clustersByCanon.set(canonId, [{ idx, fnU: [fnUx, fnUy, fnUz] }])\n indices[i] = idx\n }\n }\n\n normalizeStoreNormals(verts)\n return { verts, indices, posCanonMap }\n}\n\nfunction normalizeStoreNormals(verts: VertStore): void {\n const nrm = verts.nrm\n for (let i = 0; i < verts.count; i++) {\n const nx = nrm[i * 3]\n const ny = nrm[i * 3 + 1]\n const nz = nrm[i * 3 + 2]\n const len = Math.sqrt(nx * nx + ny * ny + nz * nz) || 1\n nrm[i * 3] = nx / len\n nrm[i * 3 + 1] = ny / len\n nrm[i * 3 + 2] = nz / len\n }\n}\n\n// ── Indexed → non-indexed ──\n\nfunction toNonIndexed(\n verts: VertStore,\n indices: Uint32Array,\n faceExcluded: Uint8Array | null = null,\n): Shape {\n const positions = verts.pos,\n normals = verts.nrm,\n weights = verts.wgt\n const triCount = indices.length / 3\n const posArray = new Float32Array(triCount * 9)\n const nrmArray = new Float32Array(triCount * 9)\n const wgtArray = faceExcluded || weights ? new Float32Array(triCount * 3) : null\n\n for (let t = 0; t < triCount; t++) {\n const faceW = faceExcluded ? (faceExcluded[t] ? 1.0 : 0.0) : null\n for (let v = 0; v < 3; v++) {\n const vidx = indices[t * 3 + v]\n posArray[t * 9 + v * 3] = positions[vidx * 3]\n posArray[t * 9 + v * 3 + 1] = positions[vidx * 3 + 1]\n posArray[t * 9 + v * 3 + 2] = positions[vidx * 3 + 2]\n\n nrmArray[t * 9 + v * 3] = normals[vidx * 3]\n nrmArray[t * 9 + v * 3 + 1] = normals[vidx * 3 + 1]\n nrmArray[t * 9 + v * 3 + 2] = normals[vidx * 3 + 2]\n\n if (wgtArray) wgtArray[t * 3 + v] = faceW !== null ? faceW : weights![vidx]\n }\n }\n\n const seqIndices = new Uint32Array(triCount * 3)\n for (let i = 0; i < seqIndices.length; i++) seqIndices[i] = i\n const geo: Shape = {\n positions: posArray,\n indices: seqIndices,\n normals: nrmArray,\n }\n if (wgtArray) (geo as Shape & { excludeWeight?: Float32Array }).excludeWeight = wgtArray\n return geo\n}\n"]}
@@ -9,7 +9,7 @@
9
9
  * 在整个浏览器页面中,滚花纹理只应加载一次。
10
10
  * 多个 CadRuntime 实例共享同一个纹理加载器是正确的行为。
11
11
  */
12
- import * as THREE from 'three';
12
+ import type { Box3 } from '../../math3d/index.js';
13
13
  /**
14
14
  * Raw RGBA pixel data plus the pixel dimensions of a loaded texture.
15
15
  */
@@ -33,6 +33,6 @@ export declare function setKnurlTextureLoader(loader: (() => Promise<TextureData
33
33
  export declare function loadKnurlingTexture(): Promise<TextureData | null>;
34
34
  /** Dispose the knurl preview material; a no-op in the headless engine. */
35
35
  export declare function disposeKnurlPreviewMaterial(): void;
36
- /** Bounds type shared with the knurl preview path (a THREE.Box3). */
37
- export type KnurlPreviewBounds = THREE.Box3;
36
+ /** Bounds type shared with the knurl preview path (a math3d Box3). */
37
+ export type KnurlPreviewBounds = Box3;
38
38
  //# sourceMappingURL=textureLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textureLoader.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/textureLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAE9F;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAOvE;AAED,0EAA0E;AAC1E,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"textureLoader.d.ts","sourceRoot":"","sources":["../../../src/mesh/knurl/textureLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAE9F;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAOvE;AAED,0EAA0E;AAC1E,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,sEAAsE;AACtE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"textureLoader.js","sourceRoot":"","sources":["../../../src/mesh/knurl/textureLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,8BAA8B;AAC9B,IAAI,sBAAsB,GAA+C,IAAI,CAAA;AAE7E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkD;IACtF,sBAAsB,GAAG,MAAM,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,sBAAsB,EAAE,CAAA;IACjC,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,2BAA2B;IACzC,oBAAoB;AACtB,CAAC","sourcesContent":["/**\n * textureLoader — 滚花纹理加载器\n *\n * 浏览器环境:由 host 通过 setKnurlTextureLoader() 注入纹理加载器。\n * Node 环境:返回 null(由 TextureSampler port 提供纹理)。\n *\n * F5 设计意图说明:\n * _textureLoaderOverride 是环境级单例,不是实例级。\n * 在整个浏览器页面中,滚花纹理只应加载一次。\n * 多个 CadRuntime 实例共享同一个纹理加载器是正确的行为。\n */\n\nimport * as THREE from 'three'\n\n/**\n * Raw RGBA pixel data plus the pixel dimensions of a loaded texture.\n */\nexport interface TextureData {\n data: Uint8ClampedArray\n width: number\n height: number\n}\n\n/** 纹理加载器覆盖函数(由浏览器 host 注入) */\nlet _textureLoaderOverride: (() => Promise<TextureData | null>) | null = null\n\n/**\n * Set the knurling texture loader (injected by the browser host at startup).\n *\n * @param loader - the loader to use, or null to clear the override.\n */\nexport function setKnurlTextureLoader(loader: (() => Promise<TextureData | null>) | null): void {\n _textureLoaderOverride = loader\n}\n\n/**\n * Load the knurling texture. Uses the injected host loader when present;\n * otherwise returns null (the texture is supplied through the port).\n *\n * @returns the texture data, or null when no loader is available.\n */\nexport async function loadKnurlingTexture(): Promise<TextureData | null> {\n if (_textureLoaderOverride) {\n return _textureLoaderOverride()\n }\n // In the faijs engine the texture is provided through the TextureSampler\n // port; this function only serves as a fallback when no override is set.\n return null\n}\n\n/** Dispose the knurl preview material; a no-op in the headless engine. */\nexport function disposeKnurlPreviewMaterial(): void {\n // no-op in headless\n}\n\n/** Bounds type shared with the knurl preview path (a THREE.Box3). */\nexport type KnurlPreviewBounds = THREE.Box3\n"]}
1
+ {"version":3,"file":"textureLoader.js","sourceRoot":"","sources":["../../../src/mesh/knurl/textureLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,8BAA8B;AAC9B,IAAI,sBAAsB,GAA+C,IAAI,CAAA;AAE7E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkD;IACtF,sBAAsB,GAAG,MAAM,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,sBAAsB,EAAE,CAAA;IACjC,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,2BAA2B;IACzC,oBAAoB;AACtB,CAAC","sourcesContent":["/**\n * textureLoader — 滚花纹理加载器\n *\n * 浏览器环境:由 host 通过 setKnurlTextureLoader() 注入纹理加载器。\n * Node 环境:返回 null(由 TextureSampler port 提供纹理)。\n *\n * F5 设计意图说明:\n * _textureLoaderOverride 是环境级单例,不是实例级。\n * 在整个浏览器页面中,滚花纹理只应加载一次。\n * 多个 CadRuntime 实例共享同一个纹理加载器是正确的行为。\n */\n\nimport type { Box3 } from '../../math3d'\n\n/**\n * Raw RGBA pixel data plus the pixel dimensions of a loaded texture.\n */\nexport interface TextureData {\n data: Uint8ClampedArray\n width: number\n height: number\n}\n\n/** 纹理加载器覆盖函数(由浏览器 host 注入) */\nlet _textureLoaderOverride: (() => Promise<TextureData | null>) | null = null\n\n/**\n * Set the knurling texture loader (injected by the browser host at startup).\n *\n * @param loader - the loader to use, or null to clear the override.\n */\nexport function setKnurlTextureLoader(loader: (() => Promise<TextureData | null>) | null): void {\n _textureLoaderOverride = loader\n}\n\n/**\n * Load the knurling texture. Uses the injected host loader when present;\n * otherwise returns null (the texture is supplied through the port).\n *\n * @returns the texture data, or null when no loader is available.\n */\nexport async function loadKnurlingTexture(): Promise<TextureData | null> {\n if (_textureLoaderOverride) {\n return _textureLoaderOverride()\n }\n // In the faijs engine the texture is provided through the TextureSampler\n // port; this function only serves as a fallback when no override is set.\n return null\n}\n\n/** Dispose the knurl preview material; a no-op in the headless engine. */\nexport function disposeKnurlPreviewMaterial(): void {\n // no-op in headless\n}\n\n/** Bounds type shared with the knurl preview path (a math3d Box3). */\nexport type KnurlPreviewBounds = Box3\n"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * meshdata — core 自有的 mesh 容器与参数化几何(three `BufferGeometry` 与
3
+ * `Box/Cylinder/Cone/SphereGeometry` 的替代)。
4
+ *
5
+ * 纯函数集作用于对外类型 `Shape`(不挂方法);参数化几何逐位复刻 three r162
6
+ * 的顶点/索引顺序以保 `faceRanges` 面序契约(MIT License, © 2010-2024 three.js
7
+ * authors)。与既有 `mesh/query.ts`(boundingBox/volume 等查询)职责不重叠。
8
+ */
9
+ export { weldMesh, type MeshData } from './weld.js';
10
+ export { boxGeometry, cylinderGeometry, coneGeometry, sphereGeometry, type GeoData, } from './parametric.js';
11
+ export { shapeFromMesh, toNonIndexed, transformShape, translateShape, computeVertexNormals, mergeShapes, type MatrixLike, } from './ops.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mesh/meshdata/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,KAAK,OAAO,GACb,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,KAAK,UAAU,GAChB,MAAM,OAAO,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * meshdata — core 自有的 mesh 容器与参数化几何(three `BufferGeometry` 与
3
+ * `Box/Cylinder/Cone/SphereGeometry` 的替代)。
4
+ *
5
+ * 纯函数集作用于对外类型 `Shape`(不挂方法);参数化几何逐位复刻 three r162
6
+ * 的顶点/索引顺序以保 `faceRanges` 面序契约(MIT License, © 2010-2024 three.js
7
+ * authors)。与既有 `mesh/query.ts`(boundingBox/volume 等查询)职责不重叠。
8
+ */
9
+ export { weldMesh } from './weld.js';
10
+ export { boxGeometry, cylinderGeometry, coneGeometry, sphereGeometry, } from './parametric.js';
11
+ export { shapeFromMesh, toNonIndexed, transformShape, translateShape, computeVertexNormals, mergeShapes, } from './ops.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mesh/meshdata/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAiB,MAAM,QAAQ,CAAA;AAChD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,cAAc,GAEf,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,GAEZ,MAAM,OAAO,CAAA","sourcesContent":["/**\r\n * meshdata — core 自有的 mesh 容器与参数化几何(three `BufferGeometry` 与\r\n * `Box/Cylinder/Cone/SphereGeometry` 的替代)。\r\n *\r\n * 纯函数集作用于对外类型 `Shape`(不挂方法);参数化几何逐位复刻 three r162\r\n * 的顶点/索引顺序以保 `faceRanges` 面序契约(MIT License, © 2010-2024 three.js\r\n * authors)。与既有 `mesh/query.ts`(boundingBox/volume 等查询)职责不重叠。\r\n */\r\n\r\nexport { weldMesh, type MeshData } from './weld'\r\nexport {\r\n boxGeometry,\r\n cylinderGeometry,\r\n coneGeometry,\r\n sphereGeometry,\r\n type GeoData,\r\n} from './parametric'\r\nexport {\r\n shapeFromMesh,\r\n toNonIndexed,\r\n transformShape,\r\n translateShape,\r\n computeVertexNormals,\r\n mergeShapes,\r\n type MatrixLike,\r\n} from './ops'"]}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * meshdata/ops — 作用在 Shape / 原始数组上的纯函数几何操作(L1 容器操作)。
3
+ *
4
+ * 替代 three `BufferGeometry` 的少量方法面(`toNonIndexed`、`computeVertexNormals`、
5
+ * `applyMatrix4`/`translate`、`clone`、merge)——**纯函数集,不给对外 `Shape` 挂方法**
6
+ * (与设计 §3.3 一致)。不重复 `mesh/query.ts` 已有的 `boundingBox`/`volume` 等查询。
7
+ */
8
+ import { type MatrixLike } from '../../math3d/index.js';
9
+ import type { Shape } from '../types.js';
10
+ import { type MeshData } from './weld.js';
11
+ export type { MatrixLike };
12
+ /**
13
+ * Weld raw positions+indices into a mesh Shape (same behaviour as the old
14
+ * `geoToManifoldMesh` on a position-only geometry).
15
+ * @param positions - flat position array (x, y, z, ...).
16
+ * @param indices - triangle index array into `positions`.
17
+ * @param extra - optional extra Shape fields to attach (e.g. `faceRanges`).
18
+ * @returns the welded Shape.
19
+ */
20
+ export declare function shapeFromMesh(positions: ArrayLike<number>, indices: ArrayLike<number>, extra?: Partial<Shape>): Shape;
21
+ /**
22
+ * Expand an indexed Shape to non-indexed (each triangle gets its own vertices),
23
+ * mirroring three `BufferGeometry.toNonIndexed`.
24
+ * @param shape - the indexed shape.
25
+ * @returns a non-indexed copy of the shape.
26
+ */
27
+ export declare function toNonIndexed(shape: Shape): MeshData;
28
+ /**
29
+ * Apply a 4x4 matrix to a Shape's vertices (bakes the transform).
30
+ * @param shape - the source shape.
31
+ * @param m - column-major 4x4 matrix.
32
+ * @returns a new shape with transformed vertices (indices/other fields preserved).
33
+ */
34
+ export declare function transformShape(shape: Shape, m: MatrixLike): Shape;
35
+ /**
36
+ * Translate a Shape's vertices by (x, y, z).
37
+ * @param shape - the source shape.
38
+ * @param x - X offset.
39
+ * @param y - Y offset.
40
+ * @param z - Z offset.
41
+ * @returns a new shape with translated vertices.
42
+ */
43
+ export declare function translateShape(shape: Shape, x: number, y: number, z?: number): Shape;
44
+ /**
45
+ * Compute per-vertex normals with three `BufferGeometry.computeVertexNormals`
46
+ * semantics (face normals averaged across shared vertices).
47
+ *
48
+ * **折边红线提醒**:在索引(共享顶点)几何上这会把棱边"磨圆"——core 的派生法线
49
+ * 一律走 `boolean/creased-normals.ts`(`deriveNormals`)。本函数只为替换 three 的
50
+ * **罕见**直调用点而保留,返回纯数据,不改变 Shape。
51
+ * @param shape - the source shape.
52
+ * @returns a Float32Array of per-vertex normals.
53
+ */
54
+ export declare function computeVertexNormals(shape: Shape): Float32Array;
55
+ /**
56
+ * Merge several Shapes into one indexed Shape (position + index concatenation,
57
+ * mirroring the old `mergeBufferGeometries`).
58
+ * @param shapes - the shapes to merge.
59
+ * @returns the merged Shape.
60
+ */
61
+ export declare function mergeShapes(shapes: Shape[]): Shape;
62
+ //# sourceMappingURL=ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../src/mesh/meshdata/ops.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEhD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GACrB,KAAK,CAGP;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAanD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,GAAG,KAAK,CAWjE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,KAAK,CAS/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAuC/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAwBlD"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * meshdata/ops — 作用在 Shape / 原始数组上的纯函数几何操作(L1 容器操作)。
3
+ *
4
+ * 替代 three `BufferGeometry` 的少量方法面(`toNonIndexed`、`computeVertexNormals`、
5
+ * `applyMatrix4`/`translate`、`clone`、merge)——**纯函数集,不给对外 `Shape` 挂方法**
6
+ * (与设计 §3.3 一致)。不重复 `mesh/query.ts` 已有的 `boundingBox`/`volume` 等查询。
7
+ */
8
+ import { Vec3 } from '../../math3d/index.js';
9
+ import { weldMesh } from './weld.js';
10
+ /**
11
+ * Weld raw positions+indices into a mesh Shape (same behaviour as the old
12
+ * `geoToManifoldMesh` on a position-only geometry).
13
+ * @param positions - flat position array (x, y, z, ...).
14
+ * @param indices - triangle index array into `positions`.
15
+ * @param extra - optional extra Shape fields to attach (e.g. `faceRanges`).
16
+ * @returns the welded Shape.
17
+ */
18
+ export function shapeFromMesh(positions, indices, extra) {
19
+ const mesh = weldMesh(positions, indices);
20
+ return { positions: mesh.positions, indices: mesh.indices, ...extra };
21
+ }
22
+ /**
23
+ * Expand an indexed Shape to non-indexed (each triangle gets its own vertices),
24
+ * mirroring three `BufferGeometry.toNonIndexed`.
25
+ * @param shape - the indexed shape.
26
+ * @returns a non-indexed copy of the shape.
27
+ */
28
+ export function toNonIndexed(shape) {
29
+ const positions = shape.positions;
30
+ const indices = shape.indices;
31
+ const out = new Float32Array(indices.length * 3);
32
+ for (let i = 0; i < indices.length; i++) {
33
+ const v = indices[i] * 3;
34
+ out[i * 3] = positions[v];
35
+ out[i * 3 + 1] = positions[v + 1];
36
+ out[i * 3 + 2] = positions[v + 2];
37
+ }
38
+ const seq = new Uint32Array(indices.length);
39
+ for (let i = 0; i < indices.length; i++)
40
+ seq[i] = i;
41
+ return { positions: out, indices: seq };
42
+ }
43
+ /**
44
+ * Apply a 4x4 matrix to a Shape's vertices (bakes the transform).
45
+ * @param shape - the source shape.
46
+ * @param m - column-major 4x4 matrix.
47
+ * @returns a new shape with transformed vertices (indices/other fields preserved).
48
+ */
49
+ export function transformShape(shape, m) {
50
+ const out = new Float32Array(shape.positions.length);
51
+ const v = new Vec3();
52
+ for (let i = 0; i < shape.positions.length; i += 3) {
53
+ v.set(shape.positions[i], shape.positions[i + 1], shape.positions[i + 2]);
54
+ v.applyMatrix4(m);
55
+ out[i] = v.x;
56
+ out[i + 1] = v.y;
57
+ out[i + 2] = v.z;
58
+ }
59
+ return { ...shape, positions: out };
60
+ }
61
+ /**
62
+ * Translate a Shape's vertices by (x, y, z).
63
+ * @param shape - the source shape.
64
+ * @param x - X offset.
65
+ * @param y - Y offset.
66
+ * @param z - Z offset.
67
+ * @returns a new shape with translated vertices.
68
+ */
69
+ export function translateShape(shape, x, y, z = 0) {
70
+ if (x === 0 && y === 0 && z === 0)
71
+ return { ...shape };
72
+ const out = new Float32Array(shape.positions);
73
+ for (let i = 0; i < out.length; i += 3) {
74
+ out[i] += x;
75
+ out[i + 1] += y;
76
+ out[i + 2] += z;
77
+ }
78
+ return { ...shape, positions: out };
79
+ }
80
+ /**
81
+ * Compute per-vertex normals with three `BufferGeometry.computeVertexNormals`
82
+ * semantics (face normals averaged across shared vertices).
83
+ *
84
+ * **折边红线提醒**:在索引(共享顶点)几何上这会把棱边"磨圆"——core 的派生法线
85
+ * 一律走 `boolean/creased-normals.ts`(`deriveNormals`)。本函数只为替换 three 的
86
+ * **罕见**直调用点而保留,返回纯数据,不改变 Shape。
87
+ * @param shape - the source shape.
88
+ * @returns a Float32Array of per-vertex normals.
89
+ */
90
+ export function computeVertexNormals(shape) {
91
+ const positions = shape.positions;
92
+ const indices = shape.indices;
93
+ const normals = new Float32Array(positions.length);
94
+ const pA = new Vec3();
95
+ const pB = new Vec3();
96
+ const pC = new Vec3();
97
+ const cb = new Vec3();
98
+ const ab = new Vec3();
99
+ for (let i = 0; i < indices.length; i += 3) {
100
+ const a = indices[i] * 3;
101
+ const b = indices[i + 1] * 3;
102
+ const c = indices[i + 2] * 3;
103
+ pA.set(positions[a], positions[a + 1], positions[a + 2]);
104
+ pB.set(positions[b], positions[b + 1], positions[b + 2]);
105
+ pC.set(positions[c], positions[c + 1], positions[c + 2]);
106
+ cb.subVectors(pC, pB);
107
+ ab.subVectors(pA, pB);
108
+ cb.cross(ab);
109
+ normals[a] += cb.x;
110
+ normals[a + 1] += cb.y;
111
+ normals[a + 2] += cb.z;
112
+ normals[b] += cb.x;
113
+ normals[b + 1] += cb.y;
114
+ normals[b + 2] += cb.z;
115
+ normals[c] += cb.x;
116
+ normals[c + 1] += cb.y;
117
+ normals[c + 2] += cb.z;
118
+ }
119
+ const v = new Vec3();
120
+ for (let i = 0; i < normals.length; i += 3) {
121
+ v.set(normals[i], normals[i + 1], normals[i + 2]).normalize();
122
+ normals[i] = v.x;
123
+ normals[i + 1] = v.y;
124
+ normals[i + 2] = v.z;
125
+ }
126
+ return normals;
127
+ }
128
+ /**
129
+ * Merge several Shapes into one indexed Shape (position + index concatenation,
130
+ * mirroring the old `mergeBufferGeometries`).
131
+ * @param shapes - the shapes to merge.
132
+ * @returns the merged Shape.
133
+ */
134
+ export function mergeShapes(shapes) {
135
+ if (shapes.length === 1) {
136
+ const s = shapes[0];
137
+ return { positions: new Float32Array(s.positions), indices: new Uint32Array(s.indices) };
138
+ }
139
+ let posLen = 0;
140
+ let idxLen = 0;
141
+ for (const s of shapes) {
142
+ posLen += s.positions.length;
143
+ idxLen += s.indices.length;
144
+ }
145
+ const positions = new Float32Array(posLen);
146
+ const indices = new Uint32Array(idxLen);
147
+ let po = 0;
148
+ let io = 0;
149
+ let vertexOffset = 0;
150
+ for (const s of shapes) {
151
+ positions.set(s.positions, po);
152
+ po += s.positions.length;
153
+ for (let i = 0; i < s.indices.length; i++)
154
+ indices[io + i] = s.indices[i] + vertexOffset;
155
+ io += s.indices.length;
156
+ vertexOffset += s.positions.length / 3;
157
+ }
158
+ return { positions, indices };
159
+ }
160
+ //# sourceMappingURL=ops.js.map