@faicad/faijs 0.31.1 → 0.32.3

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 (1538) hide show
  1. package/dist/api/api-namespace.d.ts.map +1 -1
  2. package/dist/api/api-namespace.js +9 -3
  3. package/dist/api/api-namespace.js.map +1 -1
  4. package/dist/api/boolean-op/index.d.ts.map +1 -1
  5. package/dist/api/boolean-op/index.js +1 -0
  6. package/dist/api/boolean-op/index.js.map +1 -1
  7. package/dist/api/boolean.d.ts.map +1 -1
  8. package/dist/api/boolean.js +4 -0
  9. package/dist/api/boolean.js.map +1 -1
  10. package/dist/api/brep-operations/joinery-brep.js +10 -10
  11. package/dist/api/brep-operations/joinery-brep.js.map +1 -1
  12. package/dist/api/chamfer.d.ts.map +1 -1
  13. package/dist/api/chamfer.js +1 -0
  14. package/dist/api/chamfer.js.map +1 -1
  15. package/dist/api/curve-sketch/index.d.ts.map +1 -1
  16. package/dist/api/curve-sketch/index.js +3 -0
  17. package/dist/api/curve-sketch/index.js.map +1 -1
  18. package/dist/api/draft.d.ts.map +1 -1
  19. package/dist/api/draft.js +1 -0
  20. package/dist/api/draft.js.map +1 -1
  21. package/dist/api/engrave.d.ts.map +1 -1
  22. package/dist/api/engrave.js +1 -0
  23. package/dist/api/engrave.js.map +1 -1
  24. package/dist/api/extrude.d.ts.map +1 -1
  25. package/dist/api/extrude.js +18 -17
  26. package/dist/api/extrude.js.map +1 -1
  27. package/dist/api/feature-repair.d.ts.map +1 -1
  28. package/dist/api/feature-repair.js +6 -0
  29. package/dist/api/feature-repair.js.map +1 -1
  30. package/dist/api/fillet-variable.d.ts.map +1 -1
  31. package/dist/api/fillet-variable.js +1 -0
  32. package/dist/api/fillet-variable.js.map +1 -1
  33. package/dist/api/fillet.d.ts.map +1 -1
  34. package/dist/api/fillet.js +1 -0
  35. package/dist/api/fillet.js.map +1 -1
  36. package/dist/api/generated/operations.js +16 -16
  37. package/dist/api/generated/operations.js.map +1 -1
  38. package/dist/api/generated/sketching.js +1 -1
  39. package/dist/api/generated/sketching.js.map +1 -1
  40. package/dist/api/generated/topology.js +18 -18
  41. package/dist/api/generated/topology.js.map +1 -1
  42. package/dist/api/helix.d.ts.map +1 -1
  43. package/dist/api/helix.js +1 -0
  44. package/dist/api/helix.js.map +1 -1
  45. package/dist/api/import-brep.d.ts.map +1 -1
  46. package/dist/api/import-brep.js +1 -0
  47. package/dist/api/import-brep.js.map +1 -1
  48. package/dist/api/import-step.d.ts.map +1 -1
  49. package/dist/api/import-step.js +1 -0
  50. package/dist/api/import-step.js.map +1 -1
  51. package/dist/api/index.d.ts +5 -2
  52. package/dist/api/index.d.ts.map +1 -1
  53. package/dist/api/index.js +3 -0
  54. package/dist/api/index.js.map +1 -1
  55. package/dist/api/loft-advanced.d.ts +66 -0
  56. package/dist/api/loft-advanced.d.ts.map +1 -0
  57. package/dist/api/loft-advanced.js +112 -0
  58. package/dist/api/loft-advanced.js.map +1 -0
  59. package/dist/api/loft.d.ts +16 -23
  60. package/dist/api/loft.d.ts.map +1 -1
  61. package/dist/api/loft.js +22 -40
  62. package/dist/api/loft.js.map +1 -1
  63. package/dist/api/measure-query/index.d.ts.map +1 -1
  64. package/dist/api/measure-query/index.js +2 -0
  65. package/dist/api/measure-query/index.js.map +1 -1
  66. package/dist/api/pattern.d.ts.map +1 -1
  67. package/dist/api/pattern.js +1 -0
  68. package/dist/api/pattern.js.map +1 -1
  69. package/dist/api/place.d.ts.map +1 -1
  70. package/dist/api/place.js +1 -0
  71. package/dist/api/place.js.map +1 -1
  72. package/dist/api/profile.d.ts.map +1 -1
  73. package/dist/api/profile.js +1 -0
  74. package/dist/api/profile.js.map +1 -1
  75. package/dist/api/punch-hole.d.ts.map +1 -1
  76. package/dist/api/punch-hole.js +1 -0
  77. package/dist/api/punch-hole.js.map +1 -1
  78. package/dist/api/replicate.d.ts.map +1 -1
  79. package/dist/api/replicate.js +6 -0
  80. package/dist/api/replicate.js.map +1 -1
  81. package/dist/api/revolve.d.ts.map +1 -1
  82. package/dist/api/revolve.js +1 -0
  83. package/dist/api/revolve.js.map +1 -1
  84. package/dist/api/screw.d.ts.map +1 -1
  85. package/dist/api/screw.js +1 -0
  86. package/dist/api/screw.js.map +1 -1
  87. package/dist/api/sdf.d.ts.map +1 -1
  88. package/dist/api/sdf.js +1 -0
  89. package/dist/api/sdf.js.map +1 -1
  90. package/dist/api/shell.d.ts.map +1 -1
  91. package/dist/api/shell.js +1 -0
  92. package/dist/api/shell.js.map +1 -1
  93. package/dist/api/sketch-on-face.d.ts +34 -30
  94. package/dist/api/sketch-on-face.d.ts.map +1 -1
  95. package/dist/api/sketch-on-face.js +41 -31
  96. package/dist/api/sketch-on-face.js.map +1 -1
  97. package/dist/api/sketch-on-plane.d.ts.map +1 -1
  98. package/dist/api/sketch-on-plane.js +1 -0
  99. package/dist/api/sketch-on-plane.js.map +1 -1
  100. package/dist/api/sketch-on-surface.d.ts +76 -0
  101. package/dist/api/sketch-on-surface.d.ts.map +1 -0
  102. package/dist/api/sketch-on-surface.js +99 -0
  103. package/dist/api/sketch-on-surface.js.map +1 -0
  104. package/dist/api/solid-offset/index.d.ts.map +1 -1
  105. package/dist/api/solid-offset/index.js +1 -0
  106. package/dist/api/solid-offset/index.js.map +1 -1
  107. package/dist/api/split.d.ts.map +1 -1
  108. package/dist/api/split.js +1 -0
  109. package/dist/api/split.js.map +1 -1
  110. package/dist/api/surface/arg-spec.d.ts +5 -4
  111. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  112. package/dist/api/surface/arg-spec.js +2 -2
  113. package/dist/api/surface/arg-spec.js.map +1 -1
  114. package/dist/api/surface-face/index.d.ts.map +1 -1
  115. package/dist/api/surface-face/index.js +5 -0
  116. package/dist/api/surface-face/index.js.map +1 -1
  117. package/dist/api/surface.d.ts.map +1 -1
  118. package/dist/api/surface.js +1 -0
  119. package/dist/api/surface.js.map +1 -1
  120. package/dist/api/sweep-advanced.d.ts +117 -0
  121. package/dist/api/sweep-advanced.d.ts.map +1 -0
  122. package/dist/api/sweep-advanced.js +94 -0
  123. package/dist/api/sweep-advanced.js.map +1 -0
  124. package/dist/api/sweep.d.ts +18 -88
  125. package/dist/api/sweep.d.ts.map +1 -1
  126. package/dist/api/sweep.js +27 -30
  127. package/dist/api/sweep.js.map +1 -1
  128. package/dist/api/thicken.d.ts.map +1 -1
  129. package/dist/api/thicken.js +1 -0
  130. package/dist/api/thicken.js.map +1 -1
  131. package/dist/api/transform.d.ts.map +1 -1
  132. package/dist/api/transform.js +2 -0
  133. package/dist/api/transform.js.map +1 -1
  134. package/dist/api/wire.d.ts.map +1 -1
  135. package/dist/api/wire.js +1 -0
  136. package/dist/api/wire.js.map +1 -1
  137. package/dist/boolean/cross-section.d.ts +7 -6
  138. package/dist/boolean/cross-section.d.ts.map +1 -1
  139. package/dist/boolean/cross-section.js +38 -27
  140. package/dist/boolean/cross-section.js.map +1 -1
  141. package/dist/boolean/deriveNormals.d.ts +5 -5
  142. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  143. package/dist/boolean/deriveNormals.js +18 -18
  144. package/dist/boolean/deriveNormals.js.map +1 -1
  145. package/dist/boolean/extrude-helpers.d.ts +6 -6
  146. package/dist/boolean/extrude-helpers.d.ts.map +1 -1
  147. package/dist/boolean/extrude-helpers.js +6 -6
  148. package/dist/boolean/extrude-helpers.js.map +1 -1
  149. package/dist/boolean/geo-convert.d.ts +11 -8
  150. package/dist/boolean/geo-convert.d.ts.map +1 -1
  151. package/dist/boolean/geo-convert.js +17 -73
  152. package/dist/boolean/geo-convert.js.map +1 -1
  153. package/dist/boolean/index.js.map +1 -1
  154. package/dist/brep/brep-ops.d.ts +5 -5
  155. package/dist/brep/brep-ops.d.ts.map +1 -1
  156. package/dist/brep/brep-ops.js +42 -42
  157. package/dist/brep/brep-ops.js.map +1 -1
  158. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  159. package/dist/brep/engine/adapters/brep-mock.js +24 -0
  160. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  161. package/dist/brep/engine/primitives.d.ts +30 -0
  162. package/dist/brep/engine/primitives.d.ts.map +1 -1
  163. package/dist/brep/engine/primitives.js.map +1 -1
  164. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  165. package/dist/brepkit-kernel/brepkitKernel.js +138 -0
  166. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  167. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  168. package/dist/cad-runtime/runtime.js +5 -2
  169. package/dist/cad-runtime/runtime.js.map +1 -1
  170. package/dist/define-op.d.ts +16 -7
  171. package/dist/define-op.d.ts.map +1 -1
  172. package/dist/define-op.js +2 -0
  173. package/dist/define-op.js.map +1 -1
  174. package/dist/index.d.ts +1 -0
  175. package/dist/index.d.ts.map +1 -1
  176. package/dist/index.js.map +1 -1
  177. package/dist/lang/codegen.d.ts +14 -3
  178. package/dist/lang/codegen.d.ts.map +1 -1
  179. package/dist/lang/codegen.js +80 -5
  180. package/dist/lang/codegen.js.map +1 -1
  181. package/dist/lang/metadata-extractor.d.ts +10 -3
  182. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  183. package/dist/lang/metadata-extractor.js +160 -65
  184. package/dist/lang/metadata-extractor.js.map +1 -1
  185. package/dist/lang/symbol-table.generated.d.ts +3 -0
  186. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  187. package/dist/lang/symbol-table.generated.js +3 -0
  188. package/dist/lang/symbol-table.generated.js.map +1 -1
  189. package/dist/math3d/Box3.d.ts +86 -0
  190. package/dist/math3d/Box3.d.ts.map +1 -0
  191. package/dist/math3d/Box3.js +149 -0
  192. package/dist/math3d/Box3.js.map +1 -0
  193. package/dist/math3d/Euler.d.ts +64 -0
  194. package/dist/math3d/Euler.d.ts.map +1 -0
  195. package/dist/math3d/Euler.js +94 -0
  196. package/dist/math3d/Euler.js.map +1 -0
  197. package/dist/math3d/Mat4.d.ts +196 -0
  198. package/dist/math3d/Mat4.d.ts.map +1 -0
  199. package/dist/math3d/Mat4.js +518 -0
  200. package/dist/math3d/Mat4.js.map +1 -0
  201. package/dist/math3d/Plane.d.ts +67 -0
  202. package/dist/math3d/Plane.d.ts.map +1 -0
  203. package/dist/math3d/Plane.js +90 -0
  204. package/dist/math3d/Plane.js.map +1 -0
  205. package/dist/math3d/Quat.d.ts +163 -0
  206. package/dist/math3d/Quat.d.ts.map +1 -0
  207. package/dist/math3d/Quat.js +408 -0
  208. package/dist/math3d/Quat.js.map +1 -0
  209. package/dist/math3d/Vec2.d.ts +185 -0
  210. package/dist/math3d/Vec2.d.ts.map +1 -0
  211. package/dist/math3d/Vec2.js +276 -0
  212. package/dist/math3d/Vec2.js.map +1 -0
  213. package/dist/math3d/Vec3.d.ts +326 -0
  214. package/dist/math3d/Vec3.d.ts.map +1 -0
  215. package/dist/math3d/Vec3.js +521 -0
  216. package/dist/math3d/Vec3.js.map +1 -0
  217. package/dist/math3d/index.d.ts +19 -0
  218. package/dist/math3d/index.d.ts.map +1 -0
  219. package/dist/math3d/index.js +19 -0
  220. package/dist/math3d/index.js.map +1 -0
  221. package/dist/mesh/decoration-provider.d.ts +2 -2
  222. package/dist/mesh/decoration-provider.d.ts.map +1 -1
  223. package/dist/mesh/decoration-provider.js.map +1 -1
  224. package/dist/mesh/engrave.d.ts.map +1 -1
  225. package/dist/mesh/engrave.js +36 -37
  226. package/dist/mesh/engrave.js.map +1 -1
  227. package/dist/mesh/io.d.ts.map +1 -1
  228. package/dist/mesh/io.js +6 -7
  229. package/dist/mesh/io.js.map +1 -1
  230. package/dist/mesh/knurl/KnurlGenerator.d.ts +8 -7
  231. package/dist/mesh/knurl/KnurlGenerator.d.ts.map +1 -1
  232. package/dist/mesh/knurl/KnurlGenerator.js +9 -9
  233. package/dist/mesh/knurl/KnurlGenerator.js.map +1 -1
  234. package/dist/mesh/knurl/displacement.d.ts +7 -6
  235. package/dist/mesh/knurl/displacement.d.ts.map +1 -1
  236. package/dist/mesh/knurl/displacement.js +29 -29
  237. package/dist/mesh/knurl/displacement.js.map +1 -1
  238. package/dist/mesh/knurl/subdivision.d.ts +3 -3
  239. package/dist/mesh/knurl/subdivision.d.ts.map +1 -1
  240. package/dist/mesh/knurl/subdivision.js +21 -15
  241. package/dist/mesh/knurl/subdivision.js.map +1 -1
  242. package/dist/mesh/knurl/textureLoader.d.ts +3 -3
  243. package/dist/mesh/knurl/textureLoader.d.ts.map +1 -1
  244. package/dist/mesh/knurl/textureLoader.js.map +1 -1
  245. package/dist/mesh/meshdata/index.d.ts +12 -0
  246. package/dist/mesh/meshdata/index.d.ts.map +1 -0
  247. package/dist/mesh/meshdata/index.js +12 -0
  248. package/dist/mesh/meshdata/index.js.map +1 -0
  249. package/dist/mesh/meshdata/ops.d.ts +62 -0
  250. package/dist/mesh/meshdata/ops.d.ts.map +1 -0
  251. package/dist/mesh/meshdata/ops.js +160 -0
  252. package/dist/mesh/meshdata/ops.js.map +1 -0
  253. package/dist/mesh/meshdata/parametric.d.ts +70 -0
  254. package/dist/mesh/meshdata/parametric.d.ts.map +1 -0
  255. package/dist/mesh/meshdata/parametric.js +213 -0
  256. package/dist/mesh/meshdata/parametric.js.map +1 -0
  257. package/dist/mesh/meshdata/weld.d.ts +21 -0
  258. package/dist/mesh/meshdata/weld.d.ts.map +1 -0
  259. package/dist/mesh/meshdata/weld.js +50 -0
  260. package/dist/mesh/meshdata/weld.js.map +1 -0
  261. package/dist/mesh/primitives.d.ts +1 -1
  262. package/dist/mesh/primitives.d.ts.map +1 -1
  263. package/dist/mesh/primitives.js +38 -39
  264. package/dist/mesh/primitives.js.map +1 -1
  265. package/dist/mesh/query.js +11 -11
  266. package/dist/mesh/query.js.map +1 -1
  267. package/dist/mesh/stl-loader.d.ts +7 -7
  268. package/dist/mesh/stl-loader.d.ts.map +1 -1
  269. package/dist/mesh/stl-loader.js +12 -24
  270. package/dist/mesh/stl-loader.js.map +1 -1
  271. package/dist/mesh/threemf-view.d.ts +11 -11
  272. package/dist/mesh/threemf-view.d.ts.map +1 -1
  273. package/dist/mesh/threemf-view.js +10 -10
  274. package/dist/mesh/threemf-view.js.map +1 -1
  275. package/dist/mesh/transform.d.ts +14 -8
  276. package/dist/mesh/transform.d.ts.map +1 -1
  277. package/dist/mesh/transform.js +18 -13
  278. package/dist/mesh/transform.js.map +1 -1
  279. package/dist/mesh/types.d.ts +2 -0
  280. package/dist/mesh/types.d.ts.map +1 -1
  281. package/dist/mesh/types.js.map +1 -1
  282. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  283. package/dist/occt-kernel/occt-primitives.js +20 -0
  284. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  285. package/dist/primitives/brep-primitives.d.ts +8 -12
  286. package/dist/primitives/brep-primitives.d.ts.map +1 -1
  287. package/dist/primitives/brep-primitives.js +10 -28
  288. package/dist/primitives/brep-primitives.js.map +1 -1
  289. package/dist/primitives/index.js.map +1 -1
  290. package/dist/primitives/mesh-primitives.d.ts +10 -10
  291. package/dist/primitives/mesh-primitives.d.ts.map +1 -1
  292. package/dist/primitives/mesh-primitives.js +29 -76
  293. package/dist/primitives/mesh-primitives.js.map +1 -1
  294. package/dist/primitives/screw/screw.d.ts +3 -3
  295. package/dist/primitives/screw/screw.d.ts.map +1 -1
  296. package/dist/primitives/screw/screw.js +10 -9
  297. package/dist/primitives/screw/screw.js.map +1 -1
  298. package/dist/sdf/index.js.map +1 -1
  299. package/dist/units.d.ts +40 -0
  300. package/dist/units.d.ts.map +1 -1
  301. package/dist/units.js.map +1 -1
  302. package/package.json +15 -5
  303. package/dist/api/brep-mirror/booleanFns.d.ts +0 -40
  304. package/dist/api/brep-mirror/booleanFns.d.ts.map +0 -1
  305. package/dist/api/brep-mirror/booleanFns.js +0 -104
  306. package/dist/api/brep-mirror/booleanFns.js.map +0 -1
  307. package/dist/api/brep-mirror/brepHelpers.d.ts +0 -55
  308. package/dist/api/brep-mirror/brepHelpers.d.ts.map +0 -1
  309. package/dist/api/brep-mirror/brepHelpers.js +0 -131
  310. package/dist/api/brep-mirror/brepHelpers.js.map +0 -1
  311. package/dist/api/brep-mirror/compoundFns.d.ts +0 -47
  312. package/dist/api/brep-mirror/compoundFns.d.ts.map +0 -1
  313. package/dist/api/brep-mirror/compoundFns.js +0 -300
  314. package/dist/api/brep-mirror/compoundFns.js.map +0 -1
  315. package/dist/api/brep-mirror/healingFns.d.ts +0 -78
  316. package/dist/api/brep-mirror/healingFns.d.ts.map +0 -1
  317. package/dist/api/brep-mirror/healingFns.js +0 -294
  318. package/dist/api/brep-mirror/healingFns.js.map +0 -1
  319. package/dist/api/brep-mirror/hullFns.d.ts +0 -20
  320. package/dist/api/brep-mirror/hullFns.d.ts.map +0 -1
  321. package/dist/api/brep-mirror/hullFns.js +0 -46
  322. package/dist/api/brep-mirror/hullFns.js.map +0 -1
  323. package/dist/api/brep-mirror/joinery-brep.d.ts +0 -172
  324. package/dist/api/brep-mirror/joinery-brep.d.ts.map +0 -1
  325. package/dist/api/brep-mirror/joinery-brep.js +0 -463
  326. package/dist/api/brep-mirror/joinery-brep.js.map +0 -1
  327. package/dist/api/brep-mirror/patternFns.d.ts +0 -43
  328. package/dist/api/brep-mirror/patternFns.d.ts.map +0 -1
  329. package/dist/api/brep-mirror/patternFns.js +0 -178
  330. package/dist/api/brep-mirror/patternFns.js.map +0 -1
  331. package/dist/api/brep-mirror/primitiveFns.d.ts +0 -42
  332. package/dist/api/brep-mirror/primitiveFns.d.ts.map +0 -1
  333. package/dist/api/brep-mirror/primitiveFns.js +0 -104
  334. package/dist/api/brep-mirror/primitiveFns.js.map +0 -1
  335. package/dist/api/brep-mirror/roofFns.d.ts +0 -24
  336. package/dist/api/brep-mirror/roofFns.d.ts.map +0 -1
  337. package/dist/api/brep-mirror/roofFns.js +0 -229
  338. package/dist/api/brep-mirror/roofFns.js.map +0 -1
  339. package/dist/api/brep-mirror/straightSkeleton.d.ts +0 -36
  340. package/dist/api/brep-mirror/straightSkeleton.d.ts.map +0 -1
  341. package/dist/api/brep-mirror/straightSkeleton.js +0 -443
  342. package/dist/api/brep-mirror/straightSkeleton.js.map +0 -1
  343. package/dist/api/brep-mirror/sweepFns.d.ts +0 -55
  344. package/dist/api/brep-mirror/sweepFns.d.ts.map +0 -1
  345. package/dist/api/brep-mirror/sweepFns.js +0 -200
  346. package/dist/api/brep-mirror/sweepFns.js.map +0 -1
  347. package/dist/api/brep-mirror/threadFns.d.ts +0 -83
  348. package/dist/api/brep-mirror/threadFns.d.ts.map +0 -1
  349. package/dist/api/brep-mirror/threadFns.js +0 -138
  350. package/dist/api/brep-mirror/threadFns.js.map +0 -1
  351. package/dist/api/brep-mirror/topologyFns.d.ts +0 -74
  352. package/dist/api/brep-mirror/topologyFns.d.ts.map +0 -1
  353. package/dist/api/brep-mirror/topologyFns.js +0 -276
  354. package/dist/api/brep-mirror/topologyFns.js.map +0 -1
  355. package/dist/api/brepjs-compat/constants.d.ts +0 -11
  356. package/dist/api/brepjs-compat/constants.d.ts.map +0 -1
  357. package/dist/api/brepjs-compat/constants.js +0 -11
  358. package/dist/api/brepjs-compat/constants.js.map +0 -1
  359. package/dist/api/brepjs-compat/index.d.ts +0 -21
  360. package/dist/api/brepjs-compat/index.d.ts.map +0 -1
  361. package/dist/api/brepjs-compat/index.js +0 -22
  362. package/dist/api/brepjs-compat/index.js.map +0 -1
  363. package/dist/api/brepjs-compat/planeOps.d.ts +0 -98
  364. package/dist/api/brepjs-compat/planeOps.d.ts.map +0 -1
  365. package/dist/api/brepjs-compat/planeOps.js +0 -170
  366. package/dist/api/brepjs-compat/planeOps.js.map +0 -1
  367. package/dist/api/brepjs-compat/planeTypes.d.ts +0 -24
  368. package/dist/api/brepjs-compat/planeTypes.d.ts.map +0 -1
  369. package/dist/api/brepjs-compat/planeTypes.js +0 -8
  370. package/dist/api/brepjs-compat/planeTypes.js.map +0 -1
  371. package/dist/api/brepjs-compat/types.d.ts +0 -64
  372. package/dist/api/brepjs-compat/types.d.ts.map +0 -1
  373. package/dist/api/brepjs-compat/types.js +0 -48
  374. package/dist/api/brepjs-compat/types.js.map +0 -1
  375. package/dist/api/brepjs-compat/vecOps.d.ts +0 -124
  376. package/dist/api/brepjs-compat/vecOps.d.ts.map +0 -1
  377. package/dist/api/brepjs-compat/vecOps.js +0 -202
  378. package/dist/api/brepjs-compat/vecOps.js.map +0 -1
  379. package/dist/api/generated/brepjs/index.d.ts +0 -310
  380. package/dist/api/generated/brepjs/index.d.ts.map +0 -1
  381. package/dist/api/generated/brepjs/index.js +0 -195
  382. package/dist/api/generated/brepjs/index.js.map +0 -1
  383. package/dist/api/generated/cad/script-face.d.ts +0 -12
  384. package/dist/api/generated/cad/script-face.d.ts.map +0 -1
  385. package/dist/api/generated/cad/script-face.js +0 -146
  386. package/dist/api/generated/cad/script-face.js.map +0 -1
  387. package/dist/api/internal/compat-projection.d.ts +0 -55
  388. package/dist/api/internal/compat-projection.d.ts.map +0 -1
  389. package/dist/api/internal/compat-projection.js +0 -75
  390. package/dist/api/internal/compat-projection.js.map +0 -1
  391. package/dist/api/occt-kernel-bridge.d.ts +0 -118
  392. package/dist/api/occt-kernel-bridge.d.ts.map +0 -1
  393. package/dist/api/occt-kernel-bridge.js +0 -283
  394. package/dist/api/occt-kernel-bridge.js.map +0 -1
  395. package/dist/api/sketch.d.ts +0 -80
  396. package/dist/api/sketch.d.ts.map +0 -1
  397. package/dist/api/sketch.js +0 -155
  398. package/dist/api/sketch.js.map +0 -1
  399. package/dist/api/surface/projection-overrides.d.ts +0 -38
  400. package/dist/api/surface/projection-overrides.d.ts.map +0 -1
  401. package/dist/api/surface/projection-overrides.js +0 -169
  402. package/dist/api/surface/projection-overrides.js.map +0 -1
  403. package/dist/brepjs-compat.d.ts +0 -20
  404. package/dist/brepjs-compat.d.ts.map +0 -1
  405. package/dist/brepjs-compat.js +0 -20
  406. package/dist/brepjs-compat.js.map +0 -1
  407. package/dist/cad-runtime/createRuntimeWithCad.d.ts +0 -22
  408. package/dist/cad-runtime/createRuntimeWithCad.d.ts.map +0 -1
  409. package/dist/cad-runtime/createRuntimeWithCad.js +0 -29
  410. package/dist/cad-runtime/createRuntimeWithCad.js.map +0 -1
  411. package/dist/fcstd/attachment.d.ts +0 -72
  412. package/dist/fcstd/attachment.d.ts.map +0 -1
  413. package/dist/fcstd/attachment.js +0 -93
  414. package/dist/fcstd/attachment.js.map +0 -1
  415. package/dist/fcstd/build-fai-zip.d.ts +0 -40
  416. package/dist/fcstd/build-fai-zip.d.ts.map +0 -1
  417. package/dist/fcstd/build-fai-zip.js +0 -111
  418. package/dist/fcstd/build-fai-zip.js.map +0 -1
  419. package/dist/fcstd/cli.d.ts +0 -3
  420. package/dist/fcstd/cli.d.ts.map +0 -1
  421. package/dist/fcstd/cli.js +0 -37
  422. package/dist/fcstd/cli.js.map +0 -1
  423. package/dist/fcstd/codegen.d.ts +0 -79
  424. package/dist/fcstd/codegen.d.ts.map +0 -1
  425. package/dist/fcstd/codegen.js +0 -605
  426. package/dist/fcstd/codegen.js.map +0 -1
  427. package/dist/fcstd/container.d.ts +0 -75
  428. package/dist/fcstd/container.d.ts.map +0 -1
  429. package/dist/fcstd/container.js +0 -36
  430. package/dist/fcstd/container.js.map +0 -1
  431. package/dist/fcstd/contour.d.ts +0 -43
  432. package/dist/fcstd/contour.d.ts.map +0 -1
  433. package/dist/fcstd/contour.js +0 -96
  434. package/dist/fcstd/contour.js.map +0 -1
  435. package/dist/fcstd/convert.d.ts +0 -63
  436. package/dist/fcstd/convert.d.ts.map +0 -1
  437. package/dist/fcstd/convert.js +0 -274
  438. package/dist/fcstd/convert.js.map +0 -1
  439. package/dist/fcstd/document.d.ts +0 -48
  440. package/dist/fcstd/document.d.ts.map +0 -1
  441. package/dist/fcstd/document.js +0 -140
  442. package/dist/fcstd/document.js.map +0 -1
  443. package/dist/fcstd/expressions.d.ts +0 -74
  444. package/dist/fcstd/expressions.d.ts.map +0 -1
  445. package/dist/fcstd/expressions.js +0 -157
  446. package/dist/fcstd/expressions.js.map +0 -1
  447. package/dist/fcstd/external-geo.d.ts +0 -49
  448. package/dist/fcstd/external-geo.d.ts.map +0 -1
  449. package/dist/fcstd/external-geo.js +0 -140
  450. package/dist/fcstd/external-geo.js.map +0 -1
  451. package/dist/fcstd/feature-translate.d.ts +0 -189
  452. package/dist/fcstd/feature-translate.d.ts.map +0 -1
  453. package/dist/fcstd/feature-translate.js +0 -968
  454. package/dist/fcstd/feature-translate.js.map +0 -1
  455. package/dist/fcstd/index.d.ts +0 -23
  456. package/dist/fcstd/index.d.ts.map +0 -1
  457. package/dist/fcstd/index.js +0 -19
  458. package/dist/fcstd/index.js.map +0 -1
  459. package/dist/fcstd/placement.d.ts +0 -93
  460. package/dist/fcstd/placement.d.ts.map +0 -1
  461. package/dist/fcstd/placement.js +0 -117
  462. package/dist/fcstd/placement.js.map +0 -1
  463. package/dist/fcstd/planegcs-backend.d.ts +0 -34
  464. package/dist/fcstd/planegcs-backend.d.ts.map +0 -1
  465. package/dist/fcstd/planegcs-backend.js +0 -626
  466. package/dist/fcstd/planegcs-backend.js.map +0 -1
  467. package/dist/fcstd/sketch-parse.d.ts +0 -181
  468. package/dist/fcstd/sketch-parse.d.ts.map +0 -1
  469. package/dist/fcstd/sketch-parse.js +0 -227
  470. package/dist/fcstd/sketch-parse.js.map +0 -1
  471. package/dist/fcstd/sketch-solver.d.ts +0 -63
  472. package/dist/fcstd/sketch-solver.d.ts.map +0 -1
  473. package/dist/fcstd/sketch-solver.js +0 -28
  474. package/dist/fcstd/sketch-solver.js.map +0 -1
  475. package/dist/fcstd/sketch-verify.d.ts +0 -43
  476. package/dist/fcstd/sketch-verify.d.ts.map +0 -1
  477. package/dist/fcstd/sketch-verify.js +0 -62
  478. package/dist/fcstd/sketch-verify.js.map +0 -1
  479. package/dist/fcstd/structural-types.d.ts +0 -83
  480. package/dist/fcstd/structural-types.d.ts.map +0 -1
  481. package/dist/fcstd/structural-types.js +0 -121
  482. package/dist/fcstd/structural-types.js.map +0 -1
  483. package/dist/fcstd/unpack.d.ts +0 -44
  484. package/dist/fcstd/unpack.d.ts.map +0 -1
  485. package/dist/fcstd/unpack.js +0 -64
  486. package/dist/fcstd/unpack.js.map +0 -1
  487. package/dist/fcstd-convert.d.ts +0 -30
  488. package/dist/fcstd-convert.d.ts.map +0 -1
  489. package/dist/fcstd-convert.js +0 -27
  490. package/dist/fcstd-convert.js.map +0 -1
  491. package/dist/mesh/creased-normals.d.ts +0 -50
  492. package/dist/mesh/creased-normals.d.ts.map +0 -1
  493. package/dist/mesh/creased-normals.js +0 -114
  494. package/dist/mesh/creased-normals.js.map +0 -1
  495. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +0 -260
  496. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +0 -1
  497. package/dist/occt-kernel/generated/occtPlatform.generated.js +0 -875
  498. package/dist/occt-kernel/generated/occtPlatform.generated.js.map +0 -1
  499. package/dist/occt-kernel/stepMetaParser.d.ts +0 -44
  500. package/dist/occt-kernel/stepMetaParser.d.ts.map +0 -1
  501. package/dist/occt-kernel/stepMetaParser.js +0 -166
  502. package/dist/occt-kernel/stepMetaParser.js.map +0 -1
  503. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts +0 -106
  504. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts.map +0 -1
  505. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js +0 -341
  506. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js.map +0 -1
  507. package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts +0 -185
  508. package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts.map +0 -1
  509. package/dist/vendored/brepjs/2d/blueprints/blueprint.js +0 -361
  510. package/dist/vendored/brepjs/2d/blueprints/blueprint.js.map +0 -1
  511. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts +0 -15
  512. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts.map +0 -1
  513. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js +0 -28
  514. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js.map +0 -1
  515. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts +0 -29
  516. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts.map +0 -1
  517. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js +0 -86
  518. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js.map +0 -1
  519. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts +0 -57
  520. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts.map +0 -1
  521. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js +0 -92
  522. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js.map +0 -1
  523. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts +0 -58
  524. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts.map +0 -1
  525. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js +0 -346
  526. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js.map +0 -1
  527. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts +0 -30
  528. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts.map +0 -1
  529. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js +0 -45
  530. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js.map +0 -1
  531. package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts +0 -68
  532. package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts.map +0 -1
  533. package/dist/vendored/brepjs/2d/blueprints/blueprints.js +0 -116
  534. package/dist/vendored/brepjs/2d/blueprints/blueprints.js.map +0 -1
  535. package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts +0 -68
  536. package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts.map +0 -1
  537. package/dist/vendored/brepjs/2d/blueprints/boolean2D.js +0 -362
  538. package/dist/vendored/brepjs/2d/blueprints/boolean2D.js.map +0 -1
  539. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts +0 -34
  540. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts.map +0 -1
  541. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js +0 -176
  542. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js.map +0 -1
  543. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts +0 -55
  544. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts.map +0 -1
  545. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js +0 -110
  546. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js.map +0 -1
  547. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts +0 -41
  548. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts.map +0 -1
  549. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js +0 -90
  550. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js.map +0 -1
  551. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts +0 -85
  552. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts.map +0 -1
  553. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js +0 -136
  554. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js.map +0 -1
  555. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts +0 -48
  556. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts.map +0 -1
  557. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js +0 -154
  558. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js.map +0 -1
  559. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts +0 -342
  560. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts.map +0 -1
  561. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js +0 -32
  562. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js.map +0 -1
  563. package/dist/vendored/brepjs/2d/blueprints/index.d.ts +0 -16
  564. package/dist/vendored/brepjs/2d/blueprints/index.d.ts.map +0 -1
  565. package/dist/vendored/brepjs/2d/blueprints/index.js +0 -13
  566. package/dist/vendored/brepjs/2d/blueprints/index.js.map +0 -1
  567. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts +0 -18
  568. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts.map +0 -1
  569. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js +0 -230
  570. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js.map +0 -1
  571. package/dist/vendored/brepjs/2d/blueprints/lib.d.ts +0 -73
  572. package/dist/vendored/brepjs/2d/blueprints/lib.d.ts.map +0 -1
  573. package/dist/vendored/brepjs/2d/blueprints/lib.js +0 -103
  574. package/dist/vendored/brepjs/2d/blueprints/lib.js.map +0 -1
  575. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts +0 -31
  576. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts.map +0 -1
  577. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js +0 -226
  578. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js.map +0 -1
  579. package/dist/vendored/brepjs/2d/blueprints/svg.d.ts +0 -22
  580. package/dist/vendored/brepjs/2d/blueprints/svg.d.ts.map +0 -1
  581. package/dist/vendored/brepjs/2d/blueprints/svg.js +0 -30
  582. package/dist/vendored/brepjs/2d/blueprints/svg.js.map +0 -1
  583. package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts +0 -124
  584. package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts.map +0 -1
  585. package/dist/vendored/brepjs/2d/curve2dGeometryFns.js +0 -235
  586. package/dist/vendored/brepjs/2d/curve2dGeometryFns.js.map +0 -1
  587. package/dist/vendored/brepjs/2d/curves.d.ts +0 -45
  588. package/dist/vendored/brepjs/2d/curves.d.ts.map +0 -1
  589. package/dist/vendored/brepjs/2d/curves.js +0 -139
  590. package/dist/vendored/brepjs/2d/curves.js.map +0 -1
  591. package/dist/vendored/brepjs/2d/lib/approximations.d.ts +0 -47
  592. package/dist/vendored/brepjs/2d/lib/approximations.d.ts.map +0 -1
  593. package/dist/vendored/brepjs/2d/lib/approximations.js +0 -82
  594. package/dist/vendored/brepjs/2d/lib/approximations.js.map +0 -1
  595. package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts +0 -39
  596. package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts.map +0 -1
  597. package/dist/vendored/brepjs/2d/lib/boundingBox2d.js +0 -88
  598. package/dist/vendored/brepjs/2d/lib/boundingBox2d.js.map +0 -1
  599. package/dist/vendored/brepjs/2d/lib/curve2D.d.ts +0 -82
  600. package/dist/vendored/brepjs/2d/lib/curve2D.d.ts.map +0 -1
  601. package/dist/vendored/brepjs/2d/lib/curve2D.js +0 -258
  602. package/dist/vendored/brepjs/2d/lib/curve2D.js.map +0 -1
  603. package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts +0 -53
  604. package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts.map +0 -1
  605. package/dist/vendored/brepjs/2d/lib/curve2dFns.js +0 -69
  606. package/dist/vendored/brepjs/2d/lib/curve2dFns.js.map +0 -1
  607. package/dist/vendored/brepjs/2d/lib/customCorners.d.ts +0 -29
  608. package/dist/vendored/brepjs/2d/lib/customCorners.d.ts.map +0 -1
  609. package/dist/vendored/brepjs/2d/lib/customCorners.js +0 -237
  610. package/dist/vendored/brepjs/2d/lib/customCorners.js.map +0 -1
  611. package/dist/vendored/brepjs/2d/lib/definitions.d.ts +0 -12
  612. package/dist/vendored/brepjs/2d/lib/definitions.d.ts.map +0 -1
  613. package/dist/vendored/brepjs/2d/lib/definitions.js +0 -19
  614. package/dist/vendored/brepjs/2d/lib/definitions.js.map +0 -1
  615. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts +0 -21
  616. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts.map +0 -1
  617. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js +0 -71
  618. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js.map +0 -1
  619. package/dist/vendored/brepjs/2d/lib/index.d.ts +0 -14
  620. package/dist/vendored/brepjs/2d/lib/index.d.ts.map +0 -1
  621. package/dist/vendored/brepjs/2d/lib/index.js +0 -14
  622. package/dist/vendored/brepjs/2d/lib/index.js.map +0 -1
  623. package/dist/vendored/brepjs/2d/lib/intersections.d.ts +0 -34
  624. package/dist/vendored/brepjs/2d/lib/intersections.d.ts.map +0 -1
  625. package/dist/vendored/brepjs/2d/lib/intersections.js +0 -77
  626. package/dist/vendored/brepjs/2d/lib/intersections.js.map +0 -1
  627. package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts +0 -63
  628. package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts.map +0 -1
  629. package/dist/vendored/brepjs/2d/lib/makeCurves.js +0 -117
  630. package/dist/vendored/brepjs/2d/lib/makeCurves.js.map +0 -1
  631. package/dist/vendored/brepjs/2d/lib/offset.d.ts +0 -30
  632. package/dist/vendored/brepjs/2d/lib/offset.d.ts.map +0 -1
  633. package/dist/vendored/brepjs/2d/lib/offset.js +0 -109
  634. package/dist/vendored/brepjs/2d/lib/offset.js.map +0 -1
  635. package/dist/vendored/brepjs/2d/lib/precision.d.ts +0 -12
  636. package/dist/vendored/brepjs/2d/lib/precision.d.ts.map +0 -1
  637. package/dist/vendored/brepjs/2d/lib/precision.js +0 -12
  638. package/dist/vendored/brepjs/2d/lib/precision.js.map +0 -1
  639. package/dist/vendored/brepjs/2d/lib/stitching.d.ts +0 -15
  640. package/dist/vendored/brepjs/2d/lib/stitching.d.ts.map +0 -1
  641. package/dist/vendored/brepjs/2d/lib/stitching.js +0 -67
  642. package/dist/vendored/brepjs/2d/lib/stitching.js.map +0 -1
  643. package/dist/vendored/brepjs/2d/lib/svgPath.d.ts +0 -4
  644. package/dist/vendored/brepjs/2d/lib/svgPath.d.ts.map +0 -1
  645. package/dist/vendored/brepjs/2d/lib/svgPath.js +0 -114
  646. package/dist/vendored/brepjs/2d/lib/svgPath.js.map +0 -1
  647. package/dist/vendored/brepjs/2d/lib/utils.d.ts +0 -11
  648. package/dist/vendored/brepjs/2d/lib/utils.d.ts.map +0 -1
  649. package/dist/vendored/brepjs/2d/lib/utils.js +0 -24
  650. package/dist/vendored/brepjs/2d/lib/utils.js.map +0 -1
  651. package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts +0 -19
  652. package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts.map +0 -1
  653. package/dist/vendored/brepjs/2d/lib/vectorOperations.js +0 -26
  654. package/dist/vendored/brepjs/2d/lib/vectorOperations.js.map +0 -1
  655. package/dist/vendored/brepjs/2d.d.ts +0 -26
  656. package/dist/vendored/brepjs/2d.d.ts.map +0 -1
  657. package/dist/vendored/brepjs/2d.js +0 -33
  658. package/dist/vendored/brepjs/2d.js.map +0 -1
  659. package/dist/vendored/brepjs/core/constants.d.ts +0 -7
  660. package/dist/vendored/brepjs/core/constants.d.ts.map +0 -1
  661. package/dist/vendored/brepjs/core/constants.js +0 -7
  662. package/dist/vendored/brepjs/core/constants.js.map +0 -1
  663. package/dist/vendored/brepjs/core/curve2dHandle.d.ts +0 -35
  664. package/dist/vendored/brepjs/core/curve2dHandle.d.ts.map +0 -1
  665. package/dist/vendored/brepjs/core/curve2dHandle.js +0 -48
  666. package/dist/vendored/brepjs/core/curve2dHandle.js.map +0 -1
  667. package/dist/vendored/brepjs/core/dimensionTypes.d.ts +0 -61
  668. package/dist/vendored/brepjs/core/dimensionTypes.d.ts.map +0 -1
  669. package/dist/vendored/brepjs/core/dimensionTypes.js +0 -54
  670. package/dist/vendored/brepjs/core/dimensionTypes.js.map +0 -1
  671. package/dist/vendored/brepjs/core/disposal.d.ts +0 -136
  672. package/dist/vendored/brepjs/core/disposal.d.ts.map +0 -1
  673. package/dist/vendored/brepjs/core/disposal.js +0 -441
  674. package/dist/vendored/brepjs/core/disposal.js.map +0 -1
  675. package/dist/vendored/brepjs/core/errors.d.ts +0 -191
  676. package/dist/vendored/brepjs/core/errors.d.ts.map +0 -1
  677. package/dist/vendored/brepjs/core/errors.js +0 -238
  678. package/dist/vendored/brepjs/core/errors.js.map +0 -1
  679. package/dist/vendored/brepjs/core/kernelBoundary.d.ts +0 -40
  680. package/dist/vendored/brepjs/core/kernelBoundary.d.ts.map +0 -1
  681. package/dist/vendored/brepjs/core/kernelBoundary.js +0 -99
  682. package/dist/vendored/brepjs/core/kernelBoundary.js.map +0 -1
  683. package/dist/vendored/brepjs/core/kernelCall.d.ts +0 -48
  684. package/dist/vendored/brepjs/core/kernelCall.d.ts.map +0 -1
  685. package/dist/vendored/brepjs/core/kernelCall.js +0 -154
  686. package/dist/vendored/brepjs/core/kernelCall.js.map +0 -1
  687. package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts +0 -17
  688. package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts.map +0 -1
  689. package/dist/vendored/brepjs/core/kernelErrorTranslation.js +0 -98
  690. package/dist/vendored/brepjs/core/kernelErrorTranslation.js.map +0 -1
  691. package/dist/vendored/brepjs/core/planeOps.d.ts +0 -62
  692. package/dist/vendored/brepjs/core/planeOps.d.ts.map +0 -1
  693. package/dist/vendored/brepjs/core/planeOps.js +0 -148
  694. package/dist/vendored/brepjs/core/planeOps.js.map +0 -1
  695. package/dist/vendored/brepjs/core/planeTypes.d.ts +0 -22
  696. package/dist/vendored/brepjs/core/planeTypes.d.ts.map +0 -1
  697. package/dist/vendored/brepjs/core/planeTypes.js +0 -6
  698. package/dist/vendored/brepjs/core/planeTypes.js.map +0 -1
  699. package/dist/vendored/brepjs/core/result.d.ts +0 -85
  700. package/dist/vendored/brepjs/core/result.d.ts.map +0 -1
  701. package/dist/vendored/brepjs/core/result.js +0 -212
  702. package/dist/vendored/brepjs/core/result.js.map +0 -1
  703. package/dist/vendored/brepjs/core/shapeTypeCache.d.ts +0 -27
  704. package/dist/vendored/brepjs/core/shapeTypeCache.d.ts.map +0 -1
  705. package/dist/vendored/brepjs/core/shapeTypeCache.js +0 -40
  706. package/dist/vendored/brepjs/core/shapeTypeCache.js.map +0 -1
  707. package/dist/vendored/brepjs/core/shapeTypes.d.ts +0 -199
  708. package/dist/vendored/brepjs/core/shapeTypes.d.ts.map +0 -1
  709. package/dist/vendored/brepjs/core/shapeTypes.js +0 -267
  710. package/dist/vendored/brepjs/core/shapeTypes.js.map +0 -1
  711. package/dist/vendored/brepjs/core/typeDiscriminants.d.ts +0 -25
  712. package/dist/vendored/brepjs/core/typeDiscriminants.d.ts.map +0 -1
  713. package/dist/vendored/brepjs/core/typeDiscriminants.js +0 -50
  714. package/dist/vendored/brepjs/core/typeDiscriminants.js.map +0 -1
  715. package/dist/vendored/brepjs/core/types.d.ts +0 -51
  716. package/dist/vendored/brepjs/core/types.d.ts.map +0 -1
  717. package/dist/vendored/brepjs/core/types.js +0 -35
  718. package/dist/vendored/brepjs/core/types.js.map +0 -1
  719. package/dist/vendored/brepjs/core/validityTypes.d.ts +0 -143
  720. package/dist/vendored/brepjs/core/validityTypes.d.ts.map +0 -1
  721. package/dist/vendored/brepjs/core/validityTypes.js +0 -174
  722. package/dist/vendored/brepjs/core/validityTypes.js.map +0 -1
  723. package/dist/vendored/brepjs/core/vecOps.d.ts +0 -53
  724. package/dist/vendored/brepjs/core/vecOps.d.ts.map +0 -1
  725. package/dist/vendored/brepjs/core/vecOps.js +0 -131
  726. package/dist/vendored/brepjs/core/vecOps.js.map +0 -1
  727. package/dist/vendored/brepjs/core.d.ts +0 -17
  728. package/dist/vendored/brepjs/core.d.ts.map +0 -1
  729. package/dist/vendored/brepjs/core.js +0 -13
  730. package/dist/vendored/brepjs/core.js.map +0 -1
  731. package/dist/vendored/brepjs/gear/gearFns.d.ts +0 -148
  732. package/dist/vendored/brepjs/gear/gearFns.d.ts.map +0 -1
  733. package/dist/vendored/brepjs/gear/gearFns.js +0 -479
  734. package/dist/vendored/brepjs/gear/gearFns.js.map +0 -1
  735. package/dist/vendored/brepjs/gear/gearMath.d.ts +0 -89
  736. package/dist/vendored/brepjs/gear/gearMath.d.ts.map +0 -1
  737. package/dist/vendored/brepjs/gear/gearMath.js +0 -195
  738. package/dist/vendored/brepjs/gear/gearMath.js.map +0 -1
  739. package/dist/vendored/brepjs/gear/gearProfile.d.ts +0 -17
  740. package/dist/vendored/brepjs/gear/gearProfile.d.ts.map +0 -1
  741. package/dist/vendored/brepjs/gear/gearProfile.js +0 -159
  742. package/dist/vendored/brepjs/gear/gearProfile.js.map +0 -1
  743. package/dist/vendored/brepjs/gear/index.d.ts +0 -4
  744. package/dist/vendored/brepjs/gear/index.d.ts.map +0 -1
  745. package/dist/vendored/brepjs/gear/index.js +0 -4
  746. package/dist/vendored/brepjs/gear/index.js.map +0 -1
  747. package/dist/vendored/brepjs/index.d.ts +0 -152
  748. package/dist/vendored/brepjs/index.d.ts.map +0 -1
  749. package/dist/vendored/brepjs/index.js +0 -195
  750. package/dist/vendored/brepjs/index.js.map +0 -1
  751. package/dist/vendored/brepjs/io/dxfExportFns.d.ts +0 -74
  752. package/dist/vendored/brepjs/io/dxfExportFns.d.ts.map +0 -1
  753. package/dist/vendored/brepjs/io/dxfExportFns.js +0 -134
  754. package/dist/vendored/brepjs/io/dxfExportFns.js.map +0 -1
  755. package/dist/vendored/brepjs/io/dxfImportFns.d.ts +0 -20
  756. package/dist/vendored/brepjs/io/dxfImportFns.d.ts.map +0 -1
  757. package/dist/vendored/brepjs/io/dxfImportFns.js +0 -132
  758. package/dist/vendored/brepjs/io/dxfImportFns.js.map +0 -1
  759. package/dist/vendored/brepjs/io/gltfExportFns.d.ts +0 -97
  760. package/dist/vendored/brepjs/io/gltfExportFns.d.ts.map +0 -1
  761. package/dist/vendored/brepjs/io/gltfExportFns.js +0 -460
  762. package/dist/vendored/brepjs/io/gltfExportFns.js.map +0 -1
  763. package/dist/vendored/brepjs/io/gltfImportFns.d.ts +0 -21
  764. package/dist/vendored/brepjs/io/gltfImportFns.d.ts.map +0 -1
  765. package/dist/vendored/brepjs/io/gltfImportFns.js +0 -33
  766. package/dist/vendored/brepjs/io/gltfImportFns.js.map +0 -1
  767. package/dist/vendored/brepjs/io/importFns.d.ts +0 -56
  768. package/dist/vendored/brepjs/io/importFns.d.ts.map +0 -1
  769. package/dist/vendored/brepjs/io/importFns.js +0 -108
  770. package/dist/vendored/brepjs/io/importFns.js.map +0 -1
  771. package/dist/vendored/brepjs/io/ioUtils.d.ts +0 -22
  772. package/dist/vendored/brepjs/io/ioUtils.d.ts.map +0 -1
  773. package/dist/vendored/brepjs/io/ioUtils.js +0 -56
  774. package/dist/vendored/brepjs/io/ioUtils.js.map +0 -1
  775. package/dist/vendored/brepjs/io/objExportFns.d.ts +0 -23
  776. package/dist/vendored/brepjs/io/objExportFns.d.ts.map +0 -1
  777. package/dist/vendored/brepjs/io/objExportFns.js +0 -67
  778. package/dist/vendored/brepjs/io/objExportFns.js.map +0 -1
  779. package/dist/vendored/brepjs/io/objImportFns.d.ts +0 -26
  780. package/dist/vendored/brepjs/io/objImportFns.d.ts.map +0 -1
  781. package/dist/vendored/brepjs/io/objImportFns.js +0 -96
  782. package/dist/vendored/brepjs/io/objImportFns.js.map +0 -1
  783. package/dist/vendored/brepjs/io/stepConfigFns.d.ts +0 -30
  784. package/dist/vendored/brepjs/io/stepConfigFns.d.ts.map +0 -1
  785. package/dist/vendored/brepjs/io/stepConfigFns.js +0 -30
  786. package/dist/vendored/brepjs/io/stepConfigFns.js.map +0 -1
  787. package/dist/vendored/brepjs/io/svgImportFns.d.ts +0 -58
  788. package/dist/vendored/brepjs/io/svgImportFns.d.ts.map +0 -1
  789. package/dist/vendored/brepjs/io/svgImportFns.js +0 -394
  790. package/dist/vendored/brepjs/io/svgImportFns.js.map +0 -1
  791. package/dist/vendored/brepjs/io/threemfExportFns.d.ts +0 -48
  792. package/dist/vendored/brepjs/io/threemfExportFns.d.ts.map +0 -1
  793. package/dist/vendored/brepjs/io/threemfExportFns.js +0 -345
  794. package/dist/vendored/brepjs/io/threemfExportFns.js.map +0 -1
  795. package/dist/vendored/brepjs/io/threemfImportFns.d.ts +0 -22
  796. package/dist/vendored/brepjs/io/threemfImportFns.d.ts.map +0 -1
  797. package/dist/vendored/brepjs/io/threemfImportFns.js +0 -350
  798. package/dist/vendored/brepjs/io/threemfImportFns.js.map +0 -1
  799. package/dist/vendored/brepjs/io.d.ts +0 -17
  800. package/dist/vendored/brepjs/io.d.ts.map +0 -1
  801. package/dist/vendored/brepjs/io.js +0 -20
  802. package/dist/vendored/brepjs/io.js.map +0 -1
  803. package/dist/vendored/brepjs/kernel/capabilities.d.ts +0 -36
  804. package/dist/vendored/brepjs/kernel/capabilities.d.ts.map +0 -1
  805. package/dist/vendored/brepjs/kernel/capabilities.js +0 -35
  806. package/dist/vendored/brepjs/kernel/capabilities.js.map +0 -1
  807. package/dist/vendored/brepjs/kernel/geometry2d.d.ts +0 -96
  808. package/dist/vendored/brepjs/kernel/geometry2d.d.ts.map +0 -1
  809. package/dist/vendored/brepjs/kernel/geometry2d.js +0 -885
  810. package/dist/vendored/brepjs/kernel/geometry2d.js.map +0 -1
  811. package/dist/vendored/brepjs/kernel/hullGeometry.d.ts +0 -23
  812. package/dist/vendored/brepjs/kernel/hullGeometry.d.ts.map +0 -1
  813. package/dist/vendored/brepjs/kernel/hullGeometry.js +0 -312
  814. package/dist/vendored/brepjs/kernel/hullGeometry.js.map +0 -1
  815. package/dist/vendored/brepjs/kernel/index.d.ts +0 -73
  816. package/dist/vendored/brepjs/kernel/index.d.ts.map +0 -1
  817. package/dist/vendored/brepjs/kernel/index.js +0 -161
  818. package/dist/vendored/brepjs/kernel/index.js.map +0 -1
  819. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts +0 -44
  820. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts.map +0 -1
  821. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js +0 -11
  822. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js.map +0 -1
  823. package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts +0 -67
  824. package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts.map +0 -1
  825. package/dist/vendored/brepjs/kernel/interfaces/builderOps.js +0 -12
  826. package/dist/vendored/brepjs/kernel/interfaces/builderOps.js.map +0 -1
  827. package/dist/vendored/brepjs/kernel/interfaces/core.d.ts +0 -46
  828. package/dist/vendored/brepjs/kernel/interfaces/core.d.ts.map +0 -1
  829. package/dist/vendored/brepjs/kernel/interfaces/core.js +0 -11
  830. package/dist/vendored/brepjs/kernel/interfaces/core.js.map +0 -1
  831. package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts +0 -53
  832. package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts.map +0 -1
  833. package/dist/vendored/brepjs/kernel/interfaces/curveOps.js +0 -12
  834. package/dist/vendored/brepjs/kernel/interfaces/curveOps.js.map +0 -1
  835. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts +0 -32
  836. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts.map +0 -1
  837. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js +0 -14
  838. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js.map +0 -1
  839. package/dist/vendored/brepjs/kernel/interfaces/index.d.ts +0 -43
  840. package/dist/vendored/brepjs/kernel/interfaces/index.d.ts.map +0 -1
  841. package/dist/vendored/brepjs/kernel/interfaces/index.js +0 -12
  842. package/dist/vendored/brepjs/kernel/interfaces/index.js.map +0 -1
  843. package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts +0 -65
  844. package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts.map +0 -1
  845. package/dist/vendored/brepjs/kernel/interfaces/ioOps.js +0 -9
  846. package/dist/vendored/brepjs/kernel/interfaces/ioOps.js.map +0 -1
  847. package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts +0 -55
  848. package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts.map +0 -1
  849. package/dist/vendored/brepjs/kernel/interfaces/measureOps.js +0 -9
  850. package/dist/vendored/brepjs/kernel/interfaces/measureOps.js.map +0 -1
  851. package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts +0 -25
  852. package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts.map +0 -1
  853. package/dist/vendored/brepjs/kernel/interfaces/meshOps.js +0 -8
  854. package/dist/vendored/brepjs/kernel/interfaces/meshOps.js.map +0 -1
  855. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts +0 -53
  856. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts.map +0 -1
  857. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js +0 -10
  858. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js.map +0 -1
  859. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts +0 -22
  860. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts.map +0 -1
  861. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js +0 -11
  862. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js.map +0 -1
  863. package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts +0 -43
  864. package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts.map +0 -1
  865. package/dist/vendored/brepjs/kernel/interfaces/repairOps.js +0 -9
  866. package/dist/vendored/brepjs/kernel/interfaces/repairOps.js.map +0 -1
  867. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts +0 -72
  868. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts.map +0 -1
  869. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js +0 -13
  870. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js.map +0 -1
  871. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts +0 -73
  872. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts.map +0 -1
  873. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js +0 -11
  874. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js.map +0 -1
  875. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts +0 -62
  876. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts.map +0 -1
  877. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js +0 -9
  878. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js.map +0 -1
  879. package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts +0 -80
  880. package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts.map +0 -1
  881. package/dist/vendored/brepjs/kernel/interfaces/transformOps.js +0 -11
  882. package/dist/vendored/brepjs/kernel/interfaces/transformOps.js.map +0 -1
  883. package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts +0 -145
  884. package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts.map +0 -1
  885. package/dist/vendored/brepjs/kernel/kernel2dTypes.js +0 -18
  886. package/dist/vendored/brepjs/kernel/kernel2dTypes.js.map +0 -1
  887. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts +0 -41
  888. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts.map +0 -1
  889. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js +0 -2
  890. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js.map +0 -1
  891. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts +0 -17
  892. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts.map +0 -1
  893. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js +0 -75
  894. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js.map +0 -1
  895. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts +0 -36
  896. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts.map +0 -1
  897. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js +0 -116
  898. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js.map +0 -1
  899. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts +0 -43
  900. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts.map +0 -1
  901. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js +0 -292
  902. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js.map +0 -1
  903. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts +0 -34
  904. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts.map +0 -1
  905. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js +0 -164
  906. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js.map +0 -1
  907. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts +0 -26
  908. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts.map +0 -1
  909. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js +0 -256
  910. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js.map +0 -1
  911. package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts +0 -42
  912. package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts.map +0 -1
  913. package/dist/vendored/brepjs/kernel/occtWasm/helpers.js +0 -146
  914. package/dist/vendored/brepjs/kernel/occtWasm/helpers.js.map +0 -1
  915. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts +0 -17
  916. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts.map +0 -1
  917. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js +0 -55
  918. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js.map +0 -1
  919. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts +0 -58
  920. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts.map +0 -1
  921. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js +0 -303
  922. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js.map +0 -1
  923. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts +0 -113
  924. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts.map +0 -1
  925. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js +0 -731
  926. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js.map +0 -1
  927. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts +0 -62
  928. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts.map +0 -1
  929. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js +0 -338
  930. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js.map +0 -1
  931. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts +0 -12
  932. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts.map +0 -1
  933. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js +0 -120
  934. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js.map +0 -1
  935. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts +0 -20
  936. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts.map +0 -1
  937. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js +0 -187
  938. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js.map +0 -1
  939. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts +0 -513
  940. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts.map +0 -1
  941. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js +0 -1016
  942. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js.map +0 -1
  943. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts +0 -332
  944. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts.map +0 -1
  945. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js +0 -10
  946. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js.map +0 -1
  947. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts +0 -16
  948. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts.map +0 -1
  949. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js +0 -64
  950. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js.map +0 -1
  951. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts +0 -16
  952. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts.map +0 -1
  953. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js +0 -38
  954. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js.map +0 -1
  955. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts +0 -56
  956. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts.map +0 -1
  957. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js +0 -247
  958. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js.map +0 -1
  959. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts +0 -56
  960. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts.map +0 -1
  961. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js +0 -235
  962. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js.map +0 -1
  963. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts +0 -25
  964. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts.map +0 -1
  965. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js +0 -127
  966. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js.map +0 -1
  967. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts +0 -40
  968. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts.map +0 -1
  969. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js +0 -275
  970. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js.map +0 -1
  971. package/dist/vendored/brepjs/kernel/quality.d.ts +0 -28
  972. package/dist/vendored/brepjs/kernel/quality.d.ts.map +0 -1
  973. package/dist/vendored/brepjs/kernel/quality.js +0 -40
  974. package/dist/vendored/brepjs/kernel/quality.js.map +0 -1
  975. package/dist/vendored/brepjs/kernel/solverAdapter.d.ts +0 -50
  976. package/dist/vendored/brepjs/kernel/solverAdapter.d.ts.map +0 -1
  977. package/dist/vendored/brepjs/kernel/solverAdapter.js +0 -330
  978. package/dist/vendored/brepjs/kernel/solverAdapter.js.map +0 -1
  979. package/dist/vendored/brepjs/kernel/stlBuilder.d.ts +0 -21
  980. package/dist/vendored/brepjs/kernel/stlBuilder.d.ts.map +0 -1
  981. package/dist/vendored/brepjs/kernel/stlBuilder.js +0 -106
  982. package/dist/vendored/brepjs/kernel/stlBuilder.js.map +0 -1
  983. package/dist/vendored/brepjs/kernel/types.d.ts +0 -214
  984. package/dist/vendored/brepjs/kernel/types.d.ts.map +0 -1
  985. package/dist/vendored/brepjs/kernel/types.js +0 -22
  986. package/dist/vendored/brepjs/kernel/types.js.map +0 -1
  987. package/dist/vendored/brepjs/kernel/unsupported.d.ts +0 -15
  988. package/dist/vendored/brepjs/kernel/unsupported.d.ts.map +0 -1
  989. package/dist/vendored/brepjs/kernel/unsupported.js +0 -25
  990. package/dist/vendored/brepjs/kernel/unsupported.js.map +0 -1
  991. package/dist/vendored/brepjs/measurement/interferenceFns.d.ts +0 -68
  992. package/dist/vendored/brepjs/measurement/interferenceFns.d.ts.map +0 -1
  993. package/dist/vendored/brepjs/measurement/interferenceFns.js +0 -102
  994. package/dist/vendored/brepjs/measurement/interferenceFns.js.map +0 -1
  995. package/dist/vendored/brepjs/measurement/measureCache.d.ts +0 -20
  996. package/dist/vendored/brepjs/measurement/measureCache.d.ts.map +0 -1
  997. package/dist/vendored/brepjs/measurement/measureCache.js +0 -28
  998. package/dist/vendored/brepjs/measurement/measureCache.js.map +0 -1
  999. package/dist/vendored/brepjs/measurement/measureFns.d.ts +0 -92
  1000. package/dist/vendored/brepjs/measurement/measureFns.d.ts.map +0 -1
  1001. package/dist/vendored/brepjs/measurement/measureFns.js +0 -239
  1002. package/dist/vendored/brepjs/measurement/measureFns.js.map +0 -1
  1003. package/dist/vendored/brepjs/measurement/measureTypes.d.ts +0 -35
  1004. package/dist/vendored/brepjs/measurement/measureTypes.d.ts.map +0 -1
  1005. package/dist/vendored/brepjs/measurement/measureTypes.js +0 -7
  1006. package/dist/vendored/brepjs/measurement/measureTypes.js.map +0 -1
  1007. package/dist/vendored/brepjs/measurement.d.ts +0 -5
  1008. package/dist/vendored/brepjs/measurement.d.ts.map +0 -1
  1009. package/dist/vendored/brepjs/measurement.js +0 -5
  1010. package/dist/vendored/brepjs/measurement.js.map +0 -1
  1011. package/dist/vendored/brepjs/ns/booleans.d.ts +0 -11
  1012. package/dist/vendored/brepjs/ns/booleans.d.ts.map +0 -1
  1013. package/dist/vendored/brepjs/ns/booleans.js +0 -11
  1014. package/dist/vendored/brepjs/ns/booleans.js.map +0 -1
  1015. package/dist/vendored/brepjs/ns/construction.d.ts +0 -10
  1016. package/dist/vendored/brepjs/ns/construction.d.ts.map +0 -1
  1017. package/dist/vendored/brepjs/ns/construction.js +0 -10
  1018. package/dist/vendored/brepjs/ns/construction.js.map +0 -1
  1019. package/dist/vendored/brepjs/ns/ioNs.d.ts +0 -18
  1020. package/dist/vendored/brepjs/ns/ioNs.d.ts.map +0 -1
  1021. package/dist/vendored/brepjs/ns/ioNs.js +0 -20
  1022. package/dist/vendored/brepjs/ns/ioNs.js.map +0 -1
  1023. package/dist/vendored/brepjs/ns/measurement.d.ts +0 -6
  1024. package/dist/vendored/brepjs/ns/measurement.d.ts.map +0 -1
  1025. package/dist/vendored/brepjs/ns/measurement.js +0 -6
  1026. package/dist/vendored/brepjs/ns/measurement.js.map +0 -1
  1027. package/dist/vendored/brepjs/ns/modifiers.d.ts +0 -6
  1028. package/dist/vendored/brepjs/ns/modifiers.d.ts.map +0 -1
  1029. package/dist/vendored/brepjs/ns/modifiers.js +0 -6
  1030. package/dist/vendored/brepjs/ns/modifiers.js.map +0 -1
  1031. package/dist/vendored/brepjs/ns/patterns.d.ts +0 -5
  1032. package/dist/vendored/brepjs/ns/patterns.d.ts.map +0 -1
  1033. package/dist/vendored/brepjs/ns/patterns.js +0 -5
  1034. package/dist/vendored/brepjs/ns/patterns.js.map +0 -1
  1035. package/dist/vendored/brepjs/ns/primitives.d.ts +0 -7
  1036. package/dist/vendored/brepjs/ns/primitives.d.ts.map +0 -1
  1037. package/dist/vendored/brepjs/ns/primitives.js +0 -7
  1038. package/dist/vendored/brepjs/ns/primitives.js.map +0 -1
  1039. package/dist/vendored/brepjs/ns/query.d.ts +0 -6
  1040. package/dist/vendored/brepjs/ns/query.d.ts.map +0 -1
  1041. package/dist/vendored/brepjs/ns/query.js +0 -6
  1042. package/dist/vendored/brepjs/ns/query.js.map +0 -1
  1043. package/dist/vendored/brepjs/ns/transforms.d.ts +0 -5
  1044. package/dist/vendored/brepjs/ns/transforms.d.ts.map +0 -1
  1045. package/dist/vendored/brepjs/ns/transforms.js +0 -5
  1046. package/dist/vendored/brepjs/ns/transforms.js.map +0 -1
  1047. package/dist/vendored/brepjs/operations/api.d.ts +0 -39
  1048. package/dist/vendored/brepjs/operations/api.d.ts.map +0 -1
  1049. package/dist/vendored/brepjs/operations/api.js +0 -41
  1050. package/dist/vendored/brepjs/operations/api.js.map +0 -1
  1051. package/dist/vendored/brepjs/operations/assemblyFns.d.ts +0 -54
  1052. package/dist/vendored/brepjs/operations/assemblyFns.d.ts.map +0 -1
  1053. package/dist/vendored/brepjs/operations/assemblyFns.js +0 -91
  1054. package/dist/vendored/brepjs/operations/assemblyFns.js.map +0 -1
  1055. package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts +0 -43
  1056. package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts.map +0 -1
  1057. package/dist/vendored/brepjs/operations/compoundOpsFns.js +0 -368
  1058. package/dist/vendored/brepjs/operations/compoundOpsFns.js.map +0 -1
  1059. package/dist/vendored/brepjs/operations/convexHullFns.d.ts +0 -27
  1060. package/dist/vendored/brepjs/operations/convexHullFns.d.ts.map +0 -1
  1061. package/dist/vendored/brepjs/operations/convexHullFns.js +0 -50
  1062. package/dist/vendored/brepjs/operations/convexHullFns.js.map +0 -1
  1063. package/dist/vendored/brepjs/operations/dhFns.d.ts +0 -47
  1064. package/dist/vendored/brepjs/operations/dhFns.d.ts.map +0 -1
  1065. package/dist/vendored/brepjs/operations/dhFns.js +0 -53
  1066. package/dist/vendored/brepjs/operations/dhFns.js.map +0 -1
  1067. package/dist/vendored/brepjs/operations/exporterFns.d.ts +0 -47
  1068. package/dist/vendored/brepjs/operations/exporterFns.d.ts.map +0 -1
  1069. package/dist/vendored/brepjs/operations/exporterFns.js +0 -66
  1070. package/dist/vendored/brepjs/operations/exporterFns.js.map +0 -1
  1071. package/dist/vendored/brepjs/operations/exporterUtils.d.ts +0 -6
  1072. package/dist/vendored/brepjs/operations/exporterUtils.d.ts.map +0 -1
  1073. package/dist/vendored/brepjs/operations/exporterUtils.js +0 -5
  1074. package/dist/vendored/brepjs/operations/exporterUtils.js.map +0 -1
  1075. package/dist/vendored/brepjs/operations/exporters.d.ts +0 -59
  1076. package/dist/vendored/brepjs/operations/exporters.d.ts.map +0 -1
  1077. package/dist/vendored/brepjs/operations/exporters.js +0 -74
  1078. package/dist/vendored/brepjs/operations/exporters.js.map +0 -1
  1079. package/dist/vendored/brepjs/operations/extrudeFns.d.ts +0 -47
  1080. package/dist/vendored/brepjs/operations/extrudeFns.d.ts.map +0 -1
  1081. package/dist/vendored/brepjs/operations/extrudeFns.js +0 -119
  1082. package/dist/vendored/brepjs/operations/extrudeFns.js.map +0 -1
  1083. package/dist/vendored/brepjs/operations/extrudeUtils.d.ts +0 -63
  1084. package/dist/vendored/brepjs/operations/extrudeUtils.d.ts.map +0 -1
  1085. package/dist/vendored/brepjs/operations/extrudeUtils.js +0 -33
  1086. package/dist/vendored/brepjs/operations/extrudeUtils.js.map +0 -1
  1087. package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts +0 -6
  1088. package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts.map +0 -1
  1089. package/dist/vendored/brepjs/operations/guidedSweepFns.js +0 -6
  1090. package/dist/vendored/brepjs/operations/guidedSweepFns.js.map +0 -1
  1091. package/dist/vendored/brepjs/operations/historyFns.d.ts +0 -83
  1092. package/dist/vendored/brepjs/operations/historyFns.d.ts.map +0 -1
  1093. package/dist/vendored/brepjs/operations/historyFns.js +0 -256
  1094. package/dist/vendored/brepjs/operations/historyFns.js.map +0 -1
  1095. package/dist/vendored/brepjs/operations/ikFns.d.ts +0 -74
  1096. package/dist/vendored/brepjs/operations/ikFns.d.ts.map +0 -1
  1097. package/dist/vendored/brepjs/operations/ikFns.js +0 -320
  1098. package/dist/vendored/brepjs/operations/ikFns.js.map +0 -1
  1099. package/dist/vendored/brepjs/operations/instanceFns.d.ts +0 -76
  1100. package/dist/vendored/brepjs/operations/instanceFns.d.ts.map +0 -1
  1101. package/dist/vendored/brepjs/operations/instanceFns.js +0 -128
  1102. package/dist/vendored/brepjs/operations/instanceFns.js.map +0 -1
  1103. package/dist/vendored/brepjs/operations/jointFns.d.ts +0 -176
  1104. package/dist/vendored/brepjs/operations/jointFns.d.ts.map +0 -1
  1105. package/dist/vendored/brepjs/operations/jointFns.js +0 -298
  1106. package/dist/vendored/brepjs/operations/jointFns.js.map +0 -1
  1107. package/dist/vendored/brepjs/operations/loftFns.d.ts +0 -60
  1108. package/dist/vendored/brepjs/operations/loftFns.d.ts.map +0 -1
  1109. package/dist/vendored/brepjs/operations/loftFns.js +0 -112
  1110. package/dist/vendored/brepjs/operations/loftFns.js.map +0 -1
  1111. package/dist/vendored/brepjs/operations/mateFns.d.ts +0 -53
  1112. package/dist/vendored/brepjs/operations/mateFns.d.ts.map +0 -1
  1113. package/dist/vendored/brepjs/operations/mateFns.js +0 -142
  1114. package/dist/vendored/brepjs/operations/mateFns.js.map +0 -1
  1115. package/dist/vendored/brepjs/operations/multiSweepFns.d.ts +0 -6
  1116. package/dist/vendored/brepjs/operations/multiSweepFns.d.ts.map +0 -1
  1117. package/dist/vendored/brepjs/operations/multiSweepFns.js +0 -6
  1118. package/dist/vendored/brepjs/operations/multiSweepFns.js.map +0 -1
  1119. package/dist/vendored/brepjs/operations/patternFns.d.ts +0 -46
  1120. package/dist/vendored/brepjs/operations/patternFns.d.ts.map +0 -1
  1121. package/dist/vendored/brepjs/operations/patternFns.js +0 -126
  1122. package/dist/vendored/brepjs/operations/patternFns.js.map +0 -1
  1123. package/dist/vendored/brepjs/operations/roofFns.d.ts +0 -25
  1124. package/dist/vendored/brepjs/operations/roofFns.d.ts.map +0 -1
  1125. package/dist/vendored/brepjs/operations/roofFns.js +0 -250
  1126. package/dist/vendored/brepjs/operations/roofFns.js.map +0 -1
  1127. package/dist/vendored/brepjs/operations/straightSkeleton.d.ts +0 -29
  1128. package/dist/vendored/brepjs/operations/straightSkeleton.d.ts.map +0 -1
  1129. package/dist/vendored/brepjs/operations/straightSkeleton.js +0 -440
  1130. package/dist/vendored/brepjs/operations/straightSkeleton.js.map +0 -1
  1131. package/dist/vendored/brepjs/operations/sweepFns.d.ts +0 -121
  1132. package/dist/vendored/brepjs/operations/sweepFns.d.ts.map +0 -1
  1133. package/dist/vendored/brepjs/operations/sweepFns.js +0 -438
  1134. package/dist/vendored/brepjs/operations/sweepFns.js.map +0 -1
  1135. package/dist/vendored/brepjs/operations/threadFns.d.ts +0 -57
  1136. package/dist/vendored/brepjs/operations/threadFns.d.ts.map +0 -1
  1137. package/dist/vendored/brepjs/operations/threadFns.js +0 -145
  1138. package/dist/vendored/brepjs/operations/threadFns.js.map +0 -1
  1139. package/dist/vendored/brepjs/operations/urdfFns.d.ts +0 -48
  1140. package/dist/vendored/brepjs/operations/urdfFns.d.ts.map +0 -1
  1141. package/dist/vendored/brepjs/operations/urdfFns.js +0 -171
  1142. package/dist/vendored/brepjs/operations/urdfFns.js.map +0 -1
  1143. package/dist/vendored/brepjs/operations.d.ts +0 -20
  1144. package/dist/vendored/brepjs/operations.d.ts.map +0 -1
  1145. package/dist/vendored/brepjs/operations.js +0 -26
  1146. package/dist/vendored/brepjs/operations.js.map +0 -1
  1147. package/dist/vendored/brepjs/projection/cameraFns.d.ts +0 -63
  1148. package/dist/vendored/brepjs/projection/cameraFns.d.ts.map +0 -1
  1149. package/dist/vendored/brepjs/projection/cameraFns.js +0 -89
  1150. package/dist/vendored/brepjs/projection/cameraFns.js.map +0 -1
  1151. package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts +0 -14
  1152. package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts.map +0 -1
  1153. package/dist/vendored/brepjs/projection/makeProjectedEdges.js +0 -111
  1154. package/dist/vendored/brepjs/projection/makeProjectedEdges.js.map +0 -1
  1155. package/dist/vendored/brepjs/projection/projectionPlanes.d.ts +0 -18
  1156. package/dist/vendored/brepjs/projection/projectionPlanes.d.ts.map +0 -1
  1157. package/dist/vendored/brepjs/projection/projectionPlanes.js +0 -23
  1158. package/dist/vendored/brepjs/projection/projectionPlanes.js.map +0 -1
  1159. package/dist/vendored/brepjs/projection.d.ts +0 -12
  1160. package/dist/vendored/brepjs/projection.d.ts.map +0 -1
  1161. package/dist/vendored/brepjs/projection.js +0 -12
  1162. package/dist/vendored/brepjs/projection.js.map +0 -1
  1163. package/dist/vendored/brepjs/query/cornerFinder.d.ts +0 -54
  1164. package/dist/vendored/brepjs/query/cornerFinder.d.ts.map +0 -1
  1165. package/dist/vendored/brepjs/query/cornerFinder.js +0 -73
  1166. package/dist/vendored/brepjs/query/cornerFinder.js.map +0 -1
  1167. package/dist/vendored/brepjs/query/directionUtils.d.ts +0 -9
  1168. package/dist/vendored/brepjs/query/directionUtils.d.ts.map +0 -1
  1169. package/dist/vendored/brepjs/query/directionUtils.js +0 -18
  1170. package/dist/vendored/brepjs/query/directionUtils.js.map +0 -1
  1171. package/dist/vendored/brepjs/query/edgeFinder.d.ts +0 -5
  1172. package/dist/vendored/brepjs/query/edgeFinder.d.ts.map +0 -1
  1173. package/dist/vendored/brepjs/query/edgeFinder.js +0 -5
  1174. package/dist/vendored/brepjs/query/edgeFinder.js.map +0 -1
  1175. package/dist/vendored/brepjs/query/faceFinder.d.ts +0 -5
  1176. package/dist/vendored/brepjs/query/faceFinder.d.ts.map +0 -1
  1177. package/dist/vendored/brepjs/query/faceFinder.js +0 -5
  1178. package/dist/vendored/brepjs/query/faceFinder.js.map +0 -1
  1179. package/dist/vendored/brepjs/query/finderCore.d.ts +0 -49
  1180. package/dist/vendored/brepjs/query/finderCore.d.ts.map +0 -1
  1181. package/dist/vendored/brepjs/query/finderCore.js +0 -120
  1182. package/dist/vendored/brepjs/query/finderCore.js.map +0 -1
  1183. package/dist/vendored/brepjs/query/finderFns.d.ts +0 -25
  1184. package/dist/vendored/brepjs/query/finderFns.d.ts.map +0 -1
  1185. package/dist/vendored/brepjs/query/finderFns.js +0 -25
  1186. package/dist/vendored/brepjs/query/finderFns.js.map +0 -1
  1187. package/dist/vendored/brepjs/query/helpers.d.ts +0 -11
  1188. package/dist/vendored/brepjs/query/helpers.d.ts.map +0 -1
  1189. package/dist/vendored/brepjs/query/helpers.js +0 -17
  1190. package/dist/vendored/brepjs/query/helpers.js.map +0 -1
  1191. package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts +0 -15
  1192. package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts.map +0 -1
  1193. package/dist/vendored/brepjs/query/shapeDistanceFilter.js +0 -21
  1194. package/dist/vendored/brepjs/query/shapeDistanceFilter.js.map +0 -1
  1195. package/dist/vendored/brepjs/query/shapeFinders.d.ts +0 -39
  1196. package/dist/vendored/brepjs/query/shapeFinders.d.ts.map +0 -1
  1197. package/dist/vendored/brepjs/query/shapeFinders.js +0 -82
  1198. package/dist/vendored/brepjs/query/shapeFinders.js.map +0 -1
  1199. package/dist/vendored/brepjs/query/vertexFinder.d.ts +0 -19
  1200. package/dist/vendored/brepjs/query/vertexFinder.d.ts.map +0 -1
  1201. package/dist/vendored/brepjs/query/vertexFinder.js +0 -73
  1202. package/dist/vendored/brepjs/query/vertexFinder.js.map +0 -1
  1203. package/dist/vendored/brepjs/query/wireFinder.d.ts +0 -5
  1204. package/dist/vendored/brepjs/query/wireFinder.d.ts.map +0 -1
  1205. package/dist/vendored/brepjs/query/wireFinder.js +0 -5
  1206. package/dist/vendored/brepjs/query/wireFinder.js.map +0 -1
  1207. package/dist/vendored/brepjs/query.d.ts +0 -6
  1208. package/dist/vendored/brepjs/query.d.ts.map +0 -1
  1209. package/dist/vendored/brepjs/query.js +0 -6
  1210. package/dist/vendored/brepjs/query.js.map +0 -1
  1211. package/dist/vendored/brepjs/result.d.ts +0 -7
  1212. package/dist/vendored/brepjs/result.d.ts.map +0 -1
  1213. package/dist/vendored/brepjs/result.js +0 -7
  1214. package/dist/vendored/brepjs/result.js.map +0 -1
  1215. package/dist/vendored/brepjs/shapeRef.d.ts +0 -13
  1216. package/dist/vendored/brepjs/shapeRef.d.ts.map +0 -1
  1217. package/dist/vendored/brepjs/shapeRef.js +0 -13
  1218. package/dist/vendored/brepjs/shapeRef.js.map +0 -1
  1219. package/dist/vendored/brepjs/sketching/cannedSketches.d.ts +0 -144
  1220. package/dist/vendored/brepjs/sketching/cannedSketches.d.ts.map +0 -1
  1221. package/dist/vendored/brepjs/sketching/cannedSketches.js +0 -327
  1222. package/dist/vendored/brepjs/sketching/cannedSketches.js.map +0 -1
  1223. package/dist/vendored/brepjs/sketching/compoundSketch.d.ts +0 -70
  1224. package/dist/vendored/brepjs/sketching/compoundSketch.d.ts.map +0 -1
  1225. package/dist/vendored/brepjs/sketching/compoundSketch.js +0 -87
  1226. package/dist/vendored/brepjs/sketching/compoundSketch.js.map +0 -1
  1227. package/dist/vendored/brepjs/sketching/draw3d.d.ts +0 -22
  1228. package/dist/vendored/brepjs/sketching/draw3d.d.ts.map +0 -1
  1229. package/dist/vendored/brepjs/sketching/draw3d.js +0 -150
  1230. package/dist/vendored/brepjs/sketching/draw3d.js.map +0 -1
  1231. package/dist/vendored/brepjs/sketching/drawFns.d.ts +0 -122
  1232. package/dist/vendored/brepjs/sketching/drawFns.d.ts.map +0 -1
  1233. package/dist/vendored/brepjs/sketching/drawFns.js +0 -129
  1234. package/dist/vendored/brepjs/sketching/drawFns.js.map +0 -1
  1235. package/dist/vendored/brepjs/sketching/drawing.d.ts +0 -128
  1236. package/dist/vendored/brepjs/sketching/drawing.d.ts.map +0 -1
  1237. package/dist/vendored/brepjs/sketching/drawing.js +0 -275
  1238. package/dist/vendored/brepjs/sketching/drawing.js.map +0 -1
  1239. package/dist/vendored/brepjs/sketching/drawingFactories.d.ts +0 -95
  1240. package/dist/vendored/brepjs/sketching/drawingFactories.d.ts.map +0 -1
  1241. package/dist/vendored/brepjs/sketching/drawingFactories.js +0 -125
  1242. package/dist/vendored/brepjs/sketching/drawingFactories.js.map +0 -1
  1243. package/dist/vendored/brepjs/sketching/drawingPen.d.ts +0 -35
  1244. package/dist/vendored/brepjs/sketching/drawingPen.d.ts.map +0 -1
  1245. package/dist/vendored/brepjs/sketching/drawingPen.js +0 -57
  1246. package/dist/vendored/brepjs/sketching/drawingPen.js.map +0 -1
  1247. package/dist/vendored/brepjs/sketching/faceSketcher.d.ts +0 -53
  1248. package/dist/vendored/brepjs/sketching/faceSketcher.d.ts.map +0 -1
  1249. package/dist/vendored/brepjs/sketching/faceSketcher.js +0 -167
  1250. package/dist/vendored/brepjs/sketching/faceSketcher.js.map +0 -1
  1251. package/dist/vendored/brepjs/sketching/shortcuts.d.ts +0 -16
  1252. package/dist/vendored/brepjs/sketching/shortcuts.d.ts.map +0 -1
  1253. package/dist/vendored/brepjs/sketching/shortcuts.js +0 -24
  1254. package/dist/vendored/brepjs/sketching/shortcuts.js.map +0 -1
  1255. package/dist/vendored/brepjs/sketching/sketch.d.ts +0 -157
  1256. package/dist/vendored/brepjs/sketching/sketch.d.ts.map +0 -1
  1257. package/dist/vendored/brepjs/sketching/sketch.js +0 -151
  1258. package/dist/vendored/brepjs/sketching/sketch.js.map +0 -1
  1259. package/dist/vendored/brepjs/sketching/sketchFns.d.ts +0 -89
  1260. package/dist/vendored/brepjs/sketching/sketchFns.d.ts.map +0 -1
  1261. package/dist/vendored/brepjs/sketching/sketchFns.js +0 -266
  1262. package/dist/vendored/brepjs/sketching/sketchFns.js.map +0 -1
  1263. package/dist/vendored/brepjs/sketching/sketcher.d.ts +0 -70
  1264. package/dist/vendored/brepjs/sketching/sketcher.d.ts.map +0 -1
  1265. package/dist/vendored/brepjs/sketching/sketcher.js +0 -181
  1266. package/dist/vendored/brepjs/sketching/sketcher.js.map +0 -1
  1267. package/dist/vendored/brepjs/sketching/sketches.d.ts +0 -70
  1268. package/dist/vendored/brepjs/sketching/sketches.d.ts.map +0 -1
  1269. package/dist/vendored/brepjs/sketching/sketches.js +0 -91
  1270. package/dist/vendored/brepjs/sketching/sketches.js.map +0 -1
  1271. package/dist/vendored/brepjs/sketching.d.ts +0 -28
  1272. package/dist/vendored/brepjs/sketching.d.ts.map +0 -1
  1273. package/dist/vendored/brepjs/sketching.js +0 -30
  1274. package/dist/vendored/brepjs/sketching.js.map +0 -1
  1275. package/dist/vendored/brepjs/text/fontRegistry.d.ts +0 -23
  1276. package/dist/vendored/brepjs/text/fontRegistry.d.ts.map +0 -1
  1277. package/dist/vendored/brepjs/text/fontRegistry.js +0 -61
  1278. package/dist/vendored/brepjs/text/fontRegistry.js.map +0 -1
  1279. package/dist/vendored/brepjs/text/sketchText.d.ts +0 -31
  1280. package/dist/vendored/brepjs/text/sketchText.d.ts.map +0 -1
  1281. package/dist/vendored/brepjs/text/sketchText.js +0 -30
  1282. package/dist/vendored/brepjs/text/sketchText.js.map +0 -1
  1283. package/dist/vendored/brepjs/text/textBlueprints.d.ts +0 -19
  1284. package/dist/vendored/brepjs/text/textBlueprints.d.ts.map +0 -1
  1285. package/dist/vendored/brepjs/text/textBlueprints.js +0 -61
  1286. package/dist/vendored/brepjs/text/textBlueprints.js.map +0 -1
  1287. package/dist/vendored/brepjs/text/textMetrics.d.ts +0 -40
  1288. package/dist/vendored/brepjs/text/textMetrics.d.ts.map +0 -1
  1289. package/dist/vendored/brepjs/text/textMetrics.js +0 -43
  1290. package/dist/vendored/brepjs/text/textMetrics.js.map +0 -1
  1291. package/dist/vendored/brepjs/text.d.ts +0 -13
  1292. package/dist/vendored/brepjs/text.d.ts.map +0 -1
  1293. package/dist/vendored/brepjs/text.js +0 -13
  1294. package/dist/vendored/brepjs/text.js.map +0 -1
  1295. package/dist/vendored/brepjs/topology/adjacencyFns.d.ts +0 -89
  1296. package/dist/vendored/brepjs/topology/adjacencyFns.d.ts.map +0 -1
  1297. package/dist/vendored/brepjs/topology/adjacencyFns.js +0 -411
  1298. package/dist/vendored/brepjs/topology/adjacencyFns.js.map +0 -1
  1299. package/dist/vendored/brepjs/topology/api.d.ts +0 -145
  1300. package/dist/vendored/brepjs/topology/api.d.ts.map +0 -1
  1301. package/dist/vendored/brepjs/topology/api.js +0 -282
  1302. package/dist/vendored/brepjs/topology/api.js.map +0 -1
  1303. package/dist/vendored/brepjs/topology/apiTypes.d.ts +0 -135
  1304. package/dist/vendored/brepjs/topology/apiTypes.d.ts.map +0 -1
  1305. package/dist/vendored/brepjs/topology/apiTypes.js +0 -24
  1306. package/dist/vendored/brepjs/topology/apiTypes.js.map +0 -1
  1307. package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts +0 -52
  1308. package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts.map +0 -1
  1309. package/dist/vendored/brepjs/topology/booleanBatchFns.js +0 -164
  1310. package/dist/vendored/brepjs/topology/booleanBatchFns.js.map +0 -1
  1311. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts +0 -21
  1312. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts.map +0 -1
  1313. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js +0 -23
  1314. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js.map +0 -1
  1315. package/dist/vendored/brepjs/topology/booleanFns.d.ts +0 -155
  1316. package/dist/vendored/brepjs/topology/booleanFns.d.ts.map +0 -1
  1317. package/dist/vendored/brepjs/topology/booleanFns.js +0 -600
  1318. package/dist/vendored/brepjs/topology/booleanFns.js.map +0 -1
  1319. package/dist/vendored/brepjs/topology/cast.d.ts +0 -48
  1320. package/dist/vendored/brepjs/topology/cast.d.ts.map +0 -1
  1321. package/dist/vendored/brepjs/topology/cast.js +0 -113
  1322. package/dist/vendored/brepjs/topology/cast.js.map +0 -1
  1323. package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts +0 -24
  1324. package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts.map +0 -1
  1325. package/dist/vendored/brepjs/topology/chamferAngleFns.js +0 -64
  1326. package/dist/vendored/brepjs/topology/chamferAngleFns.js.map +0 -1
  1327. package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts +0 -6
  1328. package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts.map +0 -1
  1329. package/dist/vendored/brepjs/topology/compoundOpsFns.js +0 -6
  1330. package/dist/vendored/brepjs/topology/compoundOpsFns.js.map +0 -1
  1331. package/dist/vendored/brepjs/topology/curveBuilders.d.ts +0 -90
  1332. package/dist/vendored/brepjs/topology/curveBuilders.d.ts.map +0 -1
  1333. package/dist/vendored/brepjs/topology/curveBuilders.js +0 -125
  1334. package/dist/vendored/brepjs/topology/curveBuilders.js.map +0 -1
  1335. package/dist/vendored/brepjs/topology/curveFns.d.ts +0 -96
  1336. package/dist/vendored/brepjs/topology/curveFns.d.ts.map +0 -1
  1337. package/dist/vendored/brepjs/topology/curveFns.js +0 -191
  1338. package/dist/vendored/brepjs/topology/curveFns.js.map +0 -1
  1339. package/dist/vendored/brepjs/topology/evolutionFns.d.ts +0 -78
  1340. package/dist/vendored/brepjs/topology/evolutionFns.d.ts.map +0 -1
  1341. package/dist/vendored/brepjs/topology/evolutionFns.js +0 -271
  1342. package/dist/vendored/brepjs/topology/evolutionFns.js.map +0 -1
  1343. package/dist/vendored/brepjs/topology/faceFns.d.ts +0 -86
  1344. package/dist/vendored/brepjs/topology/faceFns.d.ts.map +0 -1
  1345. package/dist/vendored/brepjs/topology/faceFns.js +0 -169
  1346. package/dist/vendored/brepjs/topology/faceFns.js.map +0 -1
  1347. package/dist/vendored/brepjs/topology/healingFns.d.ts +0 -98
  1348. package/dist/vendored/brepjs/topology/healingFns.d.ts.map +0 -1
  1349. package/dist/vendored/brepjs/topology/healingFns.js +0 -338
  1350. package/dist/vendored/brepjs/topology/healingFns.js.map +0 -1
  1351. package/dist/vendored/brepjs/topology/hullFns.d.ts +0 -21
  1352. package/dist/vendored/brepjs/topology/hullFns.d.ts.map +0 -1
  1353. package/dist/vendored/brepjs/topology/hullFns.js +0 -60
  1354. package/dist/vendored/brepjs/topology/hullFns.js.map +0 -1
  1355. package/dist/vendored/brepjs/topology/index.d.ts +0 -14
  1356. package/dist/vendored/brepjs/topology/index.d.ts.map +0 -1
  1357. package/dist/vendored/brepjs/topology/index.js +0 -17
  1358. package/dist/vendored/brepjs/topology/index.js.map +0 -1
  1359. package/dist/vendored/brepjs/topology/meshCache.d.ts +0 -68
  1360. package/dist/vendored/brepjs/topology/meshCache.d.ts.map +0 -1
  1361. package/dist/vendored/brepjs/topology/meshCache.js +0 -117
  1362. package/dist/vendored/brepjs/topology/meshCache.js.map +0 -1
  1363. package/dist/vendored/brepjs/topology/meshFns.d.ts +0 -179
  1364. package/dist/vendored/brepjs/topology/meshFns.d.ts.map +0 -1
  1365. package/dist/vendored/brepjs/topology/meshFns.js +0 -393
  1366. package/dist/vendored/brepjs/topology/meshFns.js.map +0 -1
  1367. package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts +0 -41
  1368. package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts.map +0 -1
  1369. package/dist/vendored/brepjs/topology/metadata/colorFns.js +0 -128
  1370. package/dist/vendored/brepjs/topology/metadata/colorFns.js.map +0 -1
  1371. package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts +0 -44
  1372. package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts.map +0 -1
  1373. package/dist/vendored/brepjs/topology/metadata/faceTagFns.js +0 -168
  1374. package/dist/vendored/brepjs/topology/metadata/faceTagFns.js.map +0 -1
  1375. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts +0 -59
  1376. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts.map +0 -1
  1377. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js +0 -109
  1378. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js.map +0 -1
  1379. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts +0 -43
  1380. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts.map +0 -1
  1381. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js +0 -270
  1382. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js.map +0 -1
  1383. package/dist/vendored/brepjs/topology/minkowskiFns.d.ts +0 -26
  1384. package/dist/vendored/brepjs/topology/minkowskiFns.d.ts.map +0 -1
  1385. package/dist/vendored/brepjs/topology/minkowskiFns.js +0 -136
  1386. package/dist/vendored/brepjs/topology/minkowskiFns.js.map +0 -1
  1387. package/dist/vendored/brepjs/topology/modifierFns.d.ts +0 -87
  1388. package/dist/vendored/brepjs/topology/modifierFns.d.ts.map +0 -1
  1389. package/dist/vendored/brepjs/topology/modifierFns.js +0 -446
  1390. package/dist/vendored/brepjs/topology/modifierFns.js.map +0 -1
  1391. package/dist/vendored/brepjs/topology/nurbsFns.d.ts +0 -13
  1392. package/dist/vendored/brepjs/topology/nurbsFns.d.ts.map +0 -1
  1393. package/dist/vendored/brepjs/topology/nurbsFns.js +0 -22
  1394. package/dist/vendored/brepjs/topology/nurbsFns.js.map +0 -1
  1395. package/dist/vendored/brepjs/topology/polyhedronFns.d.ts +0 -11
  1396. package/dist/vendored/brepjs/topology/polyhedronFns.d.ts.map +0 -1
  1397. package/dist/vendored/brepjs/topology/polyhedronFns.js +0 -47
  1398. package/dist/vendored/brepjs/topology/polyhedronFns.js.map +0 -1
  1399. package/dist/vendored/brepjs/topology/positionFns.d.ts +0 -18
  1400. package/dist/vendored/brepjs/topology/positionFns.d.ts.map +0 -1
  1401. package/dist/vendored/brepjs/topology/positionFns.js +0 -34
  1402. package/dist/vendored/brepjs/topology/positionFns.js.map +0 -1
  1403. package/dist/vendored/brepjs/topology/primitiveFns.d.ts +0 -244
  1404. package/dist/vendored/brepjs/topology/primitiveFns.d.ts.map +0 -1
  1405. package/dist/vendored/brepjs/topology/primitiveFns.js +0 -361
  1406. package/dist/vendored/brepjs/topology/primitiveFns.js.map +0 -1
  1407. package/dist/vendored/brepjs/topology/shapeBooleans.d.ts +0 -14
  1408. package/dist/vendored/brepjs/topology/shapeBooleans.d.ts.map +0 -1
  1409. package/dist/vendored/brepjs/topology/shapeBooleans.js +0 -24
  1410. package/dist/vendored/brepjs/topology/shapeBooleans.js.map +0 -1
  1411. package/dist/vendored/brepjs/topology/shapeFns.d.ts +0 -30
  1412. package/dist/vendored/brepjs/topology/shapeFns.d.ts.map +0 -1
  1413. package/dist/vendored/brepjs/topology/shapeFns.js +0 -50
  1414. package/dist/vendored/brepjs/topology/shapeFns.js.map +0 -1
  1415. package/dist/vendored/brepjs/topology/shapeHelpers.d.ts +0 -9
  1416. package/dist/vendored/brepjs/topology/shapeHelpers.d.ts.map +0 -1
  1417. package/dist/vendored/brepjs/topology/shapeHelpers.js +0 -14
  1418. package/dist/vendored/brepjs/topology/shapeHelpers.js.map +0 -1
  1419. package/dist/vendored/brepjs/topology/shapeModifiers.d.ts +0 -33
  1420. package/dist/vendored/brepjs/topology/shapeModifiers.d.ts.map +0 -1
  1421. package/dist/vendored/brepjs/topology/shapeModifiers.js +0 -28
  1422. package/dist/vendored/brepjs/topology/shapeModifiers.js.map +0 -1
  1423. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts +0 -29
  1424. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts.map +0 -1
  1425. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js +0 -135
  1426. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js.map +0 -1
  1427. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts +0 -25
  1428. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts.map +0 -1
  1429. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js +0 -123
  1430. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js.map +0 -1
  1431. package/dist/vendored/brepjs/topology/shapeRef/index.d.ts +0 -11
  1432. package/dist/vendored/brepjs/topology/shapeRef/index.d.ts.map +0 -1
  1433. package/dist/vendored/brepjs/topology/shapeRef/index.js +0 -10
  1434. package/dist/vendored/brepjs/topology/shapeRef/index.js.map +0 -1
  1435. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts +0 -66
  1436. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts.map +0 -1
  1437. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js +0 -128
  1438. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js.map +0 -1
  1439. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts +0 -18
  1440. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts.map +0 -1
  1441. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js +0 -51
  1442. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js.map +0 -1
  1443. package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts +0 -20
  1444. package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts.map +0 -1
  1445. package/dist/vendored/brepjs/topology/shapeRef/scoring.js +0 -65
  1446. package/dist/vendored/brepjs/topology/shapeRef/scoring.js.map +0 -1
  1447. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts +0 -59
  1448. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts.map +0 -1
  1449. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js +0 -266
  1450. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js.map +0 -1
  1451. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts +0 -153
  1452. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts.map +0 -1
  1453. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js +0 -6
  1454. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js.map +0 -1
  1455. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts +0 -24
  1456. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts.map +0 -1
  1457. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js +0 -128
  1458. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js.map +0 -1
  1459. package/dist/vendored/brepjs/topology/shapeUtils.d.ts +0 -16
  1460. package/dist/vendored/brepjs/topology/shapeUtils.d.ts.map +0 -1
  1461. package/dist/vendored/brepjs/topology/shapeUtils.js +0 -28
  1462. package/dist/vendored/brepjs/topology/shapeUtils.js.map +0 -1
  1463. package/dist/vendored/brepjs/topology/solidBuilders.d.ts +0 -74
  1464. package/dist/vendored/brepjs/topology/solidBuilders.d.ts.map +0 -1
  1465. package/dist/vendored/brepjs/topology/solidBuilders.js +0 -173
  1466. package/dist/vendored/brepjs/topology/solidBuilders.js.map +0 -1
  1467. package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts +0 -47
  1468. package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts.map +0 -1
  1469. package/dist/vendored/brepjs/topology/surfaceBuilders.js +0 -162
  1470. package/dist/vendored/brepjs/topology/surfaceBuilders.js.map +0 -1
  1471. package/dist/vendored/brepjs/topology/surfaceFns.d.ts +0 -41
  1472. package/dist/vendored/brepjs/topology/surfaceFns.d.ts.map +0 -1
  1473. package/dist/vendored/brepjs/topology/surfaceFns.js +0 -178
  1474. package/dist/vendored/brepjs/topology/surfaceFns.js.map +0 -1
  1475. package/dist/vendored/brepjs/topology/threeHelpers.d.ts +0 -124
  1476. package/dist/vendored/brepjs/topology/threeHelpers.d.ts.map +0 -1
  1477. package/dist/vendored/brepjs/topology/threeHelpers.js +0 -118
  1478. package/dist/vendored/brepjs/topology/threeHelpers.js.map +0 -1
  1479. package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts +0 -100
  1480. package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts.map +0 -1
  1481. package/dist/vendored/brepjs/topology/topologyQueryFns.js +0 -307
  1482. package/dist/vendored/brepjs/topology/topologyQueryFns.js.map +0 -1
  1483. package/dist/vendored/brepjs/topology/transformFns.d.ts +0 -69
  1484. package/dist/vendored/brepjs/topology/transformFns.d.ts.map +0 -1
  1485. package/dist/vendored/brepjs/topology/transformFns.js +0 -235
  1486. package/dist/vendored/brepjs/topology/transformFns.js.map +0 -1
  1487. package/dist/vendored/brepjs/topology/wrapperFns.d.ts +0 -169
  1488. package/dist/vendored/brepjs/topology/wrapperFns.d.ts.map +0 -1
  1489. package/dist/vendored/brepjs/topology/wrapperFns.js +0 -291
  1490. package/dist/vendored/brepjs/topology/wrapperFns.js.map +0 -1
  1491. package/dist/vendored/brepjs/topology.d.ts +0 -28
  1492. package/dist/vendored/brepjs/topology.d.ts.map +0 -1
  1493. package/dist/vendored/brepjs/topology.js +0 -39
  1494. package/dist/vendored/brepjs/topology.js.map +0 -1
  1495. package/dist/vendored/brepjs/utils/arrayAccess.d.ts +0 -12
  1496. package/dist/vendored/brepjs/utils/arrayAccess.d.ts.map +0 -1
  1497. package/dist/vendored/brepjs/utils/arrayAccess.js +0 -25
  1498. package/dist/vendored/brepjs/utils/arrayAccess.js.map +0 -1
  1499. package/dist/vendored/brepjs/utils/bug.d.ts +0 -15
  1500. package/dist/vendored/brepjs/utils/bug.d.ts.map +0 -1
  1501. package/dist/vendored/brepjs/utils/bug.js +0 -21
  1502. package/dist/vendored/brepjs/utils/bug.js.map +0 -1
  1503. package/dist/vendored/brepjs/utils/ioFilename.d.ts +0 -3
  1504. package/dist/vendored/brepjs/utils/ioFilename.d.ts.map +0 -1
  1505. package/dist/vendored/brepjs/utils/ioFilename.js +0 -7
  1506. package/dist/vendored/brepjs/utils/ioFilename.js.map +0 -1
  1507. package/dist/vendored/brepjs/utils/precisionRound.d.ts +0 -11
  1508. package/dist/vendored/brepjs/utils/precisionRound.d.ts.map +0 -1
  1509. package/dist/vendored/brepjs/utils/precisionRound.js +0 -19
  1510. package/dist/vendored/brepjs/utils/precisionRound.js.map +0 -1
  1511. package/dist/vendored/brepjs/utils/quaternion.d.ts +0 -18
  1512. package/dist/vendored/brepjs/utils/quaternion.d.ts.map +0 -1
  1513. package/dist/vendored/brepjs/utils/quaternion.js +0 -68
  1514. package/dist/vendored/brepjs/utils/quaternion.js.map +0 -1
  1515. package/dist/vendored/brepjs/utils/range.d.ts +0 -3
  1516. package/dist/vendored/brepjs/utils/range.d.ts.map +0 -1
  1517. package/dist/vendored/brepjs/utils/range.js +0 -5
  1518. package/dist/vendored/brepjs/utils/range.js.map +0 -1
  1519. package/dist/vendored/brepjs/utils/uuid.d.ts +0 -3
  1520. package/dist/vendored/brepjs/utils/uuid.d.ts.map +0 -1
  1521. package/dist/vendored/brepjs/utils/uuid.js +0 -7
  1522. package/dist/vendored/brepjs/utils/uuid.js.map +0 -1
  1523. package/dist/vendored/brepjs/utils/vec2d.d.ts +0 -62
  1524. package/dist/vendored/brepjs/utils/vec2d.d.ts.map +0 -1
  1525. package/dist/vendored/brepjs/utils/vec2d.js +0 -107
  1526. package/dist/vendored/brepjs/utils/vec2d.js.map +0 -1
  1527. package/dist/vendored/brepjs/utils/vec3.d.ts +0 -32
  1528. package/dist/vendored/brepjs/utils/vec3.d.ts.map +0 -1
  1529. package/dist/vendored/brepjs/utils/vec3.js +0 -35
  1530. package/dist/vendored/brepjs/utils/vec3.js.map +0 -1
  1531. package/dist/vendored/brepjs/utils/zip.d.ts +0 -5
  1532. package/dist/vendored/brepjs/utils/zip.d.ts.map +0 -1
  1533. package/dist/vendored/brepjs/utils/zip.js +0 -8
  1534. package/dist/vendored/brepjs/utils/zip.js.map +0 -1
  1535. package/dist/vendored/brepjs/vectors.d.ts +0 -11
  1536. package/dist/vendored/brepjs/vectors.d.ts.map +0 -1
  1537. package/dist/vendored/brepjs/vectors.js +0 -9
  1538. package/dist/vendored/brepjs/vectors.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cross-section.js","sourceRoot":"","sources":["../../src/boolean/cross-section.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 截面求解器(无 CSG / 无 Manifold.simplify)\n *\n * 给定源网格(THREE.BufferGeometry)和一个局部空间平面,直接求「平面与网格的\n * 交线」,缝合成闭合环(外环 + 孔环),并三角化出截面 cap。这是「拉伸预览无\n * split 方案」的唯一 CPU 几何成本。\n *\n * 为什么不用 Manifold.split:\n * - split 是整模型布尔运算(焊接 + 全分辨率 CSG),168 万三角面 4~8s/次;\n * - 本方案只做三角形–平面求交(纯算术),O(n),且后续可叠加 BVH 降到 O(log n + k)。\n *\n * 设计契约(与 ExtrudeRenderer 现有代码对齐):\n * - 输入平面为「局部空间」THREE.Plane(调用方负责把世界平面经 matrixWorld 逆变换得到)。\n * - computeSection 直接读 geometry.attributes,不拷贝整份顶点缓冲。\n * - 输出的 cap 顶点为局部空间,预览期经 matrixWorld 渲染到世界空间。\n */\nimport * as THREE from 'three'\n\n/**\n * A single closed loop (3D, local space, lying on the section plane).\n * `isHole=false` marks the outer boundary, `true` marks a hole.\n */\nexport interface SectionRing {\n points: THREE.Vector3[]\n isHole: boolean\n}\n\n/**\n * Result of computing a section: the stitched loops and diagnostic counters.\n */\nexport interface SectionResult {\n /** All stitched loops (already classified by area into isHole). */\n rings: SectionRing[]\n /** 外环列表(3D 点)。 */\n outers: THREE.Vector3[][]\n /** 每个外环对应的孔环列表(与 outers 同序)。 */\n holesOf: THREE.Vector3[][][]\n /** 实际参与求交、跨越/贴合平面的三角形数(诊断用)。 */\n hitTriangleCount: number\n /** 收集到的交线段数。 */\n segmentCount: number\n}\n\nconst EPS_SURFACE = 1e-6\n/** 线段端点量化容差(平面 2D 坐标),用于缝合相邻线段。 */\nconst STITCH_TOL = 1e-4\n\n/** 平面正交基 (u, v),用于把 3D 截面点投影到 2D 以做缝合/面积/三角化。 */\nfunction planeBasis(normal: THREE.Vector3): { u: THREE.Vector3; v: THREE.Vector3 } {\n const n = normal.clone().normalize()\n const t = Math.abs(n.x) < 0.9 ? new THREE.Vector3(1, 0, 0) : new THREE.Vector3(0, 1, 0)\n const u = new THREE.Vector3().crossVectors(t, n).normalize()\n const v = new THREE.Vector3().crossVectors(n, u).normalize()\n return { u, v }\n}\n\nfunction project2D(p: THREE.Vector3, u: THREE.Vector3, v: THREE.Vector3): THREE.Vector2 {\n return new THREE.Vector2(p.dot(u), p.dot(v))\n}\n\n/**\n * 端点量化到 STITCH_TOL 网格上作为缝合 key。\n * 用 Math.round 而非 toFixed:避免 -0.00001 → \"-0.0000\" 与 0 → \"0.0000\" 被当成两个点。\n */\nfunction key2D(p: THREE.Vector2): string {\n return `${Math.round(p.x / STITCH_TOL)},${Math.round(p.y / STITCH_TOL)}`\n}\n\n/** 三角形三个顶点索引(索引几何)或顺次顶点(非索引几何)。 */\ninterface TriRef {\n a: number\n b: number\n c: number\n}\n\n/**\n * Compute the section of a mesh cut by a plane.\n * @param geometry Source mesh (local space), supports indexed and non-indexed.\n * @param plane Local-space cutting plane (THREE.Plane semantics: normal·p + constant = 0).\n * @returns The stitched section rings, outers, holes, and diagnostic counters.\n */\nexport function computeSection(geometry: THREE.BufferGeometry, plane: THREE.Plane): SectionResult {\n const posAttr = geometry.attributes.position as THREE.BufferAttribute\n if (!posAttr) {\n return { rings: [], outers: [], holesOf: [], hitTriangleCount: 0, segmentCount: 0 }\n }\n const pos = posAttr.array as Float32Array\n const index = geometry.index\n const triCount = index ? index.count / 3 : pos.length / 9\n\n const refs: TriRef[] = []\n if (index) {\n for (let t = 0; t < triCount; t++) {\n refs.push({ a: index.getX(t * 3), b: index.getX(t * 3 + 1), c: index.getX(t * 3 + 2) })\n }\n } else {\n for (let t = 0; t < triCount; t++) {\n refs.push({ a: t * 3, b: t * 3 + 1, c: t * 3 + 2 })\n }\n }\n\n const at = (i: number, out: THREE.Vector3) => out.set(pos[i * 3], pos[i * 3 + 1], pos[i * 3 + 2])\n\n const n = plane.normal\n const va = new THREE.Vector3()\n const vb = new THREE.Vector3()\n const vc = new THREE.Vector3()\n\n // 收集交线段(每条 2 个 3D 端点,均在截面上)\n const segments: [THREE.Vector3, THREE.Vector3][] = []\n let hitTriangleCount = 0\n\n for (const r of refs) {\n at(r.a, va); at(r.b, vb); at(r.c, vc)\n const da = n.dot(va) + plane.constant\n const db = n.dot(vb) + plane.constant\n const dc = n.dot(vc) + plane.constant\n\n const above = (d: number) => d > EPS_SURFACE\n const below = (d: number) => d < -EPS_SURFACE\n const onSurf = (d: number) => !above(d) && !below(d)\n\n // 交点插值:在 a、b 边上按距离比例\n const lerp = (ia: number, ib: number, daa: number, dbb: number): THREE.Vector3 => {\n const pa = ia === r.a ? va : ia === r.b ? vb : vc\n const pb = ib === r.a ? va : ib === r.b ? vb : vc\n const t = daa / (daa - dbb)\n return new THREE.Vector3().lerpVectors(pa, pb, t)\n }\n\n const crossings: THREE.Vector3[] = []\n if (onSurf(da) && (above(db) !== above(dc) || below(db) !== below(dc))) {\n crossings.push(va.clone())\n }\n if (onSurf(db) && (above(da) !== above(dc) || below(da) !== below(dc))) {\n crossings.push(vb.clone())\n }\n if (onSurf(dc) && (above(da) !== above(db) || below(da) !== below(db))) {\n crossings.push(vc.clone())\n }\n // 纯跨越:异侧顶点两两组合产生 2 个交点\n const verts = [\n { i: r.a, d: da, p: va },\n { i: r.b, d: db, p: vb },\n { i: r.c, d: dc, p: vc },\n ]\n const pos_ = verts.filter((x) => above(x.d) || onSurf(x.d))\n const neg_ = verts.filter((x) => below(x.d) || onSurf(x.d))\n // 标准 straddle:恰好 1 顶点在一侧、2 在另一侧 → 两条跨边各一个交点\n if (pos_.length === 1 && neg_.length === 2) {\n const p = pos_[0]\n const [q1, q2] = neg_\n crossings.push(lerp(p.i, q1.i, p.d, q1.d))\n crossings.push(lerp(p.i, q2.i, p.d, q2.d))\n } else if (neg_.length === 1 && pos_.length === 2) {\n const p = neg_[0]\n const [q1, q2] = pos_\n crossings.push(lerp(p.i, q1.i, p.d, q1.d))\n crossings.push(lerp(p.i, q2.i, p.d, q2.d))\n }\n // 去重(同一三角形内重复端点)\n const uniq: THREE.Vector3[] = []\n for (const c of crossings) {\n if (!uniq.some((u) => u.distanceToSquared(c) < 1e-12)) uniq.push(c)\n }\n if (uniq.length >= 2) {\n hitTriangleCount++\n for (let k = 0; k + 1 < uniq.length; k += 2) {\n segments.push([uniq[k], uniq[k + 1]])\n }\n }\n }\n\n const { u, v } = planeBasis(n)\n\n // 缝合:按量化端点建邻接,沿共享端点 walk 出闭合环\n const endpoints = new Map<string, Array<{ seg: number; end: 0 | 1 }>>()\n segments.forEach((seg, si) => {\n const ka = key2D(project2D(seg[0], u, v))\n const kb = key2D(project2D(seg[1], u, v))\n if (!endpoints.has(ka)) endpoints.set(ka, [])\n if (!endpoints.has(kb)) endpoints.set(kb, [])\n endpoints.get(ka)!.push({ seg: si, end: 0 })\n endpoints.get(kb)!.push({ seg: si, end: 1 })\n })\n\n const visited = new Set<number>()\n const loops: THREE.Vector3[][] = []\n for (let si = 0; si < segments.length; si++) {\n if (visited.has(si)) continue\n const loop: THREE.Vector3[] = []\n const start = segments[si][0]\n loop.push(start)\n visited.add(si)\n let curKey = key2D(project2D(segments[si][1], u, v))\n const startKey = key2D(project2D(start, u, v))\n // 防止无限循环\n let guard = 0\n const maxSteps = segments.length * 2 + 4\n while (guard++ < maxSteps) {\n const cands = endpoints.get(curKey)?.filter((c) => !visited.has(c.seg)) ?? []\n if (cands.length === 0) break\n const c = cands[0]\n const otherEnd = c.end === 0 ? segments[c.seg][1] : segments[c.seg][0]\n loop.push(otherEnd)\n visited.add(c.seg)\n const nk = key2D(project2D(otherEnd, u, v))\n if (nk === startKey) break\n curKey = nk\n }\n loops.push(loop)\n }\n\n // 分类外环/孔环。\n // 关键:不能单纯按「面积<0 即孔」判断,因为缝合出的环绕序不固定(可能整体 CW)。\n // 正确做法:以「绝对面积最大的环」为外环基准,其有向面积符号 outerSign 定义外环方向;\n // 与之同号者为外环、异号者为孔环。这样即使所有环都 CW,最大面积环仍被正确认作外环。\n const signedArea = (loop: THREE.Vector3[]): number => {\n let area = 0\n for (let i = 0; i < loop.length; i++) {\n const p = project2D(loop[i], u, v)\n const q = project2D(loop[(i + 1) % loop.length], u, v)\n area += p.x * q.y - q.x * p.y\n }\n return area / 2\n }\n\n const areas = loops.map((pts) => signedArea(pts))\n let maxIdx = 0\n for (let i = 1; i < areas.length; i++) {\n if (Math.abs(areas[i]) > Math.abs(areas[maxIdx])) maxIdx = i\n }\n const outerSign = areas.length > 0 ? Math.sign(areas[maxIdx]) || 1 : 1\n\n const rings: SectionRing[] = loops.map((pts, i) => {\n const isHole = Math.sign(areas[i]) !== outerSign\n // 统一:外环取 outerSign(CCW),孔环取 -outerSign(CW)\n const wantSign = isHole ? -outerSign : outerSign\n const oriented = Math.sign(areas[i]) !== wantSign ? [...pts].reverse() : pts\n return { points: oriented, isHole }\n })\n\n const outers = rings.filter((r) => !r.isHole).map((r) => r.points)\n const holes = rings.filter((r) => r.isHole).map((r) => r.points)\n\n // 把孔分给包含其重心的外环\n const holesOf: THREE.Vector3[][][] = outers.map(() => [])\n const centroid = (loop: THREE.Vector3[]): THREE.Vector2 => {\n const c = new THREE.Vector2()\n for (const p of loop) c.add(project2D(p, u, v))\n return c.multiplyScalar(1 / Math.max(1, loop.length))\n }\n const pointInLoop = (pt: THREE.Vector2, loop: THREE.Vector3[]): boolean => {\n let inside = false\n for (let i = 0, j = loop.length - 1; i < loop.length; j = i++) {\n const a = project2D(loop[i], u, v)\n const b = project2D(loop[j], u, v)\n if (a.y > pt.y !== b.y > pt.y && pt.x < ((b.x - a.x) * (pt.y - a.y)) / (b.y - a.y) + a.x) {\n inside = !inside\n }\n }\n return inside\n }\n holes.forEach((h) => {\n const hc = centroid(h)\n let assigned = -1\n for (let oi = 0; oi < outers.length; oi++) {\n if (pointInLoop(hc, outers[oi])) { assigned = oi; break }\n }\n if (assigned < 0) assigned = 0\n holesOf[assigned].push(h)\n })\n\n return { rings, outers, holesOf, hitTriangleCount, segmentCount: segments.length }\n}\n\n/**\n * Build a prism geometry by extruding the section rings along the normal for\n * `length`, starting at `start` (in local space). The output contains the cap\n * triangulation (top/bottom faces) plus the side walls of every boundary loop.\n * It can be fed directly to a THREE.BufferGeometry or converted to ManifoldMeshData.\n *\n * @param section computeSection result\n * @param normal Extrusion direction (local space, unit vector)\n * @param length Extrusion length\n * @param start Start offset along the normal (centered mode passes offsetBack so the prism spans [offsetBack, offsetFront])\n * @returns Filled position and index buffers describing the extruded prism.\n */\nexport function buildExtrudedProfile(\n section: SectionResult,\n normal: THREE.Vector3,\n length: number,\n start = 0,\n): { positions: Float32Array; indices: Uint32Array } {\n const positions: number[] = []\n const indices: number[] = []\n const dx = normal.x * length\n const dy = normal.y * length\n const dz = normal.z * length\n const sx = normal.x * start\n const sy = normal.y * start\n const sz = normal.z * start\n\n section.outers.forEach((outer, oi) => {\n const holeLoops = section.holesOf[oi]\n // 本组所有边界环(外环在前,孔环随后),顺序即 pts3D 顺序,也是 triangulateShape 的顶点顺序\n const allLoops: THREE.Vector3[][] = [outer, ...holeLoops]\n const offsets: number[] = []\n const pts3D: THREE.Vector3[] = []\n for (const loop of allLoops) {\n offsets.push(pts3D.length)\n pts3D.push(...loop)\n }\n const basis = planeBasis(normal)\n const to2D = (p: THREE.Vector3) => project2D(p, basis.u, basis.v)\n const tris = THREE.ShapeUtils.triangulateShape(\n outer.map(to2D),\n holeLoops.map((h) => h.map(to2D)),\n )\n if (!tris || tris.length === 0) return\n\n const base = positions.length / 3\n const vCount = pts3D.length\n // bottom cap(含 start 偏移)\n for (const p of pts3D) positions.push(p.x + sx, p.y + sy, p.z + sz)\n for (const t of tris) indices.push(base + t[0], base + t[1], base + t[2])\n // top cap(reversed winding)\n const topBase = base + vCount\n for (const p of pts3D) positions.push(p.x + sx + dx, p.y + sy + dy, p.z + sz + dz)\n for (const t of tris) indices.push(topBase + t[0], topBase + t[2], topBase + t[1])\n\n // 侧壁:每个边界环的相邻顶点构成竖直 quad(用环内偏移,避免引用查找)\n allLoops.forEach((loop, li) => {\n const off = offsets[li]\n const len = loop.length\n for (let k = 0; k < len; k++) {\n const a = off + k\n const b = off + ((k + 1) % len)\n indices.push(base + a, base + b, topBase + b)\n indices.push(base + a, topBase + b, topBase + a)\n }\n })\n })\n\n return { positions: new Float32Array(positions), indices: new Uint32Array(indices) }\n}\n"]}
1
+ {"version":3,"file":"cross-section.js","sourceRoot":"","sources":["../../src/boolean/cross-section.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 截面求解器(无 CSG / 无 Manifold.simplify)\n *\n * 给定源网格(THREE.BufferGeometry)和一个局部空间平面,直接求「平面与网格的\n * 交线」,缝合成闭合环(外环 + 孔环),并三角化出截面 cap。这是「拉伸预览无\n * split 方案」的唯一 CPU 几何成本。\n *\n * 为什么不用 Manifold.split:\n * - split 是整模型布尔运算(焊接 + 全分辨率 CSG),168 万三角面 4~8s/次;\n * - 本方案只做三角形–平面求交(纯算术),O(n),且后续可叠加 BVH 降到 O(log n + k)。\n *\n * 设计契约(与 ExtrudeRenderer 现有代码对齐):\n * - 输入平面为「局部空间」THREE.Plane(调用方负责把世界平面经 matrixWorld 逆变换得到)。\n * - computeSection 直接读 geometry.attributes,不拷贝整份顶点缓冲。\n * - 输出的 cap 顶点为局部空间,预览期经 matrixWorld 渲染到世界空间。\n */\nimport { Vec3 as Vec3C, Vec2, Plane } from '../math3d'\nimport earcut from 'earcut'\nimport type { Shape } from '../mesh/types'\n\n/**\n * A single closed loop (3D, local space, lying on the section plane).\n * `isHole=false` marks the outer boundary, `true` marks a hole.\n */\nexport interface SectionRing {\n points: Vec3C[]\n isHole: boolean\n}\n\n/**\n * Result of computing a section: the stitched loops and diagnostic counters.\n */\nexport interface SectionResult {\n /** All stitched loops (already classified by area into isHole). */\n rings: SectionRing[]\n /** 外环列表(3D 点)。 */\n outers: Vec3C[][]\n /** 每个外环对应的孔环列表(与 outers 同序)。 */\n holesOf: Vec3C[][][]\n /** 实际参与求交、跨越/贴合平面的三角形数(诊断用)。 */\n hitTriangleCount: number\n /** 收集到的交线段数。 */\n segmentCount: number\n}\n\nconst EPS_SURFACE = 1e-6\n/** 线段端点量化容差(平面 2D 坐标),用于缝合相邻线段。 */\nconst STITCH_TOL = 1e-4\n\nfunction triangulateWithEarcut(contour: Vec2[], holes: Vec2[][]): number[][] {\n const data: number[] = []\n const holeIndices: number[] = []\n let vertexCount = 0\n for (const p of contour) { data.push(p.x, p.y); vertexCount++ }\n for (const hole of holes) {\n holeIndices.push(vertexCount)\n for (const p of hole) { data.push(p.x, p.y); vertexCount++ }\n }\n const flat = earcut(data, holeIndices.length > 0 ? holeIndices : undefined, 2)\n const tris: number[][] = []\n for (let i = 0; i < flat.length; i += 3) tris.push([flat[i], flat[i + 1], flat[i + 2]])\n return tris\n}\n\n/** 平面正交基 (u, v),用于把 3D 截面点投影到 2D 以做缝合/面积/三角化。 */\nfunction planeBasis(normal: Vec3C): { u: Vec3C; v: Vec3C } {\n const n = normal.clone().normalize()\n const t = Math.abs(n.x) < 0.9 ? new Vec3C(1, 0, 0) : new Vec3C(0, 1, 0)\n const u = new Vec3C().crossVectors(t, n).normalize()\n const v = new Vec3C().crossVectors(n, u).normalize()\n return { u, v }\n}\n\nfunction project2D(p: Vec3C, u: Vec3C, v: Vec3C): Vec2 {\n return new Vec2(p.dot(u), p.dot(v))\n}\n\n/**\n * 端点量化到 STITCH_TOL 网格上作为缝合 key。\n * 用 Math.round 而非 toFixed:避免 -0.00001 → \"-0.0000\" 与 0 → \"0.0000\" 被当成两个点。\n */\nfunction key2D(p: Vec2): string {\n return `${Math.round(p.x / STITCH_TOL)},${Math.round(p.y / STITCH_TOL)}`\n}\n\n/** 三角形三个顶点索引(索引几何)或顺次顶点(非索引几何)。 */\ninterface TriRef {\n a: number\n b: number\n c: number\n}\n\n/**\n * Compute the section of a mesh cut by a plane.\n * @param geometry Source mesh (local space), supports indexed and non-indexed.\n * @param plane Local-space cutting plane (THREE.Plane semantics: normal·p + constant = 0).\n * @returns The stitched section rings, outers, holes, and diagnostic counters.\n */\nexport function computeSection(geometry: Shape, plane: Plane): SectionResult {\n const pos = geometry.positions\n const index = geometry.indices\n const triCount = index.length / 3\n\n const refs: TriRef[] = []\n for (let t = 0; t < triCount; t++) {\n refs.push({ a: index[t * 3], b: index[t * 3 + 1], c: index[t * 3 + 2] })\n }\n\n const at = (i: number, out: Vec3C) => out.set(pos[i * 3], pos[i * 3 + 1], pos[i * 3 + 2])\n\n const n = plane.normal\n const va = new Vec3C()\n const vb = new Vec3C()\n const vc = new Vec3C()\n\n // 收集交线段(每条 2 个 3D 端点,均在截面上)\n const segments: [Vec3C, Vec3C][] = []\n let hitTriangleCount = 0\n\n for (const r of refs) {\n at(r.a, va); at(r.b, vb); at(r.c, vc)\n const da = n.dot(va) + plane.constant\n const db = n.dot(vb) + plane.constant\n const dc = n.dot(vc) + plane.constant\n\n const above = (d: number) => d > EPS_SURFACE\n const below = (d: number) => d < -EPS_SURFACE\n const onSurf = (d: number) => !above(d) && !below(d)\n\n // 交点插值:在 a、b 边上按距离比例\n const lerp = (ia: number, ib: number, daa: number, dbb: number): Vec3C => {\n const pa = ia === r.a ? va : ia === r.b ? vb : vc\n const pb = ib === r.a ? va : ib === r.b ? vb : vc\n const t = daa / (daa - dbb)\n return new Vec3C().lerpVectors(pa, pb, t)\n }\n\n const crossings: Vec3C[] = []\n if (onSurf(da) && (above(db) !== above(dc) || below(db) !== below(dc))) {\n crossings.push(va.clone())\n }\n if (onSurf(db) && (above(da) !== above(dc) || below(da) !== below(dc))) {\n crossings.push(vb.clone())\n }\n if (onSurf(dc) && (above(da) !== above(db) || below(da) !== below(db))) {\n crossings.push(vc.clone())\n }\n // 纯跨越:异侧顶点两两组合产生 2 个交点\n const verts = [\n { i: r.a, d: da, p: va },\n { i: r.b, d: db, p: vb },\n { i: r.c, d: dc, p: vc },\n ]\n const pos_ = verts.filter((x) => above(x.d) || onSurf(x.d))\n const neg_ = verts.filter((x) => below(x.d) || onSurf(x.d))\n // 标准 straddle:恰好 1 顶点在一侧、2 在另一侧 → 两条跨边各一个交点\n if (pos_.length === 1 && neg_.length === 2) {\n const p = pos_[0]\n const [q1, q2] = neg_\n crossings.push(lerp(p.i, q1.i, p.d, q1.d))\n crossings.push(lerp(p.i, q2.i, p.d, q2.d))\n } else if (neg_.length === 1 && pos_.length === 2) {\n const p = neg_[0]\n const [q1, q2] = pos_\n crossings.push(lerp(p.i, q1.i, p.d, q1.d))\n crossings.push(lerp(p.i, q2.i, p.d, q2.d))\n }\n // 去重(同一三角形内重复端点)\n const uniq: Vec3C[] = []\n for (const c of crossings) {\n if (!uniq.some((u) => u.distanceToSquared(c) < 1e-12)) uniq.push(c)\n }\n if (uniq.length >= 2) {\n hitTriangleCount++\n for (let k = 0; k + 1 < uniq.length; k += 2) {\n segments.push([uniq[k], uniq[k + 1]])\n }\n }\n }\n\n const { u, v } = planeBasis(n)\n\n // 缝合:按量化端点建邻接,沿共享端点 walk 出闭合环\n const endpoints = new Map<string, Array<{ seg: number; end: 0 | 1 }>>()\n segments.forEach((seg, si) => {\n const ka = key2D(project2D(seg[0], u, v))\n const kb = key2D(project2D(seg[1], u, v))\n if (!endpoints.has(ka)) endpoints.set(ka, [])\n if (!endpoints.has(kb)) endpoints.set(kb, [])\n endpoints.get(ka)!.push({ seg: si, end: 0 })\n endpoints.get(kb)!.push({ seg: si, end: 1 })\n })\n\n const visited = new Set<number>()\n const loops: Vec3C[][] = []\n for (let si = 0; si < segments.length; si++) {\n if (visited.has(si)) continue\n const loop: Vec3C[] = []\n const start = segments[si][0]\n loop.push(start)\n visited.add(si)\n let curKey = key2D(project2D(segments[si][1], u, v))\n const startKey = key2D(project2D(start, u, v))\n // 防止无限循环\n let guard = 0\n const maxSteps = segments.length * 2 + 4\n while (guard++ < maxSteps) {\n const cands = endpoints.get(curKey)?.filter((c) => !visited.has(c.seg)) ?? []\n if (cands.length === 0) break\n const c = cands[0]\n const otherEnd = c.end === 0 ? segments[c.seg][1] : segments[c.seg][0]\n loop.push(otherEnd)\n visited.add(c.seg)\n const nk = key2D(project2D(otherEnd, u, v))\n if (nk === startKey) break\n curKey = nk\n }\n loops.push(loop)\n }\n\n // 分类外环/孔环。\n // 关键:不能单纯按「面积<0 即孔」判断,因为缝合出的环绕序不固定(可能整体 CW)。\n // 正确做法:以「绝对面积最大的环」为外环基准,其有向面积符号 outerSign 定义外环方向;\n // 与之同号者为外环、异号者为孔环。这样即使所有环都 CW,最大面积环仍被正确认作外环。\n const signedArea = (loop: Vec3C[]): number => {\n let area = 0\n for (let i = 0; i < loop.length; i++) {\n const p = project2D(loop[i], u, v)\n const q = project2D(loop[(i + 1) % loop.length], u, v)\n area += p.x * q.y - q.x * p.y\n }\n return area / 2\n }\n\n const areas = loops.map((pts) => signedArea(pts))\n let maxIdx = 0\n for (let i = 1; i < areas.length; i++) {\n if (Math.abs(areas[i]) > Math.abs(areas[maxIdx])) maxIdx = i\n }\n const outerSign = areas.length > 0 ? Math.sign(areas[maxIdx]) || 1 : 1\n\n const rings: SectionRing[] = loops.map((pts, i) => {\n const isHole = Math.sign(areas[i]) !== outerSign\n // 统一:外环取 outerSign(CCW),孔环取 -outerSign(CW)\n const wantSign = isHole ? -outerSign : outerSign\n const oriented = Math.sign(areas[i]) !== wantSign ? [...pts].reverse() : pts\n return { points: oriented, isHole }\n })\n\n const outers = rings.filter((r) => !r.isHole).map((r) => r.points)\n const holes = rings.filter((r) => r.isHole).map((r) => r.points)\n\n // 把孔分给包含其重心的外环\n const holesOf: Vec3C[][][] = outers.map(() => [])\n const centroid = (loop: Vec3C[]): Vec2 => {\n const c = new Vec2()\n for (const p of loop) c.add(project2D(p, u, v))\n return c.multiplyScalar(1 / Math.max(1, loop.length))\n }\n const pointInLoop = (pt: Vec2, loop: Vec3C[]): boolean => {\n let inside = false\n for (let i = 0, j = loop.length - 1; i < loop.length; j = i++) {\n const a = project2D(loop[i], u, v)\n const b = project2D(loop[j], u, v)\n if (a.y > pt.y !== b.y > pt.y && pt.x < ((b.x - a.x) * (pt.y - a.y)) / (b.y - a.y) + a.x) {\n inside = !inside\n }\n }\n return inside\n }\n holes.forEach((h) => {\n const hc = centroid(h)\n let assigned = -1\n for (let oi = 0; oi < outers.length; oi++) {\n if (pointInLoop(hc, outers[oi])) { assigned = oi; break }\n }\n if (assigned < 0) assigned = 0\n holesOf[assigned].push(h)\n })\n\n return { rings, outers, holesOf, hitTriangleCount, segmentCount: segments.length }\n}\n\n/**\n * Build a prism geometry by extruding the section rings along the normal for\n * `length`, starting at `start` (in local space). The output contains the cap\n * triangulation (top/bottom faces) plus the side walls of every boundary loop.\n * It can be fed directly to a THREE.BufferGeometry or converted to ManifoldMeshData.\n *\n * @param section computeSection result\n * @param normal Extrusion direction (local space, unit vector)\n * @param length Extrusion length\n * @param start Start offset along the normal (centered mode passes offsetBack so the prism spans [offsetBack, offsetFront])\n * @returns Filled position and index buffers describing the extruded prism.\n */\nexport function buildExtrudedProfile(\n section: SectionResult,\n normal: Vec3C,\n length: number,\n start = 0,\n): { positions: Float32Array; indices: Uint32Array } {\n const positions: number[] = []\n const indices: number[] = []\n const dx = normal.x * length\n const dy = normal.y * length\n const dz = normal.z * length\n const sx = normal.x * start\n const sy = normal.y * start\n const sz = normal.z * start\n\n section.outers.forEach((outer, oi) => {\n const holeLoops = section.holesOf[oi]\n // 本组所有边界环(外环在前,孔环随后),顺序即 pts3D 顺序,也是 triangulateShape 的顶点顺序\n const allLoops: Vec3C[][] = [outer, ...holeLoops]\n const offsets: number[] = []\n const pts3D: Vec3C[] = []\n for (const loop of allLoops) {\n offsets.push(pts3D.length)\n pts3D.push(...loop)\n }\n const basis = planeBasis(normal)\n const to2D = (p: Vec3C) => project2D(p, basis.u, basis.v)\n const tris = triangulateWithEarcut(\n outer.map(to2D),\n holeLoops.map((h) => h.map(to2D)),\n )\n if (!tris || tris.length === 0) return\n\n const base = positions.length / 3\n const vCount = pts3D.length\n // bottom cap(含 start 偏移)\n for (const p of pts3D) positions.push(p.x + sx, p.y + sy, p.z + sz)\n for (const t of tris) indices.push(base + t[0], base + t[1], base + t[2])\n // top cap(reversed winding)\n const topBase = base + vCount\n for (const p of pts3D) positions.push(p.x + sx + dx, p.y + sy + dy, p.z + sz + dz)\n for (const t of tris) indices.push(topBase + t[0], topBase + t[2], topBase + t[1])\n\n // 侧壁:每个边界环的相邻顶点构成竖直 quad(用环内偏移,避免引用查找)\n allLoops.forEach((loop, li) => {\n const off = offsets[li]\n const len = loop.length\n for (let k = 0; k < len; k++) {\n const a = off + k\n const b = off + ((k + 1) % len)\n indices.push(base + a, base + b, topBase + b)\n indices.push(base + a, topBase + b, topBase + a)\n }\n })\n })\n\n return { positions: new Float32Array(positions), indices: new Uint32Array(indices) }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { BufferGeometry } from 'three';
1
+ import type { Shape } from '../mesh/types.js';
2
2
  /**
3
3
  * 统一的法线派生函数(折边法线)。
4
4
  *
@@ -7,7 +7,7 @@ import { BufferGeometry } from 'three';
7
7
  * model visual anomalies after drilling/boolean/split operations.
8
8
  *
9
9
  * 算法本体在 `./creased-normals`(零依赖移植 three 的 toCreasedNormals;本文件只是
10
- * BufferGeometry ↔ 数据的薄适配)。场景内核(scene-kernel)消费同算法的数据版
10
+ * Shape ↔ 数据的薄适配)。场景内核(scene-kernel)消费同算法的数据版
11
11
  * `deriveCreasedNormalsData`——经 `@faicad/faijs/env-agnostic` 导出、不 import three,
12
12
  * 避免经依赖包间接引入第二份 three(weapp 方案 §1.1.1):
13
13
  * 锐边处"裂开"法线 → 锐边保持锐利,仅对近共面 / 真实曲面(如钻孔内壁)平滑。
@@ -17,9 +17,9 @@ import { BufferGeometry } from 'three';
17
17
  *
18
18
  * 约定:项目中所有"需要派生法线"之处(操作结果、STL/3MF 导入)都经此函数,
19
19
  * 不得再直接调用 `computeVertexNormals()`。
20
- * @param geometry - the indexed geometry to derive creased (folded) normals for.
20
+ * @param shape - the indexed shape to derive creased (folded) normals for.
21
21
  * @param creaseAngleDeg - the dihedral-angle threshold in degrees above which normals are split (default 60).
22
- * @returns a BufferGeometry with creased normals applied; it may be non-indexed.
22
+ * @returns a Shape with creased normals applied; it may be non-indexed (sequential indices).
23
23
  */
24
- export declare function deriveNormals(geometry: BufferGeometry, creaseAngleDeg?: number): BufferGeometry;
24
+ export declare function deriveNormals(shape: Shape, creaseAngleDeg?: number): Shape;
25
25
  //# sourceMappingURL=deriveNormals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deriveNormals.d.ts","sourceRoot":"","sources":["../../src/boolean/deriveNormals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmB,MAAM,OAAO,CAAA;AAGvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,SAAK,GAAG,cAAc,CAoB3F"}
1
+ {"version":3,"file":"deriveNormals.d.ts","sourceRoot":"","sources":["../../src/boolean/deriveNormals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,SAAK,GAAG,KAAK,CAqBtE"}
@@ -1,4 +1,3 @@
1
- import { BufferGeometry, BufferAttribute } from 'three';
2
1
  import { deriveCreasedNormalsData } from './creased-normals.js';
3
2
  /**
4
3
  * 统一的法线派生函数(折边法线)。
@@ -8,7 +7,7 @@ import { deriveCreasedNormalsData } from './creased-normals.js';
8
7
  * model visual anomalies after drilling/boolean/split operations.
9
8
  *
10
9
  * 算法本体在 `./creased-normals`(零依赖移植 three 的 toCreasedNormals;本文件只是
11
- * BufferGeometry ↔ 数据的薄适配)。场景内核(scene-kernel)消费同算法的数据版
10
+ * Shape ↔ 数据的薄适配)。场景内核(scene-kernel)消费同算法的数据版
12
11
  * `deriveCreasedNormalsData`——经 `@faicad/faijs/env-agnostic` 导出、不 import three,
13
12
  * 避免经依赖包间接引入第二份 three(weapp 方案 §1.1.1):
14
13
  * 锐边处"裂开"法线 → 锐边保持锐利,仅对近共面 / 真实曲面(如钻孔内壁)平滑。
@@ -18,27 +17,28 @@ import { deriveCreasedNormalsData } from './creased-normals.js';
18
17
  *
19
18
  * 约定:项目中所有"需要派生法线"之处(操作结果、STL/3MF 导入)都经此函数,
20
19
  * 不得再直接调用 `computeVertexNormals()`。
21
- * @param geometry - the indexed geometry to derive creased (folded) normals for.
20
+ * @param shape - the indexed shape to derive creased (folded) normals for.
22
21
  * @param creaseAngleDeg - the dihedral-angle threshold in degrees above which normals are split (default 60).
23
- * @returns a BufferGeometry with creased normals applied; it may be non-indexed.
22
+ * @returns a Shape with creased normals applied; it may be non-indexed (sequential indices).
24
23
  */
25
- export function deriveNormals(geometry, creaseAngleDeg = 60) {
26
- const posAttr = geometry.getAttribute('position');
27
- if (!posAttr) {
28
- throw new Error('[deriveNormals] geometry has no position attribute');
29
- }
30
- const indexAttr = geometry.getIndex();
31
- const positions = posAttr.array;
32
- const indices = indexAttr ? indexAttr.array : null;
24
+ export function deriveNormals(shape, creaseAngleDeg = 60) {
25
+ const positions = shape.positions;
26
+ const indices = shape.indices;
33
27
  const result = deriveCreasedNormalsData({
34
28
  positions,
35
- // creased-normals expects Uint32Array | null; widen typed index arrays.
36
- indices: indices ? new Uint32Array(indices) : null,
29
+ // creased-normals expects Uint32Array | null; our indices are already Uint32Array.
30
+ indices: indices.length > 0 ? indices : null,
37
31
  creaseAngleDeg,
38
32
  });
39
- const out = new BufferGeometry();
40
- out.setAttribute('position', new BufferAttribute(result.positions, 3));
41
- out.setAttribute('normal', new BufferAttribute(result.normals, 3, false));
42
- return out;
33
+ // creased-normals always returns non-indexed output; build sequential indices.
34
+ const vertCount = result.positions.length / 3;
35
+ const seq = new Uint32Array(vertCount);
36
+ for (let i = 0; i < vertCount; i++)
37
+ seq[i] = i;
38
+ return {
39
+ positions: result.positions,
40
+ indices: seq,
41
+ normals: result.normals,
42
+ };
43
43
  }
44
44
  //# sourceMappingURL=deriveNormals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deriveNormals.js","sourceRoot":"","sources":["../../src/boolean/deriveNormals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,QAAwB,EAAE,cAAc,GAAG,EAAE;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAgC,CAAA;IAChF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAqB,CAAA;IAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAE,SAAS,CAAC,KAA2B,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzE,MAAM,MAAM,GAAG,wBAAwB,CAAC;QACtC,SAAS;QACT,wEAAwE;QACxE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QAClD,cAAc;KACf,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;IAChC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IACtE,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACzE,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["import { BufferGeometry, BufferAttribute } from 'three'\nimport { deriveCreasedNormalsData } from './creased-normals'\n\n/**\n * 统一的法线派生函数(折边法线)。\n *\n * 取代散落在各处的 `geometry.computeVertexNormals()`。后者在**索引(共享顶点)\n * 几何**上会把相邻三角面的法线取平均 → 棱边被\"磨圆\"。这正是钻孔/布尔/分割操作后\n * model visual anomalies after drilling/boolean/split operations.\n *\n * 算法本体在 `./creased-normals`(零依赖移植 three 的 toCreasedNormals;本文件只是\n * BufferGeometry ↔ 数据的薄适配)。场景内核(scene-kernel)消费同算法的数据版\n * `deriveCreasedNormalsData`——经 `@faicad/faijs/env-agnostic` 导出、不 import three,\n * 避免经依赖包间接引入第二份 three(weapp 方案 §1.1.1):\n * 锐边处\"裂开\"法线 → 锐边保持锐利,仅对近共面 / 真实曲面(如钻孔内壁)平滑。\n * 输入若是索引几何会被展开为非索引(单条法线属性无法在共享顶点上表达锐边),\n * 因此返回的几何**可能是非索引的**——这是预期且正确的表示,且与 STL 源零件\n * 本就是非索引一致,使各格式往返统一。\n *\n * 约定:项目中所有\"需要派生法线\"之处(操作结果、STL/3MF 导入)都经此函数,\n * 不得再直接调用 `computeVertexNormals()`。\n * @param geometry - the indexed geometry to derive creased (folded) normals for.\n * @param creaseAngleDeg - the dihedral-angle threshold in degrees above which normals are split (default 60).\n * @returns a BufferGeometry with creased normals applied; it may be non-indexed.\n */\nexport function deriveNormals(geometry: BufferGeometry, creaseAngleDeg = 60): BufferGeometry {\n const posAttr = geometry.getAttribute('position') as BufferAttribute | undefined\n if (!posAttr) {\n throw new Error('[deriveNormals] geometry has no position attribute')\n }\n const indexAttr = geometry.getIndex()\n const positions = posAttr.array as Float32Array\n const indices = indexAttr ? (indexAttr.array as ArrayLike<number>) : null\n\n const result = deriveCreasedNormalsData({\n positions,\n // creased-normals expects Uint32Array | null; widen typed index arrays.\n indices: indices ? new Uint32Array(indices) : null,\n creaseAngleDeg,\n })\n\n const out = new BufferGeometry()\n out.setAttribute('position', new BufferAttribute(result.positions, 3))\n out.setAttribute('normal', new BufferAttribute(result.normals, 3, false))\n return out\n}\n"]}
1
+ {"version":3,"file":"deriveNormals.js","sourceRoot":"","sources":["../../src/boolean/deriveNormals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAG5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,cAAc,GAAG,EAAE;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAE7B,MAAM,MAAM,GAAG,wBAAwB,CAAC;QACtC,SAAS;QACT,mFAAmF;QACnF,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAC5C,cAAc;KACf,CAAC,CAAA;IAEF,+EAA+E;IAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAA;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAE9C,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;AACH,CAAC","sourcesContent":["import { deriveCreasedNormalsData } from './creased-normals'\nimport type { Shape } from '../mesh/types'\n\n/**\n * 统一的法线派生函数(折边法线)。\n *\n * 取代散落在各处的 `geometry.computeVertexNormals()`。后者在**索引(共享顶点)\n * 几何**上会把相邻三角面的法线取平均 → 棱边被\"磨圆\"。这正是钻孔/布尔/分割操作后\n * model visual anomalies after drilling/boolean/split operations.\n *\n * 算法本体在 `./creased-normals`(零依赖移植 three 的 toCreasedNormals;本文件只是\n * Shape ↔ 数据的薄适配)。场景内核(scene-kernel)消费同算法的数据版\n * `deriveCreasedNormalsData`——经 `@faicad/faijs/env-agnostic` 导出、不 import three,\n * 避免经依赖包间接引入第二份 three(weapp 方案 §1.1.1):\n * 锐边处\"裂开\"法线 → 锐边保持锐利,仅对近共面 / 真实曲面(如钻孔内壁)平滑。\n * 输入若是索引几何会被展开为非索引(单条法线属性无法在共享顶点上表达锐边),\n * 因此返回的几何**可能是非索引的**——这是预期且正确的表示,且与 STL 源零件\n * 本就是非索引一致,使各格式往返统一。\n *\n * 约定:项目中所有\"需要派生法线\"之处(操作结果、STL/3MF 导入)都经此函数,\n * 不得再直接调用 `computeVertexNormals()`。\n * @param shape - the indexed shape to derive creased (folded) normals for.\n * @param creaseAngleDeg - the dihedral-angle threshold in degrees above which normals are split (default 60).\n * @returns a Shape with creased normals applied; it may be non-indexed (sequential indices).\n */\nexport function deriveNormals(shape: Shape, creaseAngleDeg = 60): Shape {\n const positions = shape.positions\n const indices = shape.indices\n\n const result = deriveCreasedNormalsData({\n positions,\n // creased-normals expects Uint32Array | null; our indices are already Uint32Array.\n indices: indices.length > 0 ? indices : null,\n creaseAngleDeg,\n })\n\n // creased-normals always returns non-indexed output; build sequential indices.\n const vertCount = result.positions.length / 3\n const seq = new Uint32Array(vertCount)\n for (let i = 0; i < vertCount; i++) seq[i] = i\n\n return {\n positions: result.positions,\n indices: seq,\n normals: result.normals,\n }\n}\n"]}
@@ -13,7 +13,7 @@
13
13
  * 放在 engine/boolean/ 下的约束:**不得 import stores**(保持与 csg.ts 同层的纯度)。
14
14
  * 平面参数(normal / planeDistance)由调用方用 computePlaneParams 算好后传入。
15
15
  */
16
- import * as THREE from 'three';
16
+ import { Vec3, Plane } from '../math3d/index.js';
17
17
  import type { ManifoldMeshData } from '../boolean/csg-backend.js';
18
18
  /** 与 extrude-store 的 ExtrusionMode 结构兼容(此处不 import store,避免层级倒置)。 */
19
19
  export type ExtrudeOffsetMode = 'centered' | 'forward' | 'backward';
@@ -43,15 +43,15 @@ export declare function computeExtrudeOffsets(mode: ExtrudeOffsetMode, length: n
43
43
  /**
44
44
  * 由 computePlaneParams 的 (normal, planeDistance) 构造 THREE 世界平面。
45
45
  *
46
- * 约定:平面方程为 `N · p = planeDistance`;THREE.Plane 用 `N · p + constant = 0`,
47
- * 故 constant = -planeDistance。THREE 裁剪保留 distanceToPoint >= 0 的一侧(法线正侧)。
46
+ * 约定:平面方程为 `N · p = planeDistance`;Plane 用 `N · p + constant = 0`,
47
+ * 故 constant = -planeDistance。裁剪保留 distanceToPoint >= 0 的一侧(法线正侧)。
48
48
  * @param normal - the cutting plane normal as a 3-component array.
49
49
  * @param planeDistance - the plane equation origin offset along the normal.
50
- * @returns a THREE.Plane and its normalized normal vector.
50
+ * @returns a Plane and its normalized normal vector.
51
51
  */
52
52
  export declare function makeWorldPlane(normal: [number, number, number], planeDistance: number): {
53
- plane: THREE.Plane;
54
- normalVec: THREE.Vector3;
53
+ plane: Plane;
54
+ normalVec: Vec3;
55
55
  };
56
56
  /**
57
57
  * 全分辨率构建拉伸三段(世界空间进、世界空间出)。
@@ -1 +1 @@
1
- {"version":3,"file":"extrude-helpers.d.ts","sourceRoot":"","sources":["../../src/boolean/extrude-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAEnE,mDAAmD;AACnD,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,GACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAUjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAA;CAAE,CAMlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACnC,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAYlB"}
1
+ {"version":3,"file":"extrude-helpers.d.ts","sourceRoot":"","sources":["../../src/boolean/extrude-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAEnE,mDAAmD;AACnD,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,GACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAUjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,CAMnC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACnC,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAYlB"}
@@ -13,7 +13,7 @@
13
13
  * 放在 engine/boolean/ 下的约束:**不得 import stores**(保持与 csg.ts 同层的纯度)。
14
14
  * 平面参数(normal / planeDistance)由调用方用 computePlaneParams 算好后传入。
15
15
  */
16
- import * as THREE from 'three';
16
+ import { Vec3, Plane } from '../math3d/index.js';
17
17
  import { computeSplit } from '../boolean/csg-backend.js';
18
18
  /** slice 法取薄片的厚度(沿法线),随后按 L/SLICE_THICKNESS 拉伸。 */
19
19
  export const SLICE_THICKNESS = 0.2;
@@ -40,16 +40,16 @@ export function computeExtrudeOffsets(mode, length) {
40
40
  /**
41
41
  * 由 computePlaneParams 的 (normal, planeDistance) 构造 THREE 世界平面。
42
42
  *
43
- * 约定:平面方程为 `N · p = planeDistance`;THREE.Plane 用 `N · p + constant = 0`,
44
- * 故 constant = -planeDistance。THREE 裁剪保留 distanceToPoint >= 0 的一侧(法线正侧)。
43
+ * 约定:平面方程为 `N · p = planeDistance`;Plane 用 `N · p + constant = 0`,
44
+ * 故 constant = -planeDistance。裁剪保留 distanceToPoint >= 0 的一侧(法线正侧)。
45
45
  * @param normal - the cutting plane normal as a 3-component array.
46
46
  * @param planeDistance - the plane equation origin offset along the normal.
47
- * @returns a THREE.Plane and its normalized normal vector.
47
+ * @returns a Plane and its normalized normal vector.
48
48
  */
49
49
  export function makeWorldPlane(normal, planeDistance) {
50
- const normalVec = new THREE.Vector3(normal[0], normal[1], normal[2]).normalize();
50
+ const normalVec = new Vec3(normal[0], normal[1], normal[2]).normalize();
51
51
  return {
52
- plane: new THREE.Plane(normalVec.clone(), -planeDistance),
52
+ plane: new Plane(normalVec.clone(), -planeDistance),
53
53
  normalVec,
54
54
  };
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extrude-helpers.js","sourceRoot":"","sources":["../../src/boolean/extrude-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAMrD,mDAAmD;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAWlC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAuB,EACvB,MAAc;IAEd,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACnC,KAAK,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAA;QACpC,KAAK,UAAU,CAAC;QAChB;YACE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAA;IACnD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAgC,EAChC,aAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IAChF,OAAO;QACL,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC;QACzD,SAAS;KACV,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAA2B,EAC3B,MAAgC,EAChC,aAAqB,EACrB,MAAc,EACd,IAAuB;IAEvB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACpF,qBAAqB;IACrB,MAAM,CAAC,GAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAErE,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IACxE,IAAI,KAAK,GAA4B,WAAW,CAAC,KAAK,CAAA;IACtD,IAAI,IAAI,GAA4B,WAAW,CAAC,IAAI,CAAA;IACpD,IAAI,QAAQ,GAA4B,IAAI,CAAA;IAE5C,uCAAuC;IACvC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,GAAG,eAAe,CAAC,CAAA;IAE/F,4EAA4E;IAC5E,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe,CAAC,CAAA;IAC5F,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK;QAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;IACpD,IAAI,IAAI;QAAE,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IAChD,IAAI,QAAQ;QAAE,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IAE5D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAsB,EACtB,MAAgC,EAChC,WAAmB,EACnB,WAAmB;IAEnB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;QAC5F,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAA;QACjC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QAC/B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IACjC,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,IAAsB,EACtB,SAAmC,EACnC,QAAgB;IAEhB,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;IAClC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;IAClC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;IAClC,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACZ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAChB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;AAClD,CAAC","sourcesContent":["/**\n * 拉伸(extrude)几何工具集 —— 从 ExtrudeRenderer.tsx 抽出的纯几何函数。\n *\n * 拉伸的语义(三段模型):在切割平面把模型切开,得到\n * - back(下半):沿法线 N 平移 offsetBack\n * - middle(中段):平面处的截面沿 N 挤出 L,落在 [offsetBack, offsetBack + L]\n * - front(上半):沿法线 N 平移 offsetFront\n * 其中 offsetFront - offsetBack === L 恒成立(见 computeExtrudeOffsets)。\n *\n * 本模块只负责「全分辨率、几何正确」的那条路径(预览提交 / 无预览直接执行)。\n * 交互期的快速预览走 engine/components/extrude-preview-nosplit.ts(不 split 原模型)。\n *\n * 放在 engine/boolean/ 下的约束:**不得 import stores**(保持与 csg.ts 同层的纯度)。\n * 平面参数(normal / planeDistance)由调用方用 computePlaneParams 算好后传入。\n */\nimport * as THREE from 'three'\nimport { computeSplit } from '../boolean/csg-backend'\nimport type { ManifoldMeshData } from '../boolean/csg-backend'\n\n/** 与 extrude-store 的 ExtrusionMode 结构兼容(此处不 import store,避免层级倒置)。 */\nexport type ExtrudeOffsetMode = 'centered' | 'forward' | 'backward'\n\n/** slice 法取薄片的厚度(沿法线),随后按 L/SLICE_THICKNESS 拉伸。 */\nexport const SLICE_THICKNESS = 0.2\n\n/**\n * The three mesh parts produced by an extrude operation.\n */\nexport interface ExtrudeParts {\n front: ManifoldMeshData | null\n back: ManifoldMeshData | null\n extruded: ManifoldMeshData | null\n}\n\n/**\n * 三段的位移量。不变量:front - back === length。\n * - centered:平面居中,上下各推 L/2\n * - forward:只推上半 L,下半不动\n * - backward:只拉下半 -L,上半不动\n * @param mode - the offset mode ('centered', 'forward', or 'backward').\n * @param length - the extrusion length L (mm).\n * @returns the front and back displacement amounts, with front - back === length.\n */\nexport function computeExtrudeOffsets(\n mode: ExtrudeOffsetMode,\n length: number,\n): { front: number; back: number } {\n switch (mode) {\n case 'forward':\n return { front: length, back: 0 }\n case 'backward':\n return { front: 0, back: -length }\n case 'centered':\n default:\n return { front: length / 2, back: -length / 2 }\n }\n}\n\n/**\n * 由 computePlaneParams 的 (normal, planeDistance) 构造 THREE 世界平面。\n *\n * 约定:平面方程为 `N · p = planeDistance`;THREE.Plane 用 `N · p + constant = 0`,\n * 故 constant = -planeDistance。THREE 裁剪保留 distanceToPoint >= 0 的一侧(法线正侧)。\n * @param normal - the cutting plane normal as a 3-component array.\n * @param planeDistance - the plane equation origin offset along the normal.\n * @returns a THREE.Plane and its normalized normal vector.\n */\nexport function makeWorldPlane(\n normal: [number, number, number],\n planeDistance: number,\n): { plane: THREE.Plane; normalVec: THREE.Vector3 } {\n const normalVec = new THREE.Vector3(normal[0], normal[1], normal[2]).normalize()\n return {\n plane: new THREE.Plane(normalVec.clone(), -planeDistance),\n normalVec,\n }\n}\n\n/**\n * 全分辨率构建拉伸三段(世界空间进、世界空间出)。\n *\n * 这是**提交路径的唯一真相**:预览无论用什么近似手段,执行时都走这里重算,\n * so preview geometry errors do not pollute the final model.\n *\n * @param worldMesh 世界空间的源网格(局部几何 × matrixWorld)\n * @param normal 切割平面法线(单位向量)\n * @param planeDistance 平面方程 N·p = planeDistance 的右端\n * @param length 拉伸长度 L\n * @param mode 三段位移模式\n * @returns the split front, back, and extruded middle mesh parts.\n */\nexport async function buildExtrudeParts(\n worldMesh: ManifoldMeshData,\n normal: [number, number, number],\n planeDistance: number,\n length: number,\n mode: ExtrudeOffsetMode,\n): Promise<ExtrudeParts> {\n const { front: offsetFront, back: offsetBack } = computeExtrudeOffsets(mode, length)\n // 拉伸方向 D 恒等于切割平面法线 N\n const D: [number, number, number] = [normal[0], normal[1], normal[2]]\n\n // 1. 平面处切开 → front / back\n const splitResult = await computeSplit(worldMesh, normal, planeDistance)\n let front: ManifoldMeshData | null = splitResult.front\n let back: ManifoldMeshData | null = splitResult.back\n let extruded: ManifoldMeshData | null = null\n\n // 2. 从 front 再切一片厚 SLICE_THICKNESS 的薄壳\n const capSplit = await computeSplit(splitResult.front, normal, planeDistance + SLICE_THICKNESS)\n\n // 3. 薄壳以平面为锚点沿 N 放大 L/SLICE_THICKNESS → 占据 [planeDistance, planeDistance+L]\n if (capSplit.back && capSplit.back.indices.length > 0) {\n extruded = scaleMeshAlongNormal(capSplit.back, D, planeDistance, length / SLICE_THICKNESS)\n }\n\n // 4. 三段各自沿 D 位移;中段起点对齐 back 侧\n if (front) front = offsetMesh(front, D, offsetFront)\n if (back) back = offsetMesh(back, D, offsetBack)\n if (extruded) extruded = offsetMesh(extruded, D, offsetBack)\n\n return { front, back, extruded }\n}\n\n/**\n * 沿法线方向按 scaleFactor 缩放每个顶点到平面的有向距离。\n * 平面上的顶点不动,离面顶点按比例外推。\n * @param mesh - the source mesh data to scale.\n * @param normal - the plane normal (unit vector).\n * @param planeOffset - the plane offset along the normal.\n * @param scaleFactor - the scaling factor applied to each vertex's signed distance to the plane.\n * @returns the scaled mesh data (positions rewritten, indices unchanged).\n */\nexport function scaleMeshAlongNormal(\n mesh: ManifoldMeshData,\n normal: [number, number, number],\n planeOffset: number,\n scaleFactor: number,\n): ManifoldMeshData {\n const out = new Float32Array(mesh.positions)\n for (let i = 0; i < out.length; i += 3) {\n const d = out[i] * normal[0] + out[i + 1] * normal[1] + out[i + 2] * normal[2] - planeOffset\n const delta = d * scaleFactor - d\n out[i] += normal[0] * delta\n out[i + 1] += normal[1] * delta\n out[i + 2] += normal[2] * delta\n }\n return { positions: out, indices: mesh.indices }\n}\n\n/**\n * 整体沿 direction 平移 distance(distance 为 0 时原样返回,不拷贝)。\n * @param mesh - the source mesh data to translate.\n * @param direction - the translation direction (not necessarily unit length).\n * @param distance - the translation distance (mm); 0 returns the mesh unchanged.\n * @returns the translated mesh data (positions rewritten, indices unchanged).\n */\nexport function offsetMesh(\n mesh: ManifoldMeshData,\n direction: [number, number, number],\n distance: number,\n): ManifoldMeshData {\n if (distance === 0) return mesh\n const dx = direction[0] * distance\n const dy = direction[1] * distance\n const dz = direction[2] * distance\n const out = new Float32Array(mesh.positions)\n for (let i = 0; i < out.length; i += 3) {\n out[i] += dx\n out[i + 1] += dy\n out[i + 2] += dz\n }\n return { positions: out, indices: mesh.indices }\n}\n"]}
1
+ {"version":3,"file":"extrude-helpers.js","sourceRoot":"","sources":["../../src/boolean/extrude-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 拉伸(extrude)几何工具集 —— 从 ExtrudeRenderer.tsx 抽出的纯几何函数。\n *\n * 拉伸的语义(三段模型):在切割平面把模型切开,得到\n * - back(下半):沿法线 N 平移 offsetBack\n * - middle(中段):平面处的截面沿 N 挤出 L,落在 [offsetBack, offsetBack + L]\n * - front(上半):沿法线 N 平移 offsetFront\n * 其中 offsetFront - offsetBack === L 恒成立(见 computeExtrudeOffsets)。\n *\n * 本模块只负责「全分辨率、几何正确」的那条路径(预览提交 / 无预览直接执行)。\n * 交互期的快速预览走 engine/components/extrude-preview-nosplit.ts(不 split 原模型)。\n *\n * 放在 engine/boolean/ 下的约束:**不得 import stores**(保持与 csg.ts 同层的纯度)。\n * 平面参数(normal / planeDistance)由调用方用 computePlaneParams 算好后传入。\n */\nimport { Vec3, Plane } from '../math3d'\nimport { computeSplit } from '../boolean/csg-backend'\nimport type { ManifoldMeshData } from '../boolean/csg-backend'\n\n/** 与 extrude-store 的 ExtrusionMode 结构兼容(此处不 import store,避免层级倒置)。 */\nexport type ExtrudeOffsetMode = 'centered' | 'forward' | 'backward'\n\n/** slice 法取薄片的厚度(沿法线),随后按 L/SLICE_THICKNESS 拉伸。 */\nexport const SLICE_THICKNESS = 0.2\n\n/**\n * The three mesh parts produced by an extrude operation.\n */\nexport interface ExtrudeParts {\n front: ManifoldMeshData | null\n back: ManifoldMeshData | null\n extruded: ManifoldMeshData | null\n}\n\n/**\n * 三段的位移量。不变量:front - back === length。\n * - centered:平面居中,上下各推 L/2\n * - forward:只推上半 L,下半不动\n * - backward:只拉下半 -L,上半不动\n * @param mode - the offset mode ('centered', 'forward', or 'backward').\n * @param length - the extrusion length L (mm).\n * @returns the front and back displacement amounts, with front - back === length.\n */\nexport function computeExtrudeOffsets(\n mode: ExtrudeOffsetMode,\n length: number,\n): { front: number; back: number } {\n switch (mode) {\n case 'forward':\n return { front: length, back: 0 }\n case 'backward':\n return { front: 0, back: -length }\n case 'centered':\n default:\n return { front: length / 2, back: -length / 2 }\n }\n}\n\n/**\n * 由 computePlaneParams 的 (normal, planeDistance) 构造 THREE 世界平面。\n *\n * 约定:平面方程为 `N · p = planeDistance`;Plane 用 `N · p + constant = 0`,\n * 故 constant = -planeDistance。裁剪保留 distanceToPoint >= 0 的一侧(法线正侧)。\n * @param normal - the cutting plane normal as a 3-component array.\n * @param planeDistance - the plane equation origin offset along the normal.\n * @returns a Plane and its normalized normal vector.\n */\nexport function makeWorldPlane(\n normal: [number, number, number],\n planeDistance: number,\n): { plane: Plane; normalVec: Vec3 } {\n const normalVec = new Vec3(normal[0], normal[1], normal[2]).normalize()\n return {\n plane: new Plane(normalVec.clone(), -planeDistance),\n normalVec,\n }\n}\n\n/**\n * 全分辨率构建拉伸三段(世界空间进、世界空间出)。\n *\n * 这是**提交路径的唯一真相**:预览无论用什么近似手段,执行时都走这里重算,\n * so preview geometry errors do not pollute the final model.\n *\n * @param worldMesh 世界空间的源网格(局部几何 × matrixWorld)\n * @param normal 切割平面法线(单位向量)\n * @param planeDistance 平面方程 N·p = planeDistance 的右端\n * @param length 拉伸长度 L\n * @param mode 三段位移模式\n * @returns the split front, back, and extruded middle mesh parts.\n */\nexport async function buildExtrudeParts(\n worldMesh: ManifoldMeshData,\n normal: [number, number, number],\n planeDistance: number,\n length: number,\n mode: ExtrudeOffsetMode,\n): Promise<ExtrudeParts> {\n const { front: offsetFront, back: offsetBack } = computeExtrudeOffsets(mode, length)\n // 拉伸方向 D 恒等于切割平面法线 N\n const D: [number, number, number] = [normal[0], normal[1], normal[2]]\n\n // 1. 平面处切开 → front / back\n const splitResult = await computeSplit(worldMesh, normal, planeDistance)\n let front: ManifoldMeshData | null = splitResult.front\n let back: ManifoldMeshData | null = splitResult.back\n let extruded: ManifoldMeshData | null = null\n\n // 2. 从 front 再切一片厚 SLICE_THICKNESS 的薄壳\n const capSplit = await computeSplit(splitResult.front, normal, planeDistance + SLICE_THICKNESS)\n\n // 3. 薄壳以平面为锚点沿 N 放大 L/SLICE_THICKNESS → 占据 [planeDistance, planeDistance+L]\n if (capSplit.back && capSplit.back.indices.length > 0) {\n extruded = scaleMeshAlongNormal(capSplit.back, D, planeDistance, length / SLICE_THICKNESS)\n }\n\n // 4. 三段各自沿 D 位移;中段起点对齐 back 侧\n if (front) front = offsetMesh(front, D, offsetFront)\n if (back) back = offsetMesh(back, D, offsetBack)\n if (extruded) extruded = offsetMesh(extruded, D, offsetBack)\n\n return { front, back, extruded }\n}\n\n/**\n * 沿法线方向按 scaleFactor 缩放每个顶点到平面的有向距离。\n * 平面上的顶点不动,离面顶点按比例外推。\n * @param mesh - the source mesh data to scale.\n * @param normal - the plane normal (unit vector).\n * @param planeOffset - the plane offset along the normal.\n * @param scaleFactor - the scaling factor applied to each vertex's signed distance to the plane.\n * @returns the scaled mesh data (positions rewritten, indices unchanged).\n */\nexport function scaleMeshAlongNormal(\n mesh: ManifoldMeshData,\n normal: [number, number, number],\n planeOffset: number,\n scaleFactor: number,\n): ManifoldMeshData {\n const out = new Float32Array(mesh.positions)\n for (let i = 0; i < out.length; i += 3) {\n const d = out[i] * normal[0] + out[i + 1] * normal[1] + out[i + 2] * normal[2] - planeOffset\n const delta = d * scaleFactor - d\n out[i] += normal[0] * delta\n out[i + 1] += normal[1] * delta\n out[i + 2] += normal[2] * delta\n }\n return { positions: out, indices: mesh.indices }\n}\n\n/**\n * 整体沿 direction 平移 distance(distance 为 0 时原样返回,不拷贝)。\n * @param mesh - the source mesh data to translate.\n * @param direction - the translation direction (not necessarily unit length).\n * @param distance - the translation distance (mm); 0 returns the mesh unchanged.\n * @returns the translated mesh data (positions rewritten, indices unchanged).\n */\nexport function offsetMesh(\n mesh: ManifoldMeshData,\n direction: [number, number, number],\n distance: number,\n): ManifoldMeshData {\n if (distance === 0) return mesh\n const dx = direction[0] * distance\n const dy = direction[1] * distance\n const dz = direction[2] * distance\n const out = new Float32Array(mesh.positions)\n for (let i = 0; i < out.length; i += 3) {\n out[i] += dx\n out[i + 1] += dy\n out[i + 2] += dz\n }\n return { positions: out, indices: mesh.indices }\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * geo-convert — 纯数据转换函数(从 csg.ts 提取)
3
3
  *
4
- * THREE.BufferGeometry ↔ ManifoldMeshData 转换。
4
+ * { positions, indices } ↔ ManifoldMeshData 转换(焊接 + 法线派生)。
5
5
  * 不依赖 Worker / postMessage,可在 Node 和浏览器环境通用。
6
6
  */
7
- import * as THREE from 'three';
7
+ import type { Shape } from '../mesh/types.js';
8
8
  /** The set of supported boolean operations. */
9
9
  export type BooleanOperation = 'union' | 'subtract' | 'intersect';
10
10
  /** Interchange mesh representation: interleaved positions with triangle indices. */
@@ -35,18 +35,21 @@ export interface StraightTenonSplitParams {
35
35
  heightTolerance: number;
36
36
  }
37
37
  /**
38
- * Convert a THREE.BufferGeometry into ManifoldMeshData, welding duplicate vertices.
39
- * @param geo - the source THREE.BufferGeometry with a position attribute (and optional index).
38
+ * Convert raw position+index data into ManifoldMeshData, welding duplicate vertices.
39
+ * @param data - the source mesh data with positions and indices.
40
40
  * @returns the converted mesh data with welded, unique vertices.
41
41
  */
42
- export declare function geoToManifoldMesh(geo: THREE.BufferGeometry): ManifoldMeshData;
42
+ export declare function geoToManifoldMesh(data: {
43
+ positions: ArrayLike<number>;
44
+ indices: ArrayLike<number>;
45
+ }): ManifoldMeshData;
43
46
  /**
44
- * Convert ManifoldMeshData into a THREE.BufferGeometry, optionally computing creased normals.
47
+ * Convert ManifoldMeshData into a Shape, optionally computing creased normals.
45
48
  * @param data - the source mesh data.
46
49
  * @param options - optional settings; computeNormals defaults to true and derives creased normals.
47
- * @returns the resulting THREE.BufferGeometry (empty when there are no positions or indices).
50
+ * @returns the resulting Shape (empty when there are no positions or indices).
48
51
  */
49
52
  export declare function manifoldMeshToGeo(data: ManifoldMeshData, options?: {
50
53
  computeNormals?: boolean;
51
- }): THREE.BufferGeometry;
54
+ }): Shape;
52
55
  //# sourceMappingURL=geo-convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geo-convert.d.ts","sourceRoot":"","sources":["../../src/boolean/geo-convert.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAA;AAEjE,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,WAAW,CAAA;CACrB;AAED,uFAAuF;AACvF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAiDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,GAAG,gBAAgB,CAsB7E;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,KAAK,CAAC,cAAc,CAYtB"}
1
+ {"version":3,"file":"geo-convert.d.ts","sourceRoot":"","sources":["../../src/boolean/geo-convert.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAI1C,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAA;AAEjE,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,WAAW,CAAA;CACrB;AAED,uFAAuF;AACvF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;CAAE,GACjE,gBAAgB,CAElB;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,KAAK,CAYP"}
@@ -1,94 +1,38 @@
1
1
  /**
2
2
  * geo-convert — 纯数据转换函数(从 csg.ts 提取)
3
3
  *
4
- * THREE.BufferGeometry ↔ ManifoldMeshData 转换。
4
+ * { positions, indices } ↔ ManifoldMeshData 转换(焊接 + 法线派生)。
5
5
  * 不依赖 Worker / postMessage,可在 Node 和浏览器环境通用。
6
6
  */
7
- import * as THREE from 'three';
7
+ import { weldMesh } from '../mesh/meshdata/weld.js';
8
8
  import { deriveNormals } from './deriveNormals.js';
9
- // ── 焊接重复顶点 ──
10
- function weldPositions(positions, indices, count) {
11
- const mapX = new Map();
12
- const weldedPosArr = [];
13
- const weldedIdxArr = [];
14
- for (let i = 0; i < count; i++) {
15
- const vi = indices[i];
16
- const x = positions[vi * 3];
17
- const y = positions[vi * 3 + 1];
18
- const z = positions[vi * 3 + 2];
19
- const qx = Math.round(x * 1e6);
20
- const qy = Math.round(y * 1e6);
21
- const qz = Math.round(z * 1e6);
22
- let mapY = mapX.get(qx);
23
- if (mapY === undefined) {
24
- mapY = new Map();
25
- mapX.set(qx, mapY);
26
- }
27
- let mapZ = mapY.get(qy);
28
- if (mapZ === undefined) {
29
- mapZ = new Map();
30
- mapY.set(qy, mapZ);
31
- }
32
- let ni = mapZ.get(qz);
33
- if (ni === undefined) {
34
- ni = weldedPosArr.length / 3;
35
- mapZ.set(qz, ni);
36
- weldedPosArr.push(x, y, z);
37
- }
38
- weldedIdxArr.push(ni);
39
- }
40
- return {
41
- positions: new Float32Array(weldedPosArr),
42
- indices: new Uint32Array(weldedIdxArr),
43
- };
44
- }
45
- // ── THREE.BufferGeometry → ManifoldMeshData ──
9
+ // ── { positions, indices } → ManifoldMeshData(焊接重复顶点)──
46
10
  /**
47
- * Convert a THREE.BufferGeometry into ManifoldMeshData, welding duplicate vertices.
48
- * @param geo - the source THREE.BufferGeometry with a position attribute (and optional index).
11
+ * Convert raw position+index data into ManifoldMeshData, welding duplicate vertices.
12
+ * @param data - the source mesh data with positions and indices.
49
13
  * @returns the converted mesh data with welded, unique vertices.
50
14
  */
51
- export function geoToManifoldMesh(geo) {
52
- const pos = geo.getAttribute('position');
53
- const arr = pos.array;
54
- const positions = new Float32Array(arr);
55
- let triCount;
56
- let indices;
57
- if (geo.index) {
58
- const idx = geo.index;
59
- triCount = idx.count;
60
- const idxArr = idx.array;
61
- indices = idxArr instanceof Uint32Array
62
- ? new Uint32Array(idxArr.buffer, idxArr.byteOffset, idx.count)
63
- : new Uint16Array(idxArr.buffer, idxArr.byteOffset, idx.count);
64
- }
65
- else {
66
- triCount = pos.count;
67
- const arr = new Uint32Array(triCount);
68
- for (let i = 0; i < triCount; i++)
69
- arr[i] = i;
70
- indices = arr;
71
- }
72
- return weldPositions(positions, indices, triCount);
15
+ export function geoToManifoldMesh(data) {
16
+ return weldMesh(data.positions, data.indices);
73
17
  }
74
- // ── ManifoldMeshData → THREE.BufferGeometry ──
18
+ // ── ManifoldMeshData → Shape(含法线派生)──
75
19
  /**
76
- * Convert ManifoldMeshData into a THREE.BufferGeometry, optionally computing creased normals.
20
+ * Convert ManifoldMeshData into a Shape, optionally computing creased normals.
77
21
  * @param data - the source mesh data.
78
22
  * @param options - optional settings; computeNormals defaults to true and derives creased normals.
79
- * @returns the resulting THREE.BufferGeometry (empty when there are no positions or indices).
23
+ * @returns the resulting Shape (empty when there are no positions or indices).
80
24
  */
81
25
  export function manifoldMeshToGeo(data, options) {
82
- let geo = new THREE.BufferGeometry();
83
26
  if (data.positions.length === 0 || data.indices.length === 0) {
84
- return geo;
27
+ return { positions: new Float32Array(0), indices: new Uint32Array(0) };
85
28
  }
86
- geo.setAttribute('position', new THREE.BufferAttribute(data.positions, 3));
87
- geo.setIndex(new THREE.BufferAttribute(data.indices, 1));
29
+ const shape = {
30
+ positions: new Float32Array(data.positions),
31
+ indices: new Uint32Array(data.indices),
32
+ };
88
33
  if (options?.computeNormals !== false) {
89
- geo = deriveNormals(geo);
34
+ return deriveNormals(shape);
90
35
  }
91
- geo.computeBoundingBox();
92
- return geo;
36
+ return shape;
93
37
  }
94
38
  //# sourceMappingURL=geo-convert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geo-convert.js","sourceRoot":"","sources":["../../src/boolean/geo-convert.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * geo-convert — 纯数据转换函数(从 csg.ts 提取)\n *\n * THREE.BufferGeometry ↔ ManifoldMeshData 转换。\n * 不依赖 Worker / postMessage,可在 Node 和浏览器环境通用。\n */\n\nimport * as THREE from 'three'\nimport { deriveNormals } from './deriveNormals'\n\n// ── 类型(与 csg.ts 保持一致)──\n\n/** The set of supported boolean operations. */\nexport type BooleanOperation = 'union' | 'subtract' | 'intersect'\n\n/** Interchange mesh representation: interleaved positions with triangle indices. */\nexport interface ManifoldMeshData {\n positions: Float32Array\n indices: Uint32Array\n}\n\n/** Design parameters for a dovetail groove (depth, tolerances, width, flaps angle). */\nexport interface DovetailGrooveParams {\n depth: number\n depthTolerance: number\n width: number\n widthTolerance: number\n flapsAngle: number\n}\n\n/** Design parameters for a dowel split (diameter, tolerances, height). */\nexport interface DowelSplitParams {\n diameter: number\n diameterTolerance: number\n height: number\n heightTolerance: number\n}\n\n/** Design parameters for a straight-tenon split (side length, tolerances, height). */\nexport interface StraightTenonSplitParams {\n sideLength: number\n sideLengthTolerance: number\n height: number\n heightTolerance: number\n}\n\n// ── 焊接重复顶点 ──\n\nfunction weldPositions(\n positions: Float32Array,\n indices: Uint32Array | Uint16Array,\n count: number,\n): ManifoldMeshData {\n const mapX = new Map<number, Map<number, Map<number, number>>>()\n const weldedPosArr: number[] = []\n const weldedIdxArr: number[] = []\n\n for (let i = 0; i < count; i++) {\n const vi = indices[i]\n const x = positions[vi * 3]\n const y = positions[vi * 3 + 1]\n const z = positions[vi * 3 + 2]\n const qx = Math.round(x * 1e6)\n const qy = Math.round(y * 1e6)\n const qz = Math.round(z * 1e6)\n\n let mapY = mapX.get(qx)\n if (mapY === undefined) {\n mapY = new Map<number, Map<number, number>>()\n mapX.set(qx, mapY)\n }\n let mapZ = mapY.get(qy)\n if (mapZ === undefined) {\n mapZ = new Map<number, number>()\n mapY.set(qy, mapZ)\n }\n let ni = mapZ.get(qz)\n if (ni === undefined) {\n ni = weldedPosArr.length / 3\n mapZ.set(qz, ni)\n weldedPosArr.push(x, y, z)\n }\n weldedIdxArr.push(ni)\n }\n\n return {\n positions: new Float32Array(weldedPosArr),\n indices: new Uint32Array(weldedIdxArr),\n }\n}\n\n// ── THREE.BufferGeometry → ManifoldMeshData ──\n\n/**\n * Convert a THREE.BufferGeometry into ManifoldMeshData, welding duplicate vertices.\n * @param geo - the source THREE.BufferGeometry with a position attribute (and optional index).\n * @returns the converted mesh data with welded, unique vertices.\n */\nexport function geoToManifoldMesh(geo: THREE.BufferGeometry): ManifoldMeshData {\n const pos = geo.getAttribute('position') as THREE.BufferAttribute\n const arr = (pos as unknown as { array: ArrayLike<number> }).array\n const positions = new Float32Array(arr as Float32Array)\n\n let triCount: number\n let indices: Uint32Array | Uint16Array\n if (geo.index) {\n const idx = geo.index\n triCount = idx.count\n const idxArr = (idx as unknown as { array: Uint32Array | Uint16Array }).array\n indices = idxArr instanceof Uint32Array\n ? new Uint32Array(idxArr.buffer, idxArr.byteOffset, idx.count)\n : new Uint16Array(idxArr.buffer, idxArr.byteOffset, idx.count)\n } else {\n triCount = pos.count\n const arr = new Uint32Array(triCount)\n for (let i = 0; i < triCount; i++) arr[i] = i\n indices = arr\n }\n\n return weldPositions(positions, indices, triCount)\n}\n\n// ── ManifoldMeshData → THREE.BufferGeometry ──\n\n/**\n * Convert ManifoldMeshData into a THREE.BufferGeometry, optionally computing creased normals.\n * @param data - the source mesh data.\n * @param options - optional settings; computeNormals defaults to true and derives creased normals.\n * @returns the resulting THREE.BufferGeometry (empty when there are no positions or indices).\n */\nexport function manifoldMeshToGeo(\n data: ManifoldMeshData,\n options?: { computeNormals?: boolean },\n): THREE.BufferGeometry {\n let geo = new THREE.BufferGeometry()\n if (data.positions.length === 0 || data.indices.length === 0) {\n return geo\n }\n geo.setAttribute('position', new THREE.BufferAttribute(data.positions, 3))\n geo.setIndex(new THREE.BufferAttribute(data.indices, 1))\n if (options?.computeNormals !== false) {\n geo = deriveNormals(geo)\n }\n geo.computeBoundingBox()\n return geo\n}\n"]}
1
+ {"version":3,"file":"geo-convert.js","sourceRoot":"","sources":["../../src/boolean/geo-convert.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAuC/C,yDAAyD;AAEzD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAkE;IAElE,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED,uCAAuC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAsB,EACtB,OAAsC;IAEtC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,SAAS,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxE,CAAC;IACD,MAAM,KAAK,GAAU;QACnB,SAAS,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3C,OAAO,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;KACvC,CAAA;IACD,IAAI,OAAO,EAAE,cAAc,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC","sourcesContent":["/**\n * geo-convert — 纯数据转换函数(从 csg.ts 提取)\n *\n * { positions, indices } ↔ ManifoldMeshData 转换(焊接 + 法线派生)。\n * 不依赖 Worker / postMessage,可在 Node 和浏览器环境通用。\n */\n\nimport { weldMesh } from '../mesh/meshdata/weld'\nimport { deriveNormals } from './deriveNormals'\nimport type { Shape } from '../mesh/types'\n\n// ── 类型(与 csg.ts 保持一致)──\n\n/** The set of supported boolean operations. */\nexport type BooleanOperation = 'union' | 'subtract' | 'intersect'\n\n/** Interchange mesh representation: interleaved positions with triangle indices. */\nexport interface ManifoldMeshData {\n positions: Float32Array\n indices: Uint32Array\n}\n\n/** Design parameters for a dovetail groove (depth, tolerances, width, flaps angle). */\nexport interface DovetailGrooveParams {\n depth: number\n depthTolerance: number\n width: number\n widthTolerance: number\n flapsAngle: number\n}\n\n/** Design parameters for a dowel split (diameter, tolerances, height). */\nexport interface DowelSplitParams {\n diameter: number\n diameterTolerance: number\n height: number\n heightTolerance: number\n}\n\n/** Design parameters for a straight-tenon split (side length, tolerances, height). */\nexport interface StraightTenonSplitParams {\n sideLength: number\n sideLengthTolerance: number\n height: number\n heightTolerance: number\n}\n\n// ── { positions, indices } → ManifoldMeshData(焊接重复顶点)──\n\n/**\n * Convert raw position+index data into ManifoldMeshData, welding duplicate vertices.\n * @param data - the source mesh data with positions and indices.\n * @returns the converted mesh data with welded, unique vertices.\n */\nexport function geoToManifoldMesh(\n data: { positions: ArrayLike<number>; indices: ArrayLike<number> },\n): ManifoldMeshData {\n return weldMesh(data.positions, data.indices)\n}\n\n// ── ManifoldMeshData → Shape(含法线派生)──\n\n/**\n * Convert ManifoldMeshData into a Shape, optionally computing creased normals.\n * @param data - the source mesh data.\n * @param options - optional settings; computeNormals defaults to true and derives creased normals.\n * @returns the resulting Shape (empty when there are no positions or indices).\n */\nexport function manifoldMeshToGeo(\n data: ManifoldMeshData,\n options?: { computeNormals?: boolean },\n): Shape {\n if (data.positions.length === 0 || data.indices.length === 0) {\n return { positions: new Float32Array(0), indices: new Uint32Array(0) }\n }\n const shape: Shape = {\n positions: new Float32Array(data.positions),\n indices: new Uint32Array(data.indices),\n }\n if (options?.computeNormals !== false) {\n return deriveNormals(shape)\n }\n return shape\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/boolean/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGrE,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAGzB,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AASpE,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA","sourcesContent":["/**\r\n * boolean — CSG/boolean auxiliary modules (public API surface).\r\n *\r\n * This index.ts aggregates the public exports of boolean/ submodules so that\r\n * the umbrella entries (index.ts / browser.ts) can `export * from './boolean'`\r\n * without hand-listing individual symbols.\r\n *\r\n * Internal-only symbols (SimpleUnionFind, createWedge, createDowel,\r\n * computeCrossSectionWidth, etc.) are NOT re-exported here.\r\n */\r\n\r\n// cross-section\r\nexport { computeSection, buildExtrudedProfile } from './cross-section'\r\n\r\n// csg-core\r\nexport {\r\n manifoldToMeshData,\r\n weldPositionsWorker,\r\n dovetailBooleanSplit,\r\n dowelOrTenonBooleanSplit,\r\n chainBoolean,\r\n meshToManifold,\r\n} from './csg-core'\r\n\r\n// deriveNormals\r\nexport { deriveNormals } from './deriveNormals'\r\n\r\n// extrude-helpers\r\nexport { buildExtrudeParts, makeWorldPlane } from './extrude-helpers'\r\nexport type { ExtrudeParts, ExtrudeOffsetMode } from './extrude-helpers'\r\n\r\n// joinery-shapes\r\nexport {\r\n buildWedgeGeometry,\r\n buildDowelGeometry,\r\n buildStraightTenonGeometry,\r\n} from './joinery-shapes'\r\nexport type { JoineryMeshData } from './joinery-shapes'\r\n\r\n// csg-backend\r\nexport { setCsgBackend } from './csg-backend'\r\n\r\n// geo-convert\r\nexport { geoToManifoldMesh, manifoldMeshToGeo } from './geo-convert'\r\nexport type {\r\n ManifoldMeshData,\r\n BooleanOperation,\r\n DovetailGrooveParams,\r\n DowelSplitParams,\r\n StraightTenonSplitParams,\r\n} from './geo-convert'\r\n\r\n// manifold-preview (ManifoldMeshData aliased to avoid clash with geo-convert's)\r\nexport { previewMeshIntersect } from './manifold-preview'\r\nexport type { ManifoldMeshData as PreviewManifoldMeshData } from './manifold-preview'\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/boolean/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGrE,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAGzB,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AASpE,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA","sourcesContent":["/**\n * boolean — CSG/boolean auxiliary modules (public API surface).\n *\n * This index.ts aggregates the public exports of boolean/ submodules so that\n * the umbrella entries (index.ts / browser.ts) can `export * from './boolean'`\n * without hand-listing individual symbols.\n *\n * Internal-only symbols (SimpleUnionFind, createWedge, createDowel,\n * computeCrossSectionWidth, etc.) are NOT re-exported here.\n */\n\n// cross-section\nexport { computeSection, buildExtrudedProfile } from './cross-section'\n\n// csg-core\nexport {\n manifoldToMeshData,\n weldPositionsWorker,\n dovetailBooleanSplit,\n dowelOrTenonBooleanSplit,\n chainBoolean,\n meshToManifold,\n} from './csg-core'\n\n// deriveNormals\nexport { deriveNormals } from './deriveNormals'\n\n// extrude-helpers\nexport { buildExtrudeParts, makeWorldPlane } from './extrude-helpers'\nexport type { ExtrudeParts, ExtrudeOffsetMode } from './extrude-helpers'\n\n// joinery-shapes\nexport {\n buildWedgeGeometry,\n buildDowelGeometry,\n buildStraightTenonGeometry,\n} from './joinery-shapes'\nexport type { JoineryMeshData } from './joinery-shapes'\n\n// csg-backend\nexport { setCsgBackend } from './csg-backend'\n\n// geo-convert\nexport { geoToManifoldMesh, manifoldMeshToGeo } from './geo-convert'\nexport type {\n ManifoldMeshData,\n BooleanOperation,\n DovetailGrooveParams,\n DowelSplitParams,\n StraightTenonSplitParams,\n} from './geo-convert'\n\n// manifold-preview (ManifoldMeshData aliased to avoid clash with geo-convert's)\nexport { previewMeshIntersect } from './manifold-preview'\nexport type { ManifoldMeshData as PreviewManifoldMeshData } from './manifold-preview'\n"]}