@faicad/faijs 0.30.9 → 0.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1707) hide show
  1. package/dist/api/align/index.d.ts +64 -0
  2. package/dist/api/align/index.d.ts.map +1 -0
  3. package/dist/api/align/index.js +101 -0
  4. package/dist/api/align/index.js.map +1 -0
  5. package/dist/api/api-namespace.d.ts +5 -4
  6. package/dist/api/api-namespace.d.ts.map +1 -1
  7. package/dist/api/api-namespace.js +45 -7
  8. package/dist/api/api-namespace.js.map +1 -1
  9. package/dist/api/boolean-op/index.d.ts +65 -0
  10. package/dist/api/boolean-op/index.d.ts.map +1 -0
  11. package/dist/api/boolean-op/index.js +114 -0
  12. package/dist/api/boolean-op/index.js.map +1 -0
  13. package/dist/api/boolean.d.ts.map +1 -1
  14. package/dist/api/boolean.js +19 -27
  15. package/dist/api/boolean.js.map +1 -1
  16. package/dist/api/brep-operations/healingFns.d.ts +13 -0
  17. package/dist/api/brep-operations/healingFns.d.ts.map +1 -1
  18. package/dist/api/brep-operations/healingFns.js +28 -1
  19. package/dist/api/brep-operations/healingFns.js.map +1 -1
  20. package/dist/api/brep-operations/joinery-brep.js +10 -10
  21. package/dist/api/brep-operations/joinery-brep.js.map +1 -1
  22. package/dist/api/brep-operations/topologyFns.d.ts +27 -6
  23. package/dist/api/brep-operations/topologyFns.d.ts.map +1 -1
  24. package/dist/api/brep-operations/topologyFns.js +46 -22
  25. package/dist/api/brep-operations/topologyFns.js.map +1 -1
  26. package/dist/api/chamfer.d.ts +5 -4
  27. package/dist/api/chamfer.d.ts.map +1 -1
  28. package/dist/api/chamfer.js +13 -11
  29. package/dist/api/chamfer.js.map +1 -1
  30. package/dist/api/curve-sketch/index.d.ts.map +1 -1
  31. package/dist/api/curve-sketch/index.js +12 -3
  32. package/dist/api/curve-sketch/index.js.map +1 -1
  33. package/dist/api/draft.js +2 -3
  34. package/dist/api/draft.js.map +1 -1
  35. package/dist/api/engrave.d.ts.map +1 -1
  36. package/dist/api/engrave.js +4 -13
  37. package/dist/api/engrave.js.map +1 -1
  38. package/dist/api/export-3mf.d.ts +73 -0
  39. package/dist/api/export-3mf.d.ts.map +1 -0
  40. package/dist/api/export-3mf.js +121 -0
  41. package/dist/api/export-3mf.js.map +1 -0
  42. package/dist/api/export-brep.d.ts +6 -0
  43. package/dist/api/export-brep.d.ts.map +1 -1
  44. package/dist/api/export-brep.js +11 -2
  45. package/dist/api/export-brep.js.map +1 -1
  46. package/dist/api/export-step.d.ts +67 -0
  47. package/dist/api/export-step.d.ts.map +1 -0
  48. package/dist/api/export-step.js +98 -0
  49. package/dist/api/export-step.js.map +1 -0
  50. package/dist/api/export-stl.d.ts +8 -0
  51. package/dist/api/export-stl.d.ts.map +1 -1
  52. package/dist/api/export-stl.js +23 -8
  53. package/dist/api/export-stl.js.map +1 -1
  54. package/dist/api/extrude.d.ts.map +1 -1
  55. package/dist/api/extrude.js +18 -17
  56. package/dist/api/extrude.js.map +1 -1
  57. package/dist/api/feature-repair.d.ts +1 -1
  58. package/dist/api/feature-repair.d.ts.map +1 -1
  59. package/dist/api/feature-repair.js +7 -7
  60. package/dist/api/feature-repair.js.map +1 -1
  61. package/dist/api/fillet-variable.d.ts.map +1 -1
  62. package/dist/api/fillet-variable.js +1 -1
  63. package/dist/api/fillet-variable.js.map +1 -1
  64. package/dist/api/fillet.d.ts +3 -3
  65. package/dist/api/fillet.d.ts.map +1 -1
  66. package/dist/api/fillet.js +4 -4
  67. package/dist/api/fillet.js.map +1 -1
  68. package/dist/api/generated/operations.js +16 -16
  69. package/dist/api/generated/operations.js.map +1 -1
  70. package/dist/api/generated/script-face-manifest.d.ts +1 -1
  71. package/dist/api/generated/script-face-manifest.js +3 -3
  72. package/dist/api/generated/script-face-manifest.js.map +1 -1
  73. package/dist/api/generated/script-face.d.ts +1 -1
  74. package/dist/api/generated/script-face.js +1 -1
  75. package/dist/api/generated/script-face.js.map +1 -1
  76. package/dist/api/generated/sketching.js +1 -1
  77. package/dist/api/generated/sketching.js.map +1 -1
  78. package/dist/api/generated/topology.js +18 -18
  79. package/dist/api/generated/topology.js.map +1 -1
  80. package/dist/api/helix.d.ts +1 -1
  81. package/dist/api/helix.d.ts.map +1 -1
  82. package/dist/api/helix.js +2 -1
  83. package/dist/api/helix.js.map +1 -1
  84. package/dist/api/import-brep.d.ts.map +1 -1
  85. package/dist/api/import-brep.js +1 -0
  86. package/dist/api/import-brep.js.map +1 -1
  87. package/dist/api/import-step.d.ts.map +1 -1
  88. package/dist/api/import-step.js +1 -0
  89. package/dist/api/import-step.js.map +1 -1
  90. package/dist/api/index.d.ts +9 -3
  91. package/dist/api/index.d.ts.map +1 -1
  92. package/dist/api/index.js +19 -4
  93. package/dist/api/index.js.map +1 -1
  94. package/dist/api/internal/compat-op.d.ts +6 -6
  95. package/dist/api/internal/compat-op.d.ts.map +1 -1
  96. package/dist/api/internal/compat-op.js +7 -9
  97. package/dist/api/internal/compat-op.js.map +1 -1
  98. package/dist/api/internal/export-members.d.ts +80 -0
  99. package/dist/api/internal/export-members.d.ts.map +1 -0
  100. package/dist/api/internal/export-members.js +104 -0
  101. package/dist/api/internal/export-members.js.map +1 -0
  102. package/dist/api/internal/l3-bridge.d.ts +17 -0
  103. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  104. package/dist/api/internal/l3-bridge.js +23 -1
  105. package/dist/api/internal/l3-bridge.js.map +1 -1
  106. package/dist/api/loft-advanced.d.ts +66 -0
  107. package/dist/api/loft-advanced.d.ts.map +1 -0
  108. package/dist/api/loft-advanced.js +112 -0
  109. package/dist/api/loft-advanced.js.map +1 -0
  110. package/dist/api/loft.d.ts +16 -23
  111. package/dist/api/loft.d.ts.map +1 -1
  112. package/dist/api/loft.js +22 -40
  113. package/dist/api/loft.js.map +1 -1
  114. package/dist/api/measure-query/index.d.ts +262 -0
  115. package/dist/api/measure-query/index.d.ts.map +1 -0
  116. package/dist/api/measure-query/index.js +392 -0
  117. package/dist/api/measure-query/index.js.map +1 -0
  118. package/dist/api/pattern.d.ts.map +1 -1
  119. package/dist/api/pattern.js +1 -3
  120. package/dist/api/pattern.js.map +1 -1
  121. package/dist/api/place.d.ts.map +1 -1
  122. package/dist/api/place.js +1 -0
  123. package/dist/api/place.js.map +1 -1
  124. package/dist/api/primitives.d.ts +6 -6
  125. package/dist/api/primitives.d.ts.map +1 -1
  126. package/dist/api/primitives.js +12 -11
  127. package/dist/api/primitives.js.map +1 -1
  128. package/dist/api/profile.d.ts.map +1 -1
  129. package/dist/api/profile.js +1 -1
  130. package/dist/api/profile.js.map +1 -1
  131. package/dist/api/punch-hole.d.ts.map +1 -1
  132. package/dist/api/punch-hole.js +1 -1
  133. package/dist/api/punch-hole.js.map +1 -1
  134. package/dist/api/replicate.d.ts +5 -7
  135. package/dist/api/replicate.d.ts.map +1 -1
  136. package/dist/api/replicate.js +24 -56
  137. package/dist/api/replicate.js.map +1 -1
  138. package/dist/api/revolve.d.ts.map +1 -1
  139. package/dist/api/revolve.js +1 -0
  140. package/dist/api/revolve.js.map +1 -1
  141. package/dist/api/screw.d.ts.map +1 -1
  142. package/dist/api/screw.js +1 -0
  143. package/dist/api/screw.js.map +1 -1
  144. package/dist/api/sdf.d.ts.map +1 -1
  145. package/dist/api/sdf.js +1 -0
  146. package/dist/api/sdf.js.map +1 -1
  147. package/dist/api/section-by-plane.d.ts.map +1 -1
  148. package/dist/api/section-by-plane.js +0 -1
  149. package/dist/api/section-by-plane.js.map +1 -1
  150. package/dist/api/shell.d.ts +1 -1
  151. package/dist/api/shell.d.ts.map +1 -1
  152. package/dist/api/shell.js +12 -2
  153. package/dist/api/shell.js.map +1 -1
  154. package/dist/api/sketch-on-face.d.ts +34 -30
  155. package/dist/api/sketch-on-face.d.ts.map +1 -1
  156. package/dist/api/sketch-on-face.js +40 -28
  157. package/dist/api/sketch-on-face.js.map +1 -1
  158. package/dist/api/sketch-on-plane.d.ts.map +1 -1
  159. package/dist/api/sketch-on-plane.js +1 -1
  160. package/dist/api/sketch-on-plane.js.map +1 -1
  161. package/dist/api/sketch-on-surface.d.ts +76 -0
  162. package/dist/api/sketch-on-surface.d.ts.map +1 -0
  163. package/dist/api/sketch-on-surface.js +99 -0
  164. package/dist/api/sketch-on-surface.js.map +1 -0
  165. package/dist/api/solid-offset/index.d.ts.map +1 -1
  166. package/dist/api/solid-offset/index.js +1 -0
  167. package/dist/api/solid-offset/index.js.map +1 -1
  168. package/dist/api/split-by-plane.d.ts.map +1 -1
  169. package/dist/api/split-by-plane.js +0 -1
  170. package/dist/api/split-by-plane.js.map +1 -1
  171. package/dist/api/split.d.ts +1 -1
  172. package/dist/api/split.d.ts.map +1 -1
  173. package/dist/api/split.js +2 -1
  174. package/dist/api/split.js.map +1 -1
  175. package/dist/api/surface/arg-spec.d.ts +8 -16
  176. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  177. package/dist/api/surface/arg-spec.js +21 -28
  178. package/dist/api/surface/arg-spec.js.map +1 -1
  179. package/dist/api/surface-face/index.d.ts.map +1 -1
  180. package/dist/api/surface-face/index.js +5 -0
  181. package/dist/api/surface-face/index.js.map +1 -1
  182. package/dist/api/surface.d.ts.map +1 -1
  183. package/dist/api/surface.js +1 -0
  184. package/dist/api/surface.js.map +1 -1
  185. package/dist/api/sweep-advanced.d.ts +117 -0
  186. package/dist/api/sweep-advanced.d.ts.map +1 -0
  187. package/dist/api/sweep-advanced.js +94 -0
  188. package/dist/api/sweep-advanced.js.map +1 -0
  189. package/dist/api/sweep.d.ts +18 -76
  190. package/dist/api/sweep.d.ts.map +1 -1
  191. package/dist/api/sweep.js +27 -28
  192. package/dist/api/sweep.js.map +1 -1
  193. package/dist/api/thicken.d.ts.map +1 -1
  194. package/dist/api/thicken.js +12 -2
  195. package/dist/api/thicken.js.map +1 -1
  196. package/dist/api/transform.d.ts +3 -3
  197. package/dist/api/transform.d.ts.map +1 -1
  198. package/dist/api/transform.js +49 -17
  199. package/dist/api/transform.js.map +1 -1
  200. package/dist/api/wire.d.ts.map +1 -1
  201. package/dist/api/wire.js +1 -0
  202. package/dist/api/wire.js.map +1 -1
  203. package/dist/boolean/cross-section.d.ts +7 -6
  204. package/dist/boolean/cross-section.d.ts.map +1 -1
  205. package/dist/boolean/cross-section.js +38 -27
  206. package/dist/boolean/cross-section.js.map +1 -1
  207. package/dist/boolean/deriveNormals.d.ts +5 -5
  208. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  209. package/dist/boolean/deriveNormals.js +18 -18
  210. package/dist/boolean/deriveNormals.js.map +1 -1
  211. package/dist/boolean/extrude-helpers.d.ts +6 -6
  212. package/dist/boolean/extrude-helpers.d.ts.map +1 -1
  213. package/dist/boolean/extrude-helpers.js +6 -6
  214. package/dist/boolean/extrude-helpers.js.map +1 -1
  215. package/dist/boolean/geo-convert.d.ts +11 -8
  216. package/dist/boolean/geo-convert.d.ts.map +1 -1
  217. package/dist/boolean/geo-convert.js +17 -73
  218. package/dist/boolean/geo-convert.js.map +1 -1
  219. package/dist/boolean/index.d.ts +23 -0
  220. package/dist/boolean/index.d.ts.map +1 -0
  221. package/dist/boolean/index.js +27 -0
  222. package/dist/boolean/index.js.map +1 -0
  223. package/dist/brep/brep-chain.d.ts +1 -19
  224. package/dist/brep/brep-chain.d.ts.map +1 -1
  225. package/dist/brep/brep-chain.js +0 -1
  226. package/dist/brep/brep-chain.js.map +1 -1
  227. package/dist/brep/brep-ops.d.ts +9 -6
  228. package/dist/brep/brep-ops.d.ts.map +1 -1
  229. package/dist/brep/brep-ops.js +51 -47
  230. package/dist/brep/brep-ops.js.map +1 -1
  231. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  232. package/dist/brep/engine/adapters/brep-mock.js +24 -3
  233. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  234. package/dist/brep/engine/adapters/brepkit.d.ts +4 -3
  235. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  236. package/dist/brep/engine/adapters/brepkit.js +4 -98
  237. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  238. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  239. package/dist/brep/engine/adapters/occt.js +0 -144
  240. package/dist/brep/engine/adapters/occt.js.map +1 -1
  241. package/dist/brep/engine/native-history.d.ts +27 -0
  242. package/dist/brep/engine/native-history.d.ts.map +1 -0
  243. package/dist/brep/engine/native-history.js +54 -0
  244. package/dist/brep/engine/native-history.js.map +1 -0
  245. package/dist/brep/engine/primitives.d.ts +30 -0
  246. package/dist/brep/engine/primitives.d.ts.map +1 -1
  247. package/dist/brep/engine/primitives.js.map +1 -1
  248. package/dist/brep/engine/registry.d.ts +2 -4
  249. package/dist/brep/engine/registry.d.ts.map +1 -1
  250. package/dist/brep/engine/registry.js +1 -1
  251. package/dist/brep/engine/registry.js.map +1 -1
  252. package/dist/brep/engine/types.d.ts +35 -77
  253. package/dist/brep/engine/types.d.ts.map +1 -1
  254. package/dist/brep/engine/types.js.map +1 -1
  255. package/dist/brep/export/export-model.d.ts +21 -0
  256. package/dist/brep/export/export-model.d.ts.map +1 -1
  257. package/dist/brep/export/export-model.js +171 -73
  258. package/dist/brep/export/export-model.js.map +1 -1
  259. package/dist/brep/export/step.d.ts +17 -1
  260. package/dist/brep/export/step.d.ts.map +1 -1
  261. package/dist/brep/export/step.js +133 -0
  262. package/dist/brep/export/step.js.map +1 -1
  263. package/dist/brep/export/stl.d.ts +22 -1
  264. package/dist/brep/export/stl.d.ts.map +1 -1
  265. package/dist/brep/export/stl.js +58 -10
  266. package/dist/brep/export/stl.js.map +1 -1
  267. package/dist/brep/export/transform12.d.ts +47 -0
  268. package/dist/brep/export/transform12.d.ts.map +1 -0
  269. package/dist/brep/export/transform12.js +87 -0
  270. package/dist/brep/export/transform12.js.map +1 -0
  271. package/dist/brep/face-evolution.d.ts +53 -0
  272. package/dist/brep/face-evolution.d.ts.map +1 -1
  273. package/dist/brep/face-evolution.js +65 -0
  274. package/dist/brep/face-evolution.js.map +1 -1
  275. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  276. package/dist/brepkit-kernel/brepkitKernel.js +138 -0
  277. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  278. package/dist/browser-host/index.d.ts +4 -1
  279. package/dist/browser-host/index.d.ts.map +1 -1
  280. package/dist/browser-host/index.js +7 -1
  281. package/dist/browser-host/index.js.map +1 -1
  282. package/dist/browser.d.ts +4 -8
  283. package/dist/browser.d.ts.map +1 -1
  284. package/dist/browser.js +4 -26
  285. package/dist/browser.js.map +1 -1
  286. package/dist/cad-runtime/backend-dispatch.d.ts +13 -58
  287. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  288. package/dist/cad-runtime/backend-dispatch.js +22 -80
  289. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  290. package/dist/cad-runtime/content-key.d.ts +3 -3
  291. package/dist/cad-runtime/content-key.js +3 -3
  292. package/dist/cad-runtime/content-key.js.map +1 -1
  293. package/dist/cad-runtime/ports.d.ts +28 -0
  294. package/dist/cad-runtime/ports.d.ts.map +1 -1
  295. package/dist/cad-runtime/ports.js.map +1 -1
  296. package/dist/cad-runtime/runtime.d.ts +33 -12
  297. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  298. package/dist/cad-runtime/runtime.js +49 -50
  299. package/dist/cad-runtime/runtime.js.map +1 -1
  300. package/dist/define-op.d.ts +22 -18
  301. package/dist/define-op.d.ts.map +1 -1
  302. package/dist/define-op.js +5 -20
  303. package/dist/define-op.js.map +1 -1
  304. package/dist/env-agnostic.d.ts +2 -2
  305. package/dist/env-agnostic.d.ts.map +1 -1
  306. package/dist/env-agnostic.js +1 -1
  307. package/dist/env-agnostic.js.map +1 -1
  308. package/dist/index.d.ts +14 -64
  309. package/dist/index.d.ts.map +1 -1
  310. package/dist/index.js +17 -75
  311. package/dist/index.js.map +1 -1
  312. package/dist/lang/codegen.d.ts +14 -3
  313. package/dist/lang/codegen.d.ts.map +1 -1
  314. package/dist/lang/codegen.js +80 -5
  315. package/dist/lang/codegen.js.map +1 -1
  316. package/dist/lang/metadata-extractor.d.ts +10 -3
  317. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  318. package/dist/lang/metadata-extractor.js +160 -65
  319. package/dist/lang/metadata-extractor.js.map +1 -1
  320. package/dist/lang/symbol-table.generated.d.ts +20 -0
  321. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  322. package/dist/lang/symbol-table.generated.js +20 -0
  323. package/dist/lang/symbol-table.generated.js.map +1 -1
  324. package/dist/math3d/Box3.d.ts +86 -0
  325. package/dist/math3d/Box3.d.ts.map +1 -0
  326. package/dist/math3d/Box3.js +149 -0
  327. package/dist/math3d/Box3.js.map +1 -0
  328. package/dist/math3d/Euler.d.ts +64 -0
  329. package/dist/math3d/Euler.d.ts.map +1 -0
  330. package/dist/math3d/Euler.js +94 -0
  331. package/dist/math3d/Euler.js.map +1 -0
  332. package/dist/math3d/Mat4.d.ts +196 -0
  333. package/dist/math3d/Mat4.d.ts.map +1 -0
  334. package/dist/math3d/Mat4.js +518 -0
  335. package/dist/math3d/Mat4.js.map +1 -0
  336. package/dist/math3d/Plane.d.ts +67 -0
  337. package/dist/math3d/Plane.d.ts.map +1 -0
  338. package/dist/math3d/Plane.js +90 -0
  339. package/dist/math3d/Plane.js.map +1 -0
  340. package/dist/math3d/Quat.d.ts +163 -0
  341. package/dist/math3d/Quat.d.ts.map +1 -0
  342. package/dist/math3d/Quat.js +408 -0
  343. package/dist/math3d/Quat.js.map +1 -0
  344. package/dist/math3d/Vec2.d.ts +185 -0
  345. package/dist/math3d/Vec2.d.ts.map +1 -0
  346. package/dist/math3d/Vec2.js +276 -0
  347. package/dist/math3d/Vec2.js.map +1 -0
  348. package/dist/math3d/Vec3.d.ts +326 -0
  349. package/dist/math3d/Vec3.d.ts.map +1 -0
  350. package/dist/math3d/Vec3.js +521 -0
  351. package/dist/math3d/Vec3.js.map +1 -0
  352. package/dist/math3d/index.d.ts +19 -0
  353. package/dist/math3d/index.d.ts.map +1 -0
  354. package/dist/math3d/index.js +19 -0
  355. package/dist/math3d/index.js.map +1 -0
  356. package/dist/mesh/decoration-provider.d.ts +2 -2
  357. package/dist/mesh/decoration-provider.d.ts.map +1 -1
  358. package/dist/mesh/decoration-provider.js.map +1 -1
  359. package/dist/mesh/engrave.d.ts.map +1 -1
  360. package/dist/mesh/engrave.js +36 -37
  361. package/dist/mesh/engrave.js.map +1 -1
  362. package/dist/mesh/index.d.ts +18 -23
  363. package/dist/mesh/index.d.ts.map +1 -1
  364. package/dist/mesh/index.js +18 -20
  365. package/dist/mesh/index.js.map +1 -1
  366. package/dist/mesh/io.d.ts +42 -14
  367. package/dist/mesh/io.d.ts.map +1 -1
  368. package/dist/mesh/io.js +83 -20
  369. package/dist/mesh/io.js.map +1 -1
  370. package/dist/mesh/knurl/KnurlGenerator.d.ts +8 -7
  371. package/dist/mesh/knurl/KnurlGenerator.d.ts.map +1 -1
  372. package/dist/mesh/knurl/KnurlGenerator.js +9 -9
  373. package/dist/mesh/knurl/KnurlGenerator.js.map +1 -1
  374. package/dist/mesh/knurl/displacement.d.ts +7 -6
  375. package/dist/mesh/knurl/displacement.d.ts.map +1 -1
  376. package/dist/mesh/knurl/displacement.js +29 -29
  377. package/dist/mesh/knurl/displacement.js.map +1 -1
  378. package/dist/mesh/knurl/subdivision.d.ts +3 -3
  379. package/dist/mesh/knurl/subdivision.d.ts.map +1 -1
  380. package/dist/mesh/knurl/subdivision.js +21 -15
  381. package/dist/mesh/knurl/subdivision.js.map +1 -1
  382. package/dist/mesh/knurl/textureLoader.d.ts +3 -3
  383. package/dist/mesh/knurl/textureLoader.d.ts.map +1 -1
  384. package/dist/mesh/knurl/textureLoader.js.map +1 -1
  385. package/dist/mesh/meshdata/index.d.ts +12 -0
  386. package/dist/mesh/meshdata/index.d.ts.map +1 -0
  387. package/dist/mesh/meshdata/index.js +12 -0
  388. package/dist/mesh/meshdata/index.js.map +1 -0
  389. package/dist/mesh/meshdata/ops.d.ts +62 -0
  390. package/dist/mesh/meshdata/ops.d.ts.map +1 -0
  391. package/dist/mesh/meshdata/ops.js +160 -0
  392. package/dist/mesh/meshdata/ops.js.map +1 -0
  393. package/dist/mesh/meshdata/parametric.d.ts +70 -0
  394. package/dist/mesh/meshdata/parametric.d.ts.map +1 -0
  395. package/dist/mesh/meshdata/parametric.js +213 -0
  396. package/dist/mesh/meshdata/parametric.js.map +1 -0
  397. package/dist/mesh/meshdata/weld.d.ts +21 -0
  398. package/dist/mesh/meshdata/weld.d.ts.map +1 -0
  399. package/dist/mesh/meshdata/weld.js +50 -0
  400. package/dist/mesh/meshdata/weld.js.map +1 -0
  401. package/dist/mesh/primitives.d.ts +1 -1
  402. package/dist/mesh/primitives.d.ts.map +1 -1
  403. package/dist/mesh/primitives.js +38 -39
  404. package/dist/mesh/primitives.js.map +1 -1
  405. package/dist/mesh/query.js +11 -11
  406. package/dist/mesh/query.js.map +1 -1
  407. package/dist/mesh/stl-loader.d.ts +7 -7
  408. package/dist/mesh/stl-loader.d.ts.map +1 -1
  409. package/dist/mesh/stl-loader.js +12 -24
  410. package/dist/mesh/stl-loader.js.map +1 -1
  411. package/dist/mesh/threemf-loader.d.ts +38 -4
  412. package/dist/mesh/threemf-loader.d.ts.map +1 -1
  413. package/dist/mesh/threemf-loader.js +115 -34
  414. package/dist/mesh/threemf-loader.js.map +1 -1
  415. package/dist/mesh/threemf-view.d.ts +11 -11
  416. package/dist/mesh/threemf-view.d.ts.map +1 -1
  417. package/dist/mesh/threemf-view.js +10 -10
  418. package/dist/mesh/threemf-view.js.map +1 -1
  419. package/dist/mesh/transform.d.ts +14 -8
  420. package/dist/mesh/transform.d.ts.map +1 -1
  421. package/dist/mesh/transform.js +18 -13
  422. package/dist/mesh/transform.js.map +1 -1
  423. package/dist/mesh/types.d.ts +32 -0
  424. package/dist/mesh/types.d.ts.map +1 -1
  425. package/dist/mesh/types.js.map +1 -1
  426. package/dist/node-host/execute-script.d.ts +2 -1
  427. package/dist/node-host/execute-script.d.ts.map +1 -1
  428. package/dist/node-host/execute-script.js +5 -4
  429. package/dist/node-host/execute-script.js.map +1 -1
  430. package/dist/node-host/index.d.ts +1 -0
  431. package/dist/node-host/index.d.ts.map +1 -1
  432. package/dist/node-host/index.js +4 -0
  433. package/dist/node-host/index.js.map +1 -1
  434. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  435. package/dist/occt-kernel/occt-primitives.js +20 -0
  436. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  437. package/dist/primitives/brep-primitives.d.ts +8 -12
  438. package/dist/primitives/brep-primitives.d.ts.map +1 -1
  439. package/dist/primitives/brep-primitives.js +10 -28
  440. package/dist/primitives/brep-primitives.js.map +1 -1
  441. package/dist/primitives/index.d.ts +19 -0
  442. package/dist/primitives/index.d.ts.map +1 -0
  443. package/dist/primitives/index.js +21 -0
  444. package/dist/primitives/index.js.map +1 -0
  445. package/dist/primitives/mesh-primitives.d.ts +10 -10
  446. package/dist/primitives/mesh-primitives.d.ts.map +1 -1
  447. package/dist/primitives/mesh-primitives.js +29 -76
  448. package/dist/primitives/mesh-primitives.js.map +1 -1
  449. package/dist/primitives/screw/screw.d.ts +3 -3
  450. package/dist/primitives/screw/screw.d.ts.map +1 -1
  451. package/dist/primitives/screw/screw.js +10 -9
  452. package/dist/primitives/screw/screw.js.map +1 -1
  453. package/dist/runtime-state.d.ts +63 -29
  454. package/dist/runtime-state.d.ts.map +1 -1
  455. package/dist/runtime-state.js +57 -0
  456. package/dist/runtime-state.js.map +1 -1
  457. package/dist/sdf/index.d.ts +12 -0
  458. package/dist/sdf/index.d.ts.map +1 -0
  459. package/dist/sdf/index.js +13 -0
  460. package/dist/sdf/index.js.map +1 -0
  461. package/dist/sdk.d.ts +0 -1
  462. package/dist/sdk.d.ts.map +1 -1
  463. package/dist/sdk.js.map +1 -1
  464. package/dist/units.d.ts +40 -0
  465. package/dist/units.d.ts.map +1 -1
  466. package/dist/units.js.map +1 -1
  467. package/dist/weapp.d.ts +2 -2
  468. package/dist/weapp.d.ts.map +1 -1
  469. package/dist/weapp.js +1 -1
  470. package/dist/weapp.js.map +1 -1
  471. package/package.json +277 -38
  472. package/dist/api/brep-mirror/booleanFns.d.ts +0 -40
  473. package/dist/api/brep-mirror/booleanFns.d.ts.map +0 -1
  474. package/dist/api/brep-mirror/booleanFns.js +0 -104
  475. package/dist/api/brep-mirror/booleanFns.js.map +0 -1
  476. package/dist/api/brep-mirror/brepHelpers.d.ts +0 -55
  477. package/dist/api/brep-mirror/brepHelpers.d.ts.map +0 -1
  478. package/dist/api/brep-mirror/brepHelpers.js +0 -131
  479. package/dist/api/brep-mirror/brepHelpers.js.map +0 -1
  480. package/dist/api/brep-mirror/compoundFns.d.ts +0 -47
  481. package/dist/api/brep-mirror/compoundFns.d.ts.map +0 -1
  482. package/dist/api/brep-mirror/compoundFns.js +0 -300
  483. package/dist/api/brep-mirror/compoundFns.js.map +0 -1
  484. package/dist/api/brep-mirror/healingFns.d.ts +0 -78
  485. package/dist/api/brep-mirror/healingFns.d.ts.map +0 -1
  486. package/dist/api/brep-mirror/healingFns.js +0 -294
  487. package/dist/api/brep-mirror/healingFns.js.map +0 -1
  488. package/dist/api/brep-mirror/hullFns.d.ts +0 -20
  489. package/dist/api/brep-mirror/hullFns.d.ts.map +0 -1
  490. package/dist/api/brep-mirror/hullFns.js +0 -46
  491. package/dist/api/brep-mirror/hullFns.js.map +0 -1
  492. package/dist/api/brep-mirror/joinery-brep.d.ts +0 -172
  493. package/dist/api/brep-mirror/joinery-brep.d.ts.map +0 -1
  494. package/dist/api/brep-mirror/joinery-brep.js +0 -463
  495. package/dist/api/brep-mirror/joinery-brep.js.map +0 -1
  496. package/dist/api/brep-mirror/patternFns.d.ts +0 -43
  497. package/dist/api/brep-mirror/patternFns.d.ts.map +0 -1
  498. package/dist/api/brep-mirror/patternFns.js +0 -178
  499. package/dist/api/brep-mirror/patternFns.js.map +0 -1
  500. package/dist/api/brep-mirror/primitiveFns.d.ts +0 -42
  501. package/dist/api/brep-mirror/primitiveFns.d.ts.map +0 -1
  502. package/dist/api/brep-mirror/primitiveFns.js +0 -104
  503. package/dist/api/brep-mirror/primitiveFns.js.map +0 -1
  504. package/dist/api/brep-mirror/roofFns.d.ts +0 -24
  505. package/dist/api/brep-mirror/roofFns.d.ts.map +0 -1
  506. package/dist/api/brep-mirror/roofFns.js +0 -229
  507. package/dist/api/brep-mirror/roofFns.js.map +0 -1
  508. package/dist/api/brep-mirror/straightSkeleton.d.ts +0 -36
  509. package/dist/api/brep-mirror/straightSkeleton.d.ts.map +0 -1
  510. package/dist/api/brep-mirror/straightSkeleton.js +0 -443
  511. package/dist/api/brep-mirror/straightSkeleton.js.map +0 -1
  512. package/dist/api/brep-mirror/sweepFns.d.ts +0 -55
  513. package/dist/api/brep-mirror/sweepFns.d.ts.map +0 -1
  514. package/dist/api/brep-mirror/sweepFns.js +0 -200
  515. package/dist/api/brep-mirror/sweepFns.js.map +0 -1
  516. package/dist/api/brep-mirror/threadFns.d.ts +0 -83
  517. package/dist/api/brep-mirror/threadFns.d.ts.map +0 -1
  518. package/dist/api/brep-mirror/threadFns.js +0 -138
  519. package/dist/api/brep-mirror/threadFns.js.map +0 -1
  520. package/dist/api/brep-mirror/topologyFns.d.ts +0 -74
  521. package/dist/api/brep-mirror/topologyFns.d.ts.map +0 -1
  522. package/dist/api/brep-mirror/topologyFns.js +0 -276
  523. package/dist/api/brep-mirror/topologyFns.js.map +0 -1
  524. package/dist/api/brepjs-compat/constants.d.ts +0 -11
  525. package/dist/api/brepjs-compat/constants.d.ts.map +0 -1
  526. package/dist/api/brepjs-compat/constants.js +0 -11
  527. package/dist/api/brepjs-compat/constants.js.map +0 -1
  528. package/dist/api/brepjs-compat/index.d.ts +0 -21
  529. package/dist/api/brepjs-compat/index.d.ts.map +0 -1
  530. package/dist/api/brepjs-compat/index.js +0 -22
  531. package/dist/api/brepjs-compat/index.js.map +0 -1
  532. package/dist/api/brepjs-compat/planeOps.d.ts +0 -98
  533. package/dist/api/brepjs-compat/planeOps.d.ts.map +0 -1
  534. package/dist/api/brepjs-compat/planeOps.js +0 -170
  535. package/dist/api/brepjs-compat/planeOps.js.map +0 -1
  536. package/dist/api/brepjs-compat/planeTypes.d.ts +0 -24
  537. package/dist/api/brepjs-compat/planeTypes.d.ts.map +0 -1
  538. package/dist/api/brepjs-compat/planeTypes.js +0 -8
  539. package/dist/api/brepjs-compat/planeTypes.js.map +0 -1
  540. package/dist/api/brepjs-compat/types.d.ts +0 -64
  541. package/dist/api/brepjs-compat/types.d.ts.map +0 -1
  542. package/dist/api/brepjs-compat/types.js +0 -48
  543. package/dist/api/brepjs-compat/types.js.map +0 -1
  544. package/dist/api/brepjs-compat/vecOps.d.ts +0 -124
  545. package/dist/api/brepjs-compat/vecOps.d.ts.map +0 -1
  546. package/dist/api/brepjs-compat/vecOps.js +0 -202
  547. package/dist/api/brepjs-compat/vecOps.js.map +0 -1
  548. package/dist/api/generated/brepjs/index.d.ts +0 -310
  549. package/dist/api/generated/brepjs/index.d.ts.map +0 -1
  550. package/dist/api/generated/brepjs/index.js +0 -195
  551. package/dist/api/generated/brepjs/index.js.map +0 -1
  552. package/dist/api/generated/cad/script-face.d.ts +0 -12
  553. package/dist/api/generated/cad/script-face.d.ts.map +0 -1
  554. package/dist/api/generated/cad/script-face.js +0 -146
  555. package/dist/api/generated/cad/script-face.js.map +0 -1
  556. package/dist/api/internal/compat-projection.d.ts +0 -55
  557. package/dist/api/internal/compat-projection.d.ts.map +0 -1
  558. package/dist/api/internal/compat-projection.js +0 -75
  559. package/dist/api/internal/compat-projection.js.map +0 -1
  560. package/dist/api/occt-kernel-bridge.d.ts +0 -118
  561. package/dist/api/occt-kernel-bridge.d.ts.map +0 -1
  562. package/dist/api/occt-kernel-bridge.js +0 -283
  563. package/dist/api/occt-kernel-bridge.js.map +0 -1
  564. package/dist/api/sketch.d.ts +0 -80
  565. package/dist/api/sketch.d.ts.map +0 -1
  566. package/dist/api/sketch.js +0 -155
  567. package/dist/api/sketch.js.map +0 -1
  568. package/dist/api/surface/projection-overrides.d.ts +0 -38
  569. package/dist/api/surface/projection-overrides.d.ts.map +0 -1
  570. package/dist/api/surface/projection-overrides.js +0 -169
  571. package/dist/api/surface/projection-overrides.js.map +0 -1
  572. package/dist/brepjs-compat.d.ts +0 -20
  573. package/dist/brepjs-compat.d.ts.map +0 -1
  574. package/dist/brepjs-compat.js +0 -20
  575. package/dist/brepjs-compat.js.map +0 -1
  576. package/dist/cad-runtime/createRuntimeWithCad.d.ts +0 -22
  577. package/dist/cad-runtime/createRuntimeWithCad.d.ts.map +0 -1
  578. package/dist/cad-runtime/createRuntimeWithCad.js +0 -29
  579. package/dist/cad-runtime/createRuntimeWithCad.js.map +0 -1
  580. package/dist/fcstd/attachment.d.ts +0 -72
  581. package/dist/fcstd/attachment.d.ts.map +0 -1
  582. package/dist/fcstd/attachment.js +0 -93
  583. package/dist/fcstd/attachment.js.map +0 -1
  584. package/dist/fcstd/build-fai-zip.d.ts +0 -40
  585. package/dist/fcstd/build-fai-zip.d.ts.map +0 -1
  586. package/dist/fcstd/build-fai-zip.js +0 -111
  587. package/dist/fcstd/build-fai-zip.js.map +0 -1
  588. package/dist/fcstd/cli.d.ts +0 -3
  589. package/dist/fcstd/cli.d.ts.map +0 -1
  590. package/dist/fcstd/cli.js +0 -37
  591. package/dist/fcstd/cli.js.map +0 -1
  592. package/dist/fcstd/codegen.d.ts +0 -79
  593. package/dist/fcstd/codegen.d.ts.map +0 -1
  594. package/dist/fcstd/codegen.js +0 -605
  595. package/dist/fcstd/codegen.js.map +0 -1
  596. package/dist/fcstd/container.d.ts +0 -75
  597. package/dist/fcstd/container.d.ts.map +0 -1
  598. package/dist/fcstd/container.js +0 -36
  599. package/dist/fcstd/container.js.map +0 -1
  600. package/dist/fcstd/contour.d.ts +0 -43
  601. package/dist/fcstd/contour.d.ts.map +0 -1
  602. package/dist/fcstd/contour.js +0 -96
  603. package/dist/fcstd/contour.js.map +0 -1
  604. package/dist/fcstd/convert.d.ts +0 -63
  605. package/dist/fcstd/convert.d.ts.map +0 -1
  606. package/dist/fcstd/convert.js +0 -274
  607. package/dist/fcstd/convert.js.map +0 -1
  608. package/dist/fcstd/document.d.ts +0 -48
  609. package/dist/fcstd/document.d.ts.map +0 -1
  610. package/dist/fcstd/document.js +0 -140
  611. package/dist/fcstd/document.js.map +0 -1
  612. package/dist/fcstd/expressions.d.ts +0 -74
  613. package/dist/fcstd/expressions.d.ts.map +0 -1
  614. package/dist/fcstd/expressions.js +0 -157
  615. package/dist/fcstd/expressions.js.map +0 -1
  616. package/dist/fcstd/external-geo.d.ts +0 -49
  617. package/dist/fcstd/external-geo.d.ts.map +0 -1
  618. package/dist/fcstd/external-geo.js +0 -140
  619. package/dist/fcstd/external-geo.js.map +0 -1
  620. package/dist/fcstd/feature-translate.d.ts +0 -189
  621. package/dist/fcstd/feature-translate.d.ts.map +0 -1
  622. package/dist/fcstd/feature-translate.js +0 -968
  623. package/dist/fcstd/feature-translate.js.map +0 -1
  624. package/dist/fcstd/index.d.ts +0 -23
  625. package/dist/fcstd/index.d.ts.map +0 -1
  626. package/dist/fcstd/index.js +0 -19
  627. package/dist/fcstd/index.js.map +0 -1
  628. package/dist/fcstd/placement.d.ts +0 -93
  629. package/dist/fcstd/placement.d.ts.map +0 -1
  630. package/dist/fcstd/placement.js +0 -117
  631. package/dist/fcstd/placement.js.map +0 -1
  632. package/dist/fcstd/planegcs-backend.d.ts +0 -34
  633. package/dist/fcstd/planegcs-backend.d.ts.map +0 -1
  634. package/dist/fcstd/planegcs-backend.js +0 -626
  635. package/dist/fcstd/planegcs-backend.js.map +0 -1
  636. package/dist/fcstd/sketch-parse.d.ts +0 -181
  637. package/dist/fcstd/sketch-parse.d.ts.map +0 -1
  638. package/dist/fcstd/sketch-parse.js +0 -227
  639. package/dist/fcstd/sketch-parse.js.map +0 -1
  640. package/dist/fcstd/sketch-solver.d.ts +0 -63
  641. package/dist/fcstd/sketch-solver.d.ts.map +0 -1
  642. package/dist/fcstd/sketch-solver.js +0 -28
  643. package/dist/fcstd/sketch-solver.js.map +0 -1
  644. package/dist/fcstd/sketch-verify.d.ts +0 -43
  645. package/dist/fcstd/sketch-verify.d.ts.map +0 -1
  646. package/dist/fcstd/sketch-verify.js +0 -62
  647. package/dist/fcstd/sketch-verify.js.map +0 -1
  648. package/dist/fcstd/structural-types.d.ts +0 -83
  649. package/dist/fcstd/structural-types.d.ts.map +0 -1
  650. package/dist/fcstd/structural-types.js +0 -121
  651. package/dist/fcstd/structural-types.js.map +0 -1
  652. package/dist/fcstd/unpack.d.ts +0 -44
  653. package/dist/fcstd/unpack.d.ts.map +0 -1
  654. package/dist/fcstd/unpack.js +0 -64
  655. package/dist/fcstd/unpack.js.map +0 -1
  656. package/dist/fcstd-convert.d.ts +0 -30
  657. package/dist/fcstd-convert.d.ts.map +0 -1
  658. package/dist/fcstd-convert.js +0 -27
  659. package/dist/fcstd-convert.js.map +0 -1
  660. package/dist/mesh/creased-normals.d.ts +0 -50
  661. package/dist/mesh/creased-normals.d.ts.map +0 -1
  662. package/dist/mesh/creased-normals.js +0 -114
  663. package/dist/mesh/creased-normals.js.map +0 -1
  664. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +0 -260
  665. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +0 -1
  666. package/dist/occt-kernel/generated/occtPlatform.generated.js +0 -875
  667. package/dist/occt-kernel/generated/occtPlatform.generated.js.map +0 -1
  668. package/dist/occt-kernel/stepMetaParser.d.ts +0 -44
  669. package/dist/occt-kernel/stepMetaParser.d.ts.map +0 -1
  670. package/dist/occt-kernel/stepMetaParser.js +0 -166
  671. package/dist/occt-kernel/stepMetaParser.js.map +0 -1
  672. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts +0 -106
  673. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts.map +0 -1
  674. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js +0 -341
  675. package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js.map +0 -1
  676. package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts +0 -185
  677. package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts.map +0 -1
  678. package/dist/vendored/brepjs/2d/blueprints/blueprint.js +0 -361
  679. package/dist/vendored/brepjs/2d/blueprints/blueprint.js.map +0 -1
  680. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts +0 -15
  681. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts.map +0 -1
  682. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js +0 -28
  683. package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js.map +0 -1
  684. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts +0 -29
  685. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts.map +0 -1
  686. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js +0 -86
  687. package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js.map +0 -1
  688. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts +0 -57
  689. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts.map +0 -1
  690. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js +0 -92
  691. package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js.map +0 -1
  692. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts +0 -58
  693. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts.map +0 -1
  694. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js +0 -346
  695. package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js.map +0 -1
  696. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts +0 -30
  697. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts.map +0 -1
  698. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js +0 -45
  699. package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js.map +0 -1
  700. package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts +0 -68
  701. package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts.map +0 -1
  702. package/dist/vendored/brepjs/2d/blueprints/blueprints.js +0 -116
  703. package/dist/vendored/brepjs/2d/blueprints/blueprints.js.map +0 -1
  704. package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts +0 -68
  705. package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts.map +0 -1
  706. package/dist/vendored/brepjs/2d/blueprints/boolean2D.js +0 -362
  707. package/dist/vendored/brepjs/2d/blueprints/boolean2D.js.map +0 -1
  708. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts +0 -34
  709. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts.map +0 -1
  710. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js +0 -176
  711. package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js.map +0 -1
  712. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts +0 -55
  713. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts.map +0 -1
  714. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js +0 -110
  715. package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js.map +0 -1
  716. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts +0 -41
  717. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts.map +0 -1
  718. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js +0 -90
  719. package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js.map +0 -1
  720. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts +0 -85
  721. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts.map +0 -1
  722. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js +0 -136
  723. package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js.map +0 -1
  724. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts +0 -48
  725. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts.map +0 -1
  726. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js +0 -154
  727. package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js.map +0 -1
  728. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts +0 -342
  729. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts.map +0 -1
  730. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js +0 -32
  731. package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js.map +0 -1
  732. package/dist/vendored/brepjs/2d/blueprints/index.d.ts +0 -16
  733. package/dist/vendored/brepjs/2d/blueprints/index.d.ts.map +0 -1
  734. package/dist/vendored/brepjs/2d/blueprints/index.js +0 -13
  735. package/dist/vendored/brepjs/2d/blueprints/index.js.map +0 -1
  736. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts +0 -18
  737. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts.map +0 -1
  738. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js +0 -230
  739. package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js.map +0 -1
  740. package/dist/vendored/brepjs/2d/blueprints/lib.d.ts +0 -73
  741. package/dist/vendored/brepjs/2d/blueprints/lib.d.ts.map +0 -1
  742. package/dist/vendored/brepjs/2d/blueprints/lib.js +0 -103
  743. package/dist/vendored/brepjs/2d/blueprints/lib.js.map +0 -1
  744. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts +0 -31
  745. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts.map +0 -1
  746. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js +0 -226
  747. package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js.map +0 -1
  748. package/dist/vendored/brepjs/2d/blueprints/svg.d.ts +0 -22
  749. package/dist/vendored/brepjs/2d/blueprints/svg.d.ts.map +0 -1
  750. package/dist/vendored/brepjs/2d/blueprints/svg.js +0 -30
  751. package/dist/vendored/brepjs/2d/blueprints/svg.js.map +0 -1
  752. package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts +0 -124
  753. package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts.map +0 -1
  754. package/dist/vendored/brepjs/2d/curve2dGeometryFns.js +0 -235
  755. package/dist/vendored/brepjs/2d/curve2dGeometryFns.js.map +0 -1
  756. package/dist/vendored/brepjs/2d/curves.d.ts +0 -45
  757. package/dist/vendored/brepjs/2d/curves.d.ts.map +0 -1
  758. package/dist/vendored/brepjs/2d/curves.js +0 -139
  759. package/dist/vendored/brepjs/2d/curves.js.map +0 -1
  760. package/dist/vendored/brepjs/2d/lib/approximations.d.ts +0 -47
  761. package/dist/vendored/brepjs/2d/lib/approximations.d.ts.map +0 -1
  762. package/dist/vendored/brepjs/2d/lib/approximations.js +0 -82
  763. package/dist/vendored/brepjs/2d/lib/approximations.js.map +0 -1
  764. package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts +0 -39
  765. package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts.map +0 -1
  766. package/dist/vendored/brepjs/2d/lib/boundingBox2d.js +0 -88
  767. package/dist/vendored/brepjs/2d/lib/boundingBox2d.js.map +0 -1
  768. package/dist/vendored/brepjs/2d/lib/curve2D.d.ts +0 -82
  769. package/dist/vendored/brepjs/2d/lib/curve2D.d.ts.map +0 -1
  770. package/dist/vendored/brepjs/2d/lib/curve2D.js +0 -258
  771. package/dist/vendored/brepjs/2d/lib/curve2D.js.map +0 -1
  772. package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts +0 -53
  773. package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts.map +0 -1
  774. package/dist/vendored/brepjs/2d/lib/curve2dFns.js +0 -69
  775. package/dist/vendored/brepjs/2d/lib/curve2dFns.js.map +0 -1
  776. package/dist/vendored/brepjs/2d/lib/customCorners.d.ts +0 -29
  777. package/dist/vendored/brepjs/2d/lib/customCorners.d.ts.map +0 -1
  778. package/dist/vendored/brepjs/2d/lib/customCorners.js +0 -237
  779. package/dist/vendored/brepjs/2d/lib/customCorners.js.map +0 -1
  780. package/dist/vendored/brepjs/2d/lib/definitions.d.ts +0 -12
  781. package/dist/vendored/brepjs/2d/lib/definitions.d.ts.map +0 -1
  782. package/dist/vendored/brepjs/2d/lib/definitions.js +0 -19
  783. package/dist/vendored/brepjs/2d/lib/definitions.js.map +0 -1
  784. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts +0 -21
  785. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts.map +0 -1
  786. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js +0 -71
  787. package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js.map +0 -1
  788. package/dist/vendored/brepjs/2d/lib/index.d.ts +0 -14
  789. package/dist/vendored/brepjs/2d/lib/index.d.ts.map +0 -1
  790. package/dist/vendored/brepjs/2d/lib/index.js +0 -14
  791. package/dist/vendored/brepjs/2d/lib/index.js.map +0 -1
  792. package/dist/vendored/brepjs/2d/lib/intersections.d.ts +0 -34
  793. package/dist/vendored/brepjs/2d/lib/intersections.d.ts.map +0 -1
  794. package/dist/vendored/brepjs/2d/lib/intersections.js +0 -77
  795. package/dist/vendored/brepjs/2d/lib/intersections.js.map +0 -1
  796. package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts +0 -63
  797. package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts.map +0 -1
  798. package/dist/vendored/brepjs/2d/lib/makeCurves.js +0 -117
  799. package/dist/vendored/brepjs/2d/lib/makeCurves.js.map +0 -1
  800. package/dist/vendored/brepjs/2d/lib/offset.d.ts +0 -30
  801. package/dist/vendored/brepjs/2d/lib/offset.d.ts.map +0 -1
  802. package/dist/vendored/brepjs/2d/lib/offset.js +0 -109
  803. package/dist/vendored/brepjs/2d/lib/offset.js.map +0 -1
  804. package/dist/vendored/brepjs/2d/lib/precision.d.ts +0 -12
  805. package/dist/vendored/brepjs/2d/lib/precision.d.ts.map +0 -1
  806. package/dist/vendored/brepjs/2d/lib/precision.js +0 -12
  807. package/dist/vendored/brepjs/2d/lib/precision.js.map +0 -1
  808. package/dist/vendored/brepjs/2d/lib/stitching.d.ts +0 -15
  809. package/dist/vendored/brepjs/2d/lib/stitching.d.ts.map +0 -1
  810. package/dist/vendored/brepjs/2d/lib/stitching.js +0 -67
  811. package/dist/vendored/brepjs/2d/lib/stitching.js.map +0 -1
  812. package/dist/vendored/brepjs/2d/lib/svgPath.d.ts +0 -4
  813. package/dist/vendored/brepjs/2d/lib/svgPath.d.ts.map +0 -1
  814. package/dist/vendored/brepjs/2d/lib/svgPath.js +0 -114
  815. package/dist/vendored/brepjs/2d/lib/svgPath.js.map +0 -1
  816. package/dist/vendored/brepjs/2d/lib/utils.d.ts +0 -11
  817. package/dist/vendored/brepjs/2d/lib/utils.d.ts.map +0 -1
  818. package/dist/vendored/brepjs/2d/lib/utils.js +0 -24
  819. package/dist/vendored/brepjs/2d/lib/utils.js.map +0 -1
  820. package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts +0 -19
  821. package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts.map +0 -1
  822. package/dist/vendored/brepjs/2d/lib/vectorOperations.js +0 -26
  823. package/dist/vendored/brepjs/2d/lib/vectorOperations.js.map +0 -1
  824. package/dist/vendored/brepjs/2d.d.ts +0 -26
  825. package/dist/vendored/brepjs/2d.d.ts.map +0 -1
  826. package/dist/vendored/brepjs/2d.js +0 -33
  827. package/dist/vendored/brepjs/2d.js.map +0 -1
  828. package/dist/vendored/brepjs/core/constants.d.ts +0 -7
  829. package/dist/vendored/brepjs/core/constants.d.ts.map +0 -1
  830. package/dist/vendored/brepjs/core/constants.js +0 -7
  831. package/dist/vendored/brepjs/core/constants.js.map +0 -1
  832. package/dist/vendored/brepjs/core/curve2dHandle.d.ts +0 -35
  833. package/dist/vendored/brepjs/core/curve2dHandle.d.ts.map +0 -1
  834. package/dist/vendored/brepjs/core/curve2dHandle.js +0 -48
  835. package/dist/vendored/brepjs/core/curve2dHandle.js.map +0 -1
  836. package/dist/vendored/brepjs/core/dimensionTypes.d.ts +0 -61
  837. package/dist/vendored/brepjs/core/dimensionTypes.d.ts.map +0 -1
  838. package/dist/vendored/brepjs/core/dimensionTypes.js +0 -54
  839. package/dist/vendored/brepjs/core/dimensionTypes.js.map +0 -1
  840. package/dist/vendored/brepjs/core/disposal.d.ts +0 -136
  841. package/dist/vendored/brepjs/core/disposal.d.ts.map +0 -1
  842. package/dist/vendored/brepjs/core/disposal.js +0 -441
  843. package/dist/vendored/brepjs/core/disposal.js.map +0 -1
  844. package/dist/vendored/brepjs/core/errors.d.ts +0 -191
  845. package/dist/vendored/brepjs/core/errors.d.ts.map +0 -1
  846. package/dist/vendored/brepjs/core/errors.js +0 -238
  847. package/dist/vendored/brepjs/core/errors.js.map +0 -1
  848. package/dist/vendored/brepjs/core/kernelBoundary.d.ts +0 -40
  849. package/dist/vendored/brepjs/core/kernelBoundary.d.ts.map +0 -1
  850. package/dist/vendored/brepjs/core/kernelBoundary.js +0 -99
  851. package/dist/vendored/brepjs/core/kernelBoundary.js.map +0 -1
  852. package/dist/vendored/brepjs/core/kernelCall.d.ts +0 -48
  853. package/dist/vendored/brepjs/core/kernelCall.d.ts.map +0 -1
  854. package/dist/vendored/brepjs/core/kernelCall.js +0 -154
  855. package/dist/vendored/brepjs/core/kernelCall.js.map +0 -1
  856. package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts +0 -17
  857. package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts.map +0 -1
  858. package/dist/vendored/brepjs/core/kernelErrorTranslation.js +0 -98
  859. package/dist/vendored/brepjs/core/kernelErrorTranslation.js.map +0 -1
  860. package/dist/vendored/brepjs/core/planeOps.d.ts +0 -62
  861. package/dist/vendored/brepjs/core/planeOps.d.ts.map +0 -1
  862. package/dist/vendored/brepjs/core/planeOps.js +0 -148
  863. package/dist/vendored/brepjs/core/planeOps.js.map +0 -1
  864. package/dist/vendored/brepjs/core/planeTypes.d.ts +0 -22
  865. package/dist/vendored/brepjs/core/planeTypes.d.ts.map +0 -1
  866. package/dist/vendored/brepjs/core/planeTypes.js +0 -6
  867. package/dist/vendored/brepjs/core/planeTypes.js.map +0 -1
  868. package/dist/vendored/brepjs/core/result.d.ts +0 -85
  869. package/dist/vendored/brepjs/core/result.d.ts.map +0 -1
  870. package/dist/vendored/brepjs/core/result.js +0 -212
  871. package/dist/vendored/brepjs/core/result.js.map +0 -1
  872. package/dist/vendored/brepjs/core/shapeTypeCache.d.ts +0 -27
  873. package/dist/vendored/brepjs/core/shapeTypeCache.d.ts.map +0 -1
  874. package/dist/vendored/brepjs/core/shapeTypeCache.js +0 -40
  875. package/dist/vendored/brepjs/core/shapeTypeCache.js.map +0 -1
  876. package/dist/vendored/brepjs/core/shapeTypes.d.ts +0 -199
  877. package/dist/vendored/brepjs/core/shapeTypes.d.ts.map +0 -1
  878. package/dist/vendored/brepjs/core/shapeTypes.js +0 -267
  879. package/dist/vendored/brepjs/core/shapeTypes.js.map +0 -1
  880. package/dist/vendored/brepjs/core/typeDiscriminants.d.ts +0 -25
  881. package/dist/vendored/brepjs/core/typeDiscriminants.d.ts.map +0 -1
  882. package/dist/vendored/brepjs/core/typeDiscriminants.js +0 -50
  883. package/dist/vendored/brepjs/core/typeDiscriminants.js.map +0 -1
  884. package/dist/vendored/brepjs/core/types.d.ts +0 -51
  885. package/dist/vendored/brepjs/core/types.d.ts.map +0 -1
  886. package/dist/vendored/brepjs/core/types.js +0 -35
  887. package/dist/vendored/brepjs/core/types.js.map +0 -1
  888. package/dist/vendored/brepjs/core/validityTypes.d.ts +0 -143
  889. package/dist/vendored/brepjs/core/validityTypes.d.ts.map +0 -1
  890. package/dist/vendored/brepjs/core/validityTypes.js +0 -174
  891. package/dist/vendored/brepjs/core/validityTypes.js.map +0 -1
  892. package/dist/vendored/brepjs/core/vecOps.d.ts +0 -53
  893. package/dist/vendored/brepjs/core/vecOps.d.ts.map +0 -1
  894. package/dist/vendored/brepjs/core/vecOps.js +0 -131
  895. package/dist/vendored/brepjs/core/vecOps.js.map +0 -1
  896. package/dist/vendored/brepjs/core.d.ts +0 -17
  897. package/dist/vendored/brepjs/core.d.ts.map +0 -1
  898. package/dist/vendored/brepjs/core.js +0 -13
  899. package/dist/vendored/brepjs/core.js.map +0 -1
  900. package/dist/vendored/brepjs/gear/gearFns.d.ts +0 -148
  901. package/dist/vendored/brepjs/gear/gearFns.d.ts.map +0 -1
  902. package/dist/vendored/brepjs/gear/gearFns.js +0 -479
  903. package/dist/vendored/brepjs/gear/gearFns.js.map +0 -1
  904. package/dist/vendored/brepjs/gear/gearMath.d.ts +0 -89
  905. package/dist/vendored/brepjs/gear/gearMath.d.ts.map +0 -1
  906. package/dist/vendored/brepjs/gear/gearMath.js +0 -195
  907. package/dist/vendored/brepjs/gear/gearMath.js.map +0 -1
  908. package/dist/vendored/brepjs/gear/gearProfile.d.ts +0 -17
  909. package/dist/vendored/brepjs/gear/gearProfile.d.ts.map +0 -1
  910. package/dist/vendored/brepjs/gear/gearProfile.js +0 -159
  911. package/dist/vendored/brepjs/gear/gearProfile.js.map +0 -1
  912. package/dist/vendored/brepjs/gear/index.d.ts +0 -4
  913. package/dist/vendored/brepjs/gear/index.d.ts.map +0 -1
  914. package/dist/vendored/brepjs/gear/index.js +0 -4
  915. package/dist/vendored/brepjs/gear/index.js.map +0 -1
  916. package/dist/vendored/brepjs/index.d.ts +0 -152
  917. package/dist/vendored/brepjs/index.d.ts.map +0 -1
  918. package/dist/vendored/brepjs/index.js +0 -195
  919. package/dist/vendored/brepjs/index.js.map +0 -1
  920. package/dist/vendored/brepjs/io/dxfExportFns.d.ts +0 -74
  921. package/dist/vendored/brepjs/io/dxfExportFns.d.ts.map +0 -1
  922. package/dist/vendored/brepjs/io/dxfExportFns.js +0 -134
  923. package/dist/vendored/brepjs/io/dxfExportFns.js.map +0 -1
  924. package/dist/vendored/brepjs/io/dxfImportFns.d.ts +0 -20
  925. package/dist/vendored/brepjs/io/dxfImportFns.d.ts.map +0 -1
  926. package/dist/vendored/brepjs/io/dxfImportFns.js +0 -132
  927. package/dist/vendored/brepjs/io/dxfImportFns.js.map +0 -1
  928. package/dist/vendored/brepjs/io/gltfExportFns.d.ts +0 -97
  929. package/dist/vendored/brepjs/io/gltfExportFns.d.ts.map +0 -1
  930. package/dist/vendored/brepjs/io/gltfExportFns.js +0 -460
  931. package/dist/vendored/brepjs/io/gltfExportFns.js.map +0 -1
  932. package/dist/vendored/brepjs/io/gltfImportFns.d.ts +0 -21
  933. package/dist/vendored/brepjs/io/gltfImportFns.d.ts.map +0 -1
  934. package/dist/vendored/brepjs/io/gltfImportFns.js +0 -33
  935. package/dist/vendored/brepjs/io/gltfImportFns.js.map +0 -1
  936. package/dist/vendored/brepjs/io/importFns.d.ts +0 -56
  937. package/dist/vendored/brepjs/io/importFns.d.ts.map +0 -1
  938. package/dist/vendored/brepjs/io/importFns.js +0 -108
  939. package/dist/vendored/brepjs/io/importFns.js.map +0 -1
  940. package/dist/vendored/brepjs/io/ioUtils.d.ts +0 -22
  941. package/dist/vendored/brepjs/io/ioUtils.d.ts.map +0 -1
  942. package/dist/vendored/brepjs/io/ioUtils.js +0 -56
  943. package/dist/vendored/brepjs/io/ioUtils.js.map +0 -1
  944. package/dist/vendored/brepjs/io/objExportFns.d.ts +0 -23
  945. package/dist/vendored/brepjs/io/objExportFns.d.ts.map +0 -1
  946. package/dist/vendored/brepjs/io/objExportFns.js +0 -67
  947. package/dist/vendored/brepjs/io/objExportFns.js.map +0 -1
  948. package/dist/vendored/brepjs/io/objImportFns.d.ts +0 -26
  949. package/dist/vendored/brepjs/io/objImportFns.d.ts.map +0 -1
  950. package/dist/vendored/brepjs/io/objImportFns.js +0 -96
  951. package/dist/vendored/brepjs/io/objImportFns.js.map +0 -1
  952. package/dist/vendored/brepjs/io/stepConfigFns.d.ts +0 -30
  953. package/dist/vendored/brepjs/io/stepConfigFns.d.ts.map +0 -1
  954. package/dist/vendored/brepjs/io/stepConfigFns.js +0 -30
  955. package/dist/vendored/brepjs/io/stepConfigFns.js.map +0 -1
  956. package/dist/vendored/brepjs/io/svgImportFns.d.ts +0 -58
  957. package/dist/vendored/brepjs/io/svgImportFns.d.ts.map +0 -1
  958. package/dist/vendored/brepjs/io/svgImportFns.js +0 -394
  959. package/dist/vendored/brepjs/io/svgImportFns.js.map +0 -1
  960. package/dist/vendored/brepjs/io/threemfExportFns.d.ts +0 -48
  961. package/dist/vendored/brepjs/io/threemfExportFns.d.ts.map +0 -1
  962. package/dist/vendored/brepjs/io/threemfExportFns.js +0 -345
  963. package/dist/vendored/brepjs/io/threemfExportFns.js.map +0 -1
  964. package/dist/vendored/brepjs/io/threemfImportFns.d.ts +0 -22
  965. package/dist/vendored/brepjs/io/threemfImportFns.d.ts.map +0 -1
  966. package/dist/vendored/brepjs/io/threemfImportFns.js +0 -350
  967. package/dist/vendored/brepjs/io/threemfImportFns.js.map +0 -1
  968. package/dist/vendored/brepjs/io.d.ts +0 -17
  969. package/dist/vendored/brepjs/io.d.ts.map +0 -1
  970. package/dist/vendored/brepjs/io.js +0 -20
  971. package/dist/vendored/brepjs/io.js.map +0 -1
  972. package/dist/vendored/brepjs/kernel/capabilities.d.ts +0 -36
  973. package/dist/vendored/brepjs/kernel/capabilities.d.ts.map +0 -1
  974. package/dist/vendored/brepjs/kernel/capabilities.js +0 -35
  975. package/dist/vendored/brepjs/kernel/capabilities.js.map +0 -1
  976. package/dist/vendored/brepjs/kernel/geometry2d.d.ts +0 -96
  977. package/dist/vendored/brepjs/kernel/geometry2d.d.ts.map +0 -1
  978. package/dist/vendored/brepjs/kernel/geometry2d.js +0 -885
  979. package/dist/vendored/brepjs/kernel/geometry2d.js.map +0 -1
  980. package/dist/vendored/brepjs/kernel/hullGeometry.d.ts +0 -23
  981. package/dist/vendored/brepjs/kernel/hullGeometry.d.ts.map +0 -1
  982. package/dist/vendored/brepjs/kernel/hullGeometry.js +0 -312
  983. package/dist/vendored/brepjs/kernel/hullGeometry.js.map +0 -1
  984. package/dist/vendored/brepjs/kernel/index.d.ts +0 -73
  985. package/dist/vendored/brepjs/kernel/index.d.ts.map +0 -1
  986. package/dist/vendored/brepjs/kernel/index.js +0 -161
  987. package/dist/vendored/brepjs/kernel/index.js.map +0 -1
  988. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts +0 -44
  989. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts.map +0 -1
  990. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js +0 -11
  991. package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js.map +0 -1
  992. package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts +0 -67
  993. package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts.map +0 -1
  994. package/dist/vendored/brepjs/kernel/interfaces/builderOps.js +0 -12
  995. package/dist/vendored/brepjs/kernel/interfaces/builderOps.js.map +0 -1
  996. package/dist/vendored/brepjs/kernel/interfaces/core.d.ts +0 -46
  997. package/dist/vendored/brepjs/kernel/interfaces/core.d.ts.map +0 -1
  998. package/dist/vendored/brepjs/kernel/interfaces/core.js +0 -11
  999. package/dist/vendored/brepjs/kernel/interfaces/core.js.map +0 -1
  1000. package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts +0 -53
  1001. package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts.map +0 -1
  1002. package/dist/vendored/brepjs/kernel/interfaces/curveOps.js +0 -12
  1003. package/dist/vendored/brepjs/kernel/interfaces/curveOps.js.map +0 -1
  1004. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts +0 -32
  1005. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts.map +0 -1
  1006. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js +0 -14
  1007. package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js.map +0 -1
  1008. package/dist/vendored/brepjs/kernel/interfaces/index.d.ts +0 -43
  1009. package/dist/vendored/brepjs/kernel/interfaces/index.d.ts.map +0 -1
  1010. package/dist/vendored/brepjs/kernel/interfaces/index.js +0 -12
  1011. package/dist/vendored/brepjs/kernel/interfaces/index.js.map +0 -1
  1012. package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts +0 -65
  1013. package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts.map +0 -1
  1014. package/dist/vendored/brepjs/kernel/interfaces/ioOps.js +0 -9
  1015. package/dist/vendored/brepjs/kernel/interfaces/ioOps.js.map +0 -1
  1016. package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts +0 -55
  1017. package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts.map +0 -1
  1018. package/dist/vendored/brepjs/kernel/interfaces/measureOps.js +0 -9
  1019. package/dist/vendored/brepjs/kernel/interfaces/measureOps.js.map +0 -1
  1020. package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts +0 -25
  1021. package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts.map +0 -1
  1022. package/dist/vendored/brepjs/kernel/interfaces/meshOps.js +0 -8
  1023. package/dist/vendored/brepjs/kernel/interfaces/meshOps.js.map +0 -1
  1024. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts +0 -53
  1025. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts.map +0 -1
  1026. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js +0 -10
  1027. package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js.map +0 -1
  1028. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts +0 -22
  1029. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts.map +0 -1
  1030. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js +0 -11
  1031. package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js.map +0 -1
  1032. package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts +0 -43
  1033. package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts.map +0 -1
  1034. package/dist/vendored/brepjs/kernel/interfaces/repairOps.js +0 -9
  1035. package/dist/vendored/brepjs/kernel/interfaces/repairOps.js.map +0 -1
  1036. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts +0 -72
  1037. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts.map +0 -1
  1038. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js +0 -13
  1039. package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js.map +0 -1
  1040. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts +0 -73
  1041. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts.map +0 -1
  1042. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js +0 -11
  1043. package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js.map +0 -1
  1044. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts +0 -62
  1045. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts.map +0 -1
  1046. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js +0 -9
  1047. package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js.map +0 -1
  1048. package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts +0 -80
  1049. package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts.map +0 -1
  1050. package/dist/vendored/brepjs/kernel/interfaces/transformOps.js +0 -11
  1051. package/dist/vendored/brepjs/kernel/interfaces/transformOps.js.map +0 -1
  1052. package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts +0 -145
  1053. package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts.map +0 -1
  1054. package/dist/vendored/brepjs/kernel/kernel2dTypes.js +0 -18
  1055. package/dist/vendored/brepjs/kernel/kernel2dTypes.js.map +0 -1
  1056. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts +0 -41
  1057. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts.map +0 -1
  1058. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js +0 -2
  1059. package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js.map +0 -1
  1060. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts +0 -17
  1061. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts.map +0 -1
  1062. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js +0 -75
  1063. package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js.map +0 -1
  1064. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts +0 -36
  1065. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts.map +0 -1
  1066. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js +0 -116
  1067. package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js.map +0 -1
  1068. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts +0 -43
  1069. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts.map +0 -1
  1070. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js +0 -292
  1071. package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js.map +0 -1
  1072. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts +0 -34
  1073. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts.map +0 -1
  1074. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js +0 -164
  1075. package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js.map +0 -1
  1076. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts +0 -26
  1077. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts.map +0 -1
  1078. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js +0 -256
  1079. package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js.map +0 -1
  1080. package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts +0 -42
  1081. package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts.map +0 -1
  1082. package/dist/vendored/brepjs/kernel/occtWasm/helpers.js +0 -146
  1083. package/dist/vendored/brepjs/kernel/occtWasm/helpers.js.map +0 -1
  1084. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts +0 -17
  1085. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts.map +0 -1
  1086. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js +0 -55
  1087. package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js.map +0 -1
  1088. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts +0 -58
  1089. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts.map +0 -1
  1090. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js +0 -303
  1091. package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js.map +0 -1
  1092. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts +0 -113
  1093. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts.map +0 -1
  1094. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js +0 -731
  1095. package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js.map +0 -1
  1096. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts +0 -62
  1097. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts.map +0 -1
  1098. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js +0 -338
  1099. package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js.map +0 -1
  1100. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts +0 -12
  1101. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts.map +0 -1
  1102. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js +0 -120
  1103. package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js.map +0 -1
  1104. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts +0 -20
  1105. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts.map +0 -1
  1106. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js +0 -187
  1107. package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js.map +0 -1
  1108. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts +0 -513
  1109. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts.map +0 -1
  1110. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js +0 -1016
  1111. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js.map +0 -1
  1112. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts +0 -332
  1113. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts.map +0 -1
  1114. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js +0 -10
  1115. package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js.map +0 -1
  1116. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts +0 -16
  1117. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts.map +0 -1
  1118. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js +0 -64
  1119. package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js.map +0 -1
  1120. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts +0 -16
  1121. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts.map +0 -1
  1122. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js +0 -38
  1123. package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js.map +0 -1
  1124. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts +0 -56
  1125. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts.map +0 -1
  1126. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js +0 -247
  1127. package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js.map +0 -1
  1128. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts +0 -56
  1129. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts.map +0 -1
  1130. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js +0 -235
  1131. package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js.map +0 -1
  1132. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts +0 -25
  1133. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts.map +0 -1
  1134. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js +0 -127
  1135. package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js.map +0 -1
  1136. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts +0 -40
  1137. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts.map +0 -1
  1138. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js +0 -275
  1139. package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js.map +0 -1
  1140. package/dist/vendored/brepjs/kernel/quality.d.ts +0 -28
  1141. package/dist/vendored/brepjs/kernel/quality.d.ts.map +0 -1
  1142. package/dist/vendored/brepjs/kernel/quality.js +0 -40
  1143. package/dist/vendored/brepjs/kernel/quality.js.map +0 -1
  1144. package/dist/vendored/brepjs/kernel/solverAdapter.d.ts +0 -50
  1145. package/dist/vendored/brepjs/kernel/solverAdapter.d.ts.map +0 -1
  1146. package/dist/vendored/brepjs/kernel/solverAdapter.js +0 -330
  1147. package/dist/vendored/brepjs/kernel/solverAdapter.js.map +0 -1
  1148. package/dist/vendored/brepjs/kernel/stlBuilder.d.ts +0 -21
  1149. package/dist/vendored/brepjs/kernel/stlBuilder.d.ts.map +0 -1
  1150. package/dist/vendored/brepjs/kernel/stlBuilder.js +0 -106
  1151. package/dist/vendored/brepjs/kernel/stlBuilder.js.map +0 -1
  1152. package/dist/vendored/brepjs/kernel/types.d.ts +0 -214
  1153. package/dist/vendored/brepjs/kernel/types.d.ts.map +0 -1
  1154. package/dist/vendored/brepjs/kernel/types.js +0 -22
  1155. package/dist/vendored/brepjs/kernel/types.js.map +0 -1
  1156. package/dist/vendored/brepjs/kernel/unsupported.d.ts +0 -15
  1157. package/dist/vendored/brepjs/kernel/unsupported.d.ts.map +0 -1
  1158. package/dist/vendored/brepjs/kernel/unsupported.js +0 -25
  1159. package/dist/vendored/brepjs/kernel/unsupported.js.map +0 -1
  1160. package/dist/vendored/brepjs/measurement/interferenceFns.d.ts +0 -68
  1161. package/dist/vendored/brepjs/measurement/interferenceFns.d.ts.map +0 -1
  1162. package/dist/vendored/brepjs/measurement/interferenceFns.js +0 -102
  1163. package/dist/vendored/brepjs/measurement/interferenceFns.js.map +0 -1
  1164. package/dist/vendored/brepjs/measurement/measureCache.d.ts +0 -20
  1165. package/dist/vendored/brepjs/measurement/measureCache.d.ts.map +0 -1
  1166. package/dist/vendored/brepjs/measurement/measureCache.js +0 -28
  1167. package/dist/vendored/brepjs/measurement/measureCache.js.map +0 -1
  1168. package/dist/vendored/brepjs/measurement/measureFns.d.ts +0 -92
  1169. package/dist/vendored/brepjs/measurement/measureFns.d.ts.map +0 -1
  1170. package/dist/vendored/brepjs/measurement/measureFns.js +0 -239
  1171. package/dist/vendored/brepjs/measurement/measureFns.js.map +0 -1
  1172. package/dist/vendored/brepjs/measurement/measureTypes.d.ts +0 -35
  1173. package/dist/vendored/brepjs/measurement/measureTypes.d.ts.map +0 -1
  1174. package/dist/vendored/brepjs/measurement/measureTypes.js +0 -7
  1175. package/dist/vendored/brepjs/measurement/measureTypes.js.map +0 -1
  1176. package/dist/vendored/brepjs/measurement.d.ts +0 -5
  1177. package/dist/vendored/brepjs/measurement.d.ts.map +0 -1
  1178. package/dist/vendored/brepjs/measurement.js +0 -5
  1179. package/dist/vendored/brepjs/measurement.js.map +0 -1
  1180. package/dist/vendored/brepjs/ns/booleans.d.ts +0 -11
  1181. package/dist/vendored/brepjs/ns/booleans.d.ts.map +0 -1
  1182. package/dist/vendored/brepjs/ns/booleans.js +0 -11
  1183. package/dist/vendored/brepjs/ns/booleans.js.map +0 -1
  1184. package/dist/vendored/brepjs/ns/construction.d.ts +0 -10
  1185. package/dist/vendored/brepjs/ns/construction.d.ts.map +0 -1
  1186. package/dist/vendored/brepjs/ns/construction.js +0 -10
  1187. package/dist/vendored/brepjs/ns/construction.js.map +0 -1
  1188. package/dist/vendored/brepjs/ns/ioNs.d.ts +0 -18
  1189. package/dist/vendored/brepjs/ns/ioNs.d.ts.map +0 -1
  1190. package/dist/vendored/brepjs/ns/ioNs.js +0 -20
  1191. package/dist/vendored/brepjs/ns/ioNs.js.map +0 -1
  1192. package/dist/vendored/brepjs/ns/measurement.d.ts +0 -6
  1193. package/dist/vendored/brepjs/ns/measurement.d.ts.map +0 -1
  1194. package/dist/vendored/brepjs/ns/measurement.js +0 -6
  1195. package/dist/vendored/brepjs/ns/measurement.js.map +0 -1
  1196. package/dist/vendored/brepjs/ns/modifiers.d.ts +0 -6
  1197. package/dist/vendored/brepjs/ns/modifiers.d.ts.map +0 -1
  1198. package/dist/vendored/brepjs/ns/modifiers.js +0 -6
  1199. package/dist/vendored/brepjs/ns/modifiers.js.map +0 -1
  1200. package/dist/vendored/brepjs/ns/patterns.d.ts +0 -5
  1201. package/dist/vendored/brepjs/ns/patterns.d.ts.map +0 -1
  1202. package/dist/vendored/brepjs/ns/patterns.js +0 -5
  1203. package/dist/vendored/brepjs/ns/patterns.js.map +0 -1
  1204. package/dist/vendored/brepjs/ns/primitives.d.ts +0 -7
  1205. package/dist/vendored/brepjs/ns/primitives.d.ts.map +0 -1
  1206. package/dist/vendored/brepjs/ns/primitives.js +0 -7
  1207. package/dist/vendored/brepjs/ns/primitives.js.map +0 -1
  1208. package/dist/vendored/brepjs/ns/query.d.ts +0 -6
  1209. package/dist/vendored/brepjs/ns/query.d.ts.map +0 -1
  1210. package/dist/vendored/brepjs/ns/query.js +0 -6
  1211. package/dist/vendored/brepjs/ns/query.js.map +0 -1
  1212. package/dist/vendored/brepjs/ns/transforms.d.ts +0 -5
  1213. package/dist/vendored/brepjs/ns/transforms.d.ts.map +0 -1
  1214. package/dist/vendored/brepjs/ns/transforms.js +0 -5
  1215. package/dist/vendored/brepjs/ns/transforms.js.map +0 -1
  1216. package/dist/vendored/brepjs/operations/api.d.ts +0 -39
  1217. package/dist/vendored/brepjs/operations/api.d.ts.map +0 -1
  1218. package/dist/vendored/brepjs/operations/api.js +0 -41
  1219. package/dist/vendored/brepjs/operations/api.js.map +0 -1
  1220. package/dist/vendored/brepjs/operations/assemblyFns.d.ts +0 -54
  1221. package/dist/vendored/brepjs/operations/assemblyFns.d.ts.map +0 -1
  1222. package/dist/vendored/brepjs/operations/assemblyFns.js +0 -91
  1223. package/dist/vendored/brepjs/operations/assemblyFns.js.map +0 -1
  1224. package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts +0 -43
  1225. package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts.map +0 -1
  1226. package/dist/vendored/brepjs/operations/compoundOpsFns.js +0 -368
  1227. package/dist/vendored/brepjs/operations/compoundOpsFns.js.map +0 -1
  1228. package/dist/vendored/brepjs/operations/convexHullFns.d.ts +0 -27
  1229. package/dist/vendored/brepjs/operations/convexHullFns.d.ts.map +0 -1
  1230. package/dist/vendored/brepjs/operations/convexHullFns.js +0 -50
  1231. package/dist/vendored/brepjs/operations/convexHullFns.js.map +0 -1
  1232. package/dist/vendored/brepjs/operations/dhFns.d.ts +0 -47
  1233. package/dist/vendored/brepjs/operations/dhFns.d.ts.map +0 -1
  1234. package/dist/vendored/brepjs/operations/dhFns.js +0 -53
  1235. package/dist/vendored/brepjs/operations/dhFns.js.map +0 -1
  1236. package/dist/vendored/brepjs/operations/exporterFns.d.ts +0 -47
  1237. package/dist/vendored/brepjs/operations/exporterFns.d.ts.map +0 -1
  1238. package/dist/vendored/brepjs/operations/exporterFns.js +0 -66
  1239. package/dist/vendored/brepjs/operations/exporterFns.js.map +0 -1
  1240. package/dist/vendored/brepjs/operations/exporterUtils.d.ts +0 -6
  1241. package/dist/vendored/brepjs/operations/exporterUtils.d.ts.map +0 -1
  1242. package/dist/vendored/brepjs/operations/exporterUtils.js +0 -5
  1243. package/dist/vendored/brepjs/operations/exporterUtils.js.map +0 -1
  1244. package/dist/vendored/brepjs/operations/exporters.d.ts +0 -59
  1245. package/dist/vendored/brepjs/operations/exporters.d.ts.map +0 -1
  1246. package/dist/vendored/brepjs/operations/exporters.js +0 -74
  1247. package/dist/vendored/brepjs/operations/exporters.js.map +0 -1
  1248. package/dist/vendored/brepjs/operations/extrudeFns.d.ts +0 -47
  1249. package/dist/vendored/brepjs/operations/extrudeFns.d.ts.map +0 -1
  1250. package/dist/vendored/brepjs/operations/extrudeFns.js +0 -119
  1251. package/dist/vendored/brepjs/operations/extrudeFns.js.map +0 -1
  1252. package/dist/vendored/brepjs/operations/extrudeUtils.d.ts +0 -63
  1253. package/dist/vendored/brepjs/operations/extrudeUtils.d.ts.map +0 -1
  1254. package/dist/vendored/brepjs/operations/extrudeUtils.js +0 -33
  1255. package/dist/vendored/brepjs/operations/extrudeUtils.js.map +0 -1
  1256. package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts +0 -6
  1257. package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts.map +0 -1
  1258. package/dist/vendored/brepjs/operations/guidedSweepFns.js +0 -6
  1259. package/dist/vendored/brepjs/operations/guidedSweepFns.js.map +0 -1
  1260. package/dist/vendored/brepjs/operations/historyFns.d.ts +0 -83
  1261. package/dist/vendored/brepjs/operations/historyFns.d.ts.map +0 -1
  1262. package/dist/vendored/brepjs/operations/historyFns.js +0 -256
  1263. package/dist/vendored/brepjs/operations/historyFns.js.map +0 -1
  1264. package/dist/vendored/brepjs/operations/ikFns.d.ts +0 -74
  1265. package/dist/vendored/brepjs/operations/ikFns.d.ts.map +0 -1
  1266. package/dist/vendored/brepjs/operations/ikFns.js +0 -320
  1267. package/dist/vendored/brepjs/operations/ikFns.js.map +0 -1
  1268. package/dist/vendored/brepjs/operations/instanceFns.d.ts +0 -76
  1269. package/dist/vendored/brepjs/operations/instanceFns.d.ts.map +0 -1
  1270. package/dist/vendored/brepjs/operations/instanceFns.js +0 -128
  1271. package/dist/vendored/brepjs/operations/instanceFns.js.map +0 -1
  1272. package/dist/vendored/brepjs/operations/jointFns.d.ts +0 -176
  1273. package/dist/vendored/brepjs/operations/jointFns.d.ts.map +0 -1
  1274. package/dist/vendored/brepjs/operations/jointFns.js +0 -298
  1275. package/dist/vendored/brepjs/operations/jointFns.js.map +0 -1
  1276. package/dist/vendored/brepjs/operations/loftFns.d.ts +0 -60
  1277. package/dist/vendored/brepjs/operations/loftFns.d.ts.map +0 -1
  1278. package/dist/vendored/brepjs/operations/loftFns.js +0 -112
  1279. package/dist/vendored/brepjs/operations/loftFns.js.map +0 -1
  1280. package/dist/vendored/brepjs/operations/mateFns.d.ts +0 -53
  1281. package/dist/vendored/brepjs/operations/mateFns.d.ts.map +0 -1
  1282. package/dist/vendored/brepjs/operations/mateFns.js +0 -142
  1283. package/dist/vendored/brepjs/operations/mateFns.js.map +0 -1
  1284. package/dist/vendored/brepjs/operations/multiSweepFns.d.ts +0 -6
  1285. package/dist/vendored/brepjs/operations/multiSweepFns.d.ts.map +0 -1
  1286. package/dist/vendored/brepjs/operations/multiSweepFns.js +0 -6
  1287. package/dist/vendored/brepjs/operations/multiSweepFns.js.map +0 -1
  1288. package/dist/vendored/brepjs/operations/patternFns.d.ts +0 -46
  1289. package/dist/vendored/brepjs/operations/patternFns.d.ts.map +0 -1
  1290. package/dist/vendored/brepjs/operations/patternFns.js +0 -126
  1291. package/dist/vendored/brepjs/operations/patternFns.js.map +0 -1
  1292. package/dist/vendored/brepjs/operations/roofFns.d.ts +0 -25
  1293. package/dist/vendored/brepjs/operations/roofFns.d.ts.map +0 -1
  1294. package/dist/vendored/brepjs/operations/roofFns.js +0 -250
  1295. package/dist/vendored/brepjs/operations/roofFns.js.map +0 -1
  1296. package/dist/vendored/brepjs/operations/straightSkeleton.d.ts +0 -29
  1297. package/dist/vendored/brepjs/operations/straightSkeleton.d.ts.map +0 -1
  1298. package/dist/vendored/brepjs/operations/straightSkeleton.js +0 -440
  1299. package/dist/vendored/brepjs/operations/straightSkeleton.js.map +0 -1
  1300. package/dist/vendored/brepjs/operations/sweepFns.d.ts +0 -121
  1301. package/dist/vendored/brepjs/operations/sweepFns.d.ts.map +0 -1
  1302. package/dist/vendored/brepjs/operations/sweepFns.js +0 -438
  1303. package/dist/vendored/brepjs/operations/sweepFns.js.map +0 -1
  1304. package/dist/vendored/brepjs/operations/threadFns.d.ts +0 -57
  1305. package/dist/vendored/brepjs/operations/threadFns.d.ts.map +0 -1
  1306. package/dist/vendored/brepjs/operations/threadFns.js +0 -145
  1307. package/dist/vendored/brepjs/operations/threadFns.js.map +0 -1
  1308. package/dist/vendored/brepjs/operations/urdfFns.d.ts +0 -48
  1309. package/dist/vendored/brepjs/operations/urdfFns.d.ts.map +0 -1
  1310. package/dist/vendored/brepjs/operations/urdfFns.js +0 -171
  1311. package/dist/vendored/brepjs/operations/urdfFns.js.map +0 -1
  1312. package/dist/vendored/brepjs/operations.d.ts +0 -20
  1313. package/dist/vendored/brepjs/operations.d.ts.map +0 -1
  1314. package/dist/vendored/brepjs/operations.js +0 -26
  1315. package/dist/vendored/brepjs/operations.js.map +0 -1
  1316. package/dist/vendored/brepjs/projection/cameraFns.d.ts +0 -63
  1317. package/dist/vendored/brepjs/projection/cameraFns.d.ts.map +0 -1
  1318. package/dist/vendored/brepjs/projection/cameraFns.js +0 -89
  1319. package/dist/vendored/brepjs/projection/cameraFns.js.map +0 -1
  1320. package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts +0 -14
  1321. package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts.map +0 -1
  1322. package/dist/vendored/brepjs/projection/makeProjectedEdges.js +0 -111
  1323. package/dist/vendored/brepjs/projection/makeProjectedEdges.js.map +0 -1
  1324. package/dist/vendored/brepjs/projection/projectionPlanes.d.ts +0 -18
  1325. package/dist/vendored/brepjs/projection/projectionPlanes.d.ts.map +0 -1
  1326. package/dist/vendored/brepjs/projection/projectionPlanes.js +0 -23
  1327. package/dist/vendored/brepjs/projection/projectionPlanes.js.map +0 -1
  1328. package/dist/vendored/brepjs/projection.d.ts +0 -12
  1329. package/dist/vendored/brepjs/projection.d.ts.map +0 -1
  1330. package/dist/vendored/brepjs/projection.js +0 -12
  1331. package/dist/vendored/brepjs/projection.js.map +0 -1
  1332. package/dist/vendored/brepjs/query/cornerFinder.d.ts +0 -54
  1333. package/dist/vendored/brepjs/query/cornerFinder.d.ts.map +0 -1
  1334. package/dist/vendored/brepjs/query/cornerFinder.js +0 -73
  1335. package/dist/vendored/brepjs/query/cornerFinder.js.map +0 -1
  1336. package/dist/vendored/brepjs/query/directionUtils.d.ts +0 -9
  1337. package/dist/vendored/brepjs/query/directionUtils.d.ts.map +0 -1
  1338. package/dist/vendored/brepjs/query/directionUtils.js +0 -18
  1339. package/dist/vendored/brepjs/query/directionUtils.js.map +0 -1
  1340. package/dist/vendored/brepjs/query/edgeFinder.d.ts +0 -5
  1341. package/dist/vendored/brepjs/query/edgeFinder.d.ts.map +0 -1
  1342. package/dist/vendored/brepjs/query/edgeFinder.js +0 -5
  1343. package/dist/vendored/brepjs/query/edgeFinder.js.map +0 -1
  1344. package/dist/vendored/brepjs/query/faceFinder.d.ts +0 -5
  1345. package/dist/vendored/brepjs/query/faceFinder.d.ts.map +0 -1
  1346. package/dist/vendored/brepjs/query/faceFinder.js +0 -5
  1347. package/dist/vendored/brepjs/query/faceFinder.js.map +0 -1
  1348. package/dist/vendored/brepjs/query/finderCore.d.ts +0 -49
  1349. package/dist/vendored/brepjs/query/finderCore.d.ts.map +0 -1
  1350. package/dist/vendored/brepjs/query/finderCore.js +0 -120
  1351. package/dist/vendored/brepjs/query/finderCore.js.map +0 -1
  1352. package/dist/vendored/brepjs/query/finderFns.d.ts +0 -25
  1353. package/dist/vendored/brepjs/query/finderFns.d.ts.map +0 -1
  1354. package/dist/vendored/brepjs/query/finderFns.js +0 -25
  1355. package/dist/vendored/brepjs/query/finderFns.js.map +0 -1
  1356. package/dist/vendored/brepjs/query/helpers.d.ts +0 -11
  1357. package/dist/vendored/brepjs/query/helpers.d.ts.map +0 -1
  1358. package/dist/vendored/brepjs/query/helpers.js +0 -17
  1359. package/dist/vendored/brepjs/query/helpers.js.map +0 -1
  1360. package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts +0 -15
  1361. package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts.map +0 -1
  1362. package/dist/vendored/brepjs/query/shapeDistanceFilter.js +0 -21
  1363. package/dist/vendored/brepjs/query/shapeDistanceFilter.js.map +0 -1
  1364. package/dist/vendored/brepjs/query/shapeFinders.d.ts +0 -39
  1365. package/dist/vendored/brepjs/query/shapeFinders.d.ts.map +0 -1
  1366. package/dist/vendored/brepjs/query/shapeFinders.js +0 -82
  1367. package/dist/vendored/brepjs/query/shapeFinders.js.map +0 -1
  1368. package/dist/vendored/brepjs/query/vertexFinder.d.ts +0 -19
  1369. package/dist/vendored/brepjs/query/vertexFinder.d.ts.map +0 -1
  1370. package/dist/vendored/brepjs/query/vertexFinder.js +0 -73
  1371. package/dist/vendored/brepjs/query/vertexFinder.js.map +0 -1
  1372. package/dist/vendored/brepjs/query/wireFinder.d.ts +0 -5
  1373. package/dist/vendored/brepjs/query/wireFinder.d.ts.map +0 -1
  1374. package/dist/vendored/brepjs/query/wireFinder.js +0 -5
  1375. package/dist/vendored/brepjs/query/wireFinder.js.map +0 -1
  1376. package/dist/vendored/brepjs/query.d.ts +0 -6
  1377. package/dist/vendored/brepjs/query.d.ts.map +0 -1
  1378. package/dist/vendored/brepjs/query.js +0 -6
  1379. package/dist/vendored/brepjs/query.js.map +0 -1
  1380. package/dist/vendored/brepjs/result.d.ts +0 -7
  1381. package/dist/vendored/brepjs/result.d.ts.map +0 -1
  1382. package/dist/vendored/brepjs/result.js +0 -7
  1383. package/dist/vendored/brepjs/result.js.map +0 -1
  1384. package/dist/vendored/brepjs/shapeRef.d.ts +0 -13
  1385. package/dist/vendored/brepjs/shapeRef.d.ts.map +0 -1
  1386. package/dist/vendored/brepjs/shapeRef.js +0 -13
  1387. package/dist/vendored/brepjs/shapeRef.js.map +0 -1
  1388. package/dist/vendored/brepjs/sketching/cannedSketches.d.ts +0 -144
  1389. package/dist/vendored/brepjs/sketching/cannedSketches.d.ts.map +0 -1
  1390. package/dist/vendored/brepjs/sketching/cannedSketches.js +0 -327
  1391. package/dist/vendored/brepjs/sketching/cannedSketches.js.map +0 -1
  1392. package/dist/vendored/brepjs/sketching/compoundSketch.d.ts +0 -70
  1393. package/dist/vendored/brepjs/sketching/compoundSketch.d.ts.map +0 -1
  1394. package/dist/vendored/brepjs/sketching/compoundSketch.js +0 -87
  1395. package/dist/vendored/brepjs/sketching/compoundSketch.js.map +0 -1
  1396. package/dist/vendored/brepjs/sketching/draw3d.d.ts +0 -22
  1397. package/dist/vendored/brepjs/sketching/draw3d.d.ts.map +0 -1
  1398. package/dist/vendored/brepjs/sketching/draw3d.js +0 -150
  1399. package/dist/vendored/brepjs/sketching/draw3d.js.map +0 -1
  1400. package/dist/vendored/brepjs/sketching/drawFns.d.ts +0 -122
  1401. package/dist/vendored/brepjs/sketching/drawFns.d.ts.map +0 -1
  1402. package/dist/vendored/brepjs/sketching/drawFns.js +0 -129
  1403. package/dist/vendored/brepjs/sketching/drawFns.js.map +0 -1
  1404. package/dist/vendored/brepjs/sketching/drawing.d.ts +0 -128
  1405. package/dist/vendored/brepjs/sketching/drawing.d.ts.map +0 -1
  1406. package/dist/vendored/brepjs/sketching/drawing.js +0 -275
  1407. package/dist/vendored/brepjs/sketching/drawing.js.map +0 -1
  1408. package/dist/vendored/brepjs/sketching/drawingFactories.d.ts +0 -95
  1409. package/dist/vendored/brepjs/sketching/drawingFactories.d.ts.map +0 -1
  1410. package/dist/vendored/brepjs/sketching/drawingFactories.js +0 -125
  1411. package/dist/vendored/brepjs/sketching/drawingFactories.js.map +0 -1
  1412. package/dist/vendored/brepjs/sketching/drawingPen.d.ts +0 -35
  1413. package/dist/vendored/brepjs/sketching/drawingPen.d.ts.map +0 -1
  1414. package/dist/vendored/brepjs/sketching/drawingPen.js +0 -57
  1415. package/dist/vendored/brepjs/sketching/drawingPen.js.map +0 -1
  1416. package/dist/vendored/brepjs/sketching/faceSketcher.d.ts +0 -53
  1417. package/dist/vendored/brepjs/sketching/faceSketcher.d.ts.map +0 -1
  1418. package/dist/vendored/brepjs/sketching/faceSketcher.js +0 -167
  1419. package/dist/vendored/brepjs/sketching/faceSketcher.js.map +0 -1
  1420. package/dist/vendored/brepjs/sketching/shortcuts.d.ts +0 -16
  1421. package/dist/vendored/brepjs/sketching/shortcuts.d.ts.map +0 -1
  1422. package/dist/vendored/brepjs/sketching/shortcuts.js +0 -24
  1423. package/dist/vendored/brepjs/sketching/shortcuts.js.map +0 -1
  1424. package/dist/vendored/brepjs/sketching/sketch.d.ts +0 -157
  1425. package/dist/vendored/brepjs/sketching/sketch.d.ts.map +0 -1
  1426. package/dist/vendored/brepjs/sketching/sketch.js +0 -151
  1427. package/dist/vendored/brepjs/sketching/sketch.js.map +0 -1
  1428. package/dist/vendored/brepjs/sketching/sketchFns.d.ts +0 -89
  1429. package/dist/vendored/brepjs/sketching/sketchFns.d.ts.map +0 -1
  1430. package/dist/vendored/brepjs/sketching/sketchFns.js +0 -266
  1431. package/dist/vendored/brepjs/sketching/sketchFns.js.map +0 -1
  1432. package/dist/vendored/brepjs/sketching/sketcher.d.ts +0 -70
  1433. package/dist/vendored/brepjs/sketching/sketcher.d.ts.map +0 -1
  1434. package/dist/vendored/brepjs/sketching/sketcher.js +0 -181
  1435. package/dist/vendored/brepjs/sketching/sketcher.js.map +0 -1
  1436. package/dist/vendored/brepjs/sketching/sketches.d.ts +0 -70
  1437. package/dist/vendored/brepjs/sketching/sketches.d.ts.map +0 -1
  1438. package/dist/vendored/brepjs/sketching/sketches.js +0 -91
  1439. package/dist/vendored/brepjs/sketching/sketches.js.map +0 -1
  1440. package/dist/vendored/brepjs/sketching.d.ts +0 -28
  1441. package/dist/vendored/brepjs/sketching.d.ts.map +0 -1
  1442. package/dist/vendored/brepjs/sketching.js +0 -30
  1443. package/dist/vendored/brepjs/sketching.js.map +0 -1
  1444. package/dist/vendored/brepjs/text/fontRegistry.d.ts +0 -23
  1445. package/dist/vendored/brepjs/text/fontRegistry.d.ts.map +0 -1
  1446. package/dist/vendored/brepjs/text/fontRegistry.js +0 -61
  1447. package/dist/vendored/brepjs/text/fontRegistry.js.map +0 -1
  1448. package/dist/vendored/brepjs/text/sketchText.d.ts +0 -31
  1449. package/dist/vendored/brepjs/text/sketchText.d.ts.map +0 -1
  1450. package/dist/vendored/brepjs/text/sketchText.js +0 -30
  1451. package/dist/vendored/brepjs/text/sketchText.js.map +0 -1
  1452. package/dist/vendored/brepjs/text/textBlueprints.d.ts +0 -19
  1453. package/dist/vendored/brepjs/text/textBlueprints.d.ts.map +0 -1
  1454. package/dist/vendored/brepjs/text/textBlueprints.js +0 -61
  1455. package/dist/vendored/brepjs/text/textBlueprints.js.map +0 -1
  1456. package/dist/vendored/brepjs/text/textMetrics.d.ts +0 -40
  1457. package/dist/vendored/brepjs/text/textMetrics.d.ts.map +0 -1
  1458. package/dist/vendored/brepjs/text/textMetrics.js +0 -43
  1459. package/dist/vendored/brepjs/text/textMetrics.js.map +0 -1
  1460. package/dist/vendored/brepjs/text.d.ts +0 -13
  1461. package/dist/vendored/brepjs/text.d.ts.map +0 -1
  1462. package/dist/vendored/brepjs/text.js +0 -13
  1463. package/dist/vendored/brepjs/text.js.map +0 -1
  1464. package/dist/vendored/brepjs/topology/adjacencyFns.d.ts +0 -89
  1465. package/dist/vendored/brepjs/topology/adjacencyFns.d.ts.map +0 -1
  1466. package/dist/vendored/brepjs/topology/adjacencyFns.js +0 -411
  1467. package/dist/vendored/brepjs/topology/adjacencyFns.js.map +0 -1
  1468. package/dist/vendored/brepjs/topology/api.d.ts +0 -145
  1469. package/dist/vendored/brepjs/topology/api.d.ts.map +0 -1
  1470. package/dist/vendored/brepjs/topology/api.js +0 -282
  1471. package/dist/vendored/brepjs/topology/api.js.map +0 -1
  1472. package/dist/vendored/brepjs/topology/apiTypes.d.ts +0 -135
  1473. package/dist/vendored/brepjs/topology/apiTypes.d.ts.map +0 -1
  1474. package/dist/vendored/brepjs/topology/apiTypes.js +0 -24
  1475. package/dist/vendored/brepjs/topology/apiTypes.js.map +0 -1
  1476. package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts +0 -52
  1477. package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts.map +0 -1
  1478. package/dist/vendored/brepjs/topology/booleanBatchFns.js +0 -164
  1479. package/dist/vendored/brepjs/topology/booleanBatchFns.js.map +0 -1
  1480. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts +0 -21
  1481. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts.map +0 -1
  1482. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js +0 -23
  1483. package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js.map +0 -1
  1484. package/dist/vendored/brepjs/topology/booleanFns.d.ts +0 -155
  1485. package/dist/vendored/brepjs/topology/booleanFns.d.ts.map +0 -1
  1486. package/dist/vendored/brepjs/topology/booleanFns.js +0 -600
  1487. package/dist/vendored/brepjs/topology/booleanFns.js.map +0 -1
  1488. package/dist/vendored/brepjs/topology/cast.d.ts +0 -48
  1489. package/dist/vendored/brepjs/topology/cast.d.ts.map +0 -1
  1490. package/dist/vendored/brepjs/topology/cast.js +0 -113
  1491. package/dist/vendored/brepjs/topology/cast.js.map +0 -1
  1492. package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts +0 -24
  1493. package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts.map +0 -1
  1494. package/dist/vendored/brepjs/topology/chamferAngleFns.js +0 -64
  1495. package/dist/vendored/brepjs/topology/chamferAngleFns.js.map +0 -1
  1496. package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts +0 -6
  1497. package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts.map +0 -1
  1498. package/dist/vendored/brepjs/topology/compoundOpsFns.js +0 -6
  1499. package/dist/vendored/brepjs/topology/compoundOpsFns.js.map +0 -1
  1500. package/dist/vendored/brepjs/topology/curveBuilders.d.ts +0 -90
  1501. package/dist/vendored/brepjs/topology/curveBuilders.d.ts.map +0 -1
  1502. package/dist/vendored/brepjs/topology/curveBuilders.js +0 -125
  1503. package/dist/vendored/brepjs/topology/curveBuilders.js.map +0 -1
  1504. package/dist/vendored/brepjs/topology/curveFns.d.ts +0 -96
  1505. package/dist/vendored/brepjs/topology/curveFns.d.ts.map +0 -1
  1506. package/dist/vendored/brepjs/topology/curveFns.js +0 -191
  1507. package/dist/vendored/brepjs/topology/curveFns.js.map +0 -1
  1508. package/dist/vendored/brepjs/topology/evolutionFns.d.ts +0 -78
  1509. package/dist/vendored/brepjs/topology/evolutionFns.d.ts.map +0 -1
  1510. package/dist/vendored/brepjs/topology/evolutionFns.js +0 -271
  1511. package/dist/vendored/brepjs/topology/evolutionFns.js.map +0 -1
  1512. package/dist/vendored/brepjs/topology/faceFns.d.ts +0 -86
  1513. package/dist/vendored/brepjs/topology/faceFns.d.ts.map +0 -1
  1514. package/dist/vendored/brepjs/topology/faceFns.js +0 -169
  1515. package/dist/vendored/brepjs/topology/faceFns.js.map +0 -1
  1516. package/dist/vendored/brepjs/topology/healingFns.d.ts +0 -98
  1517. package/dist/vendored/brepjs/topology/healingFns.d.ts.map +0 -1
  1518. package/dist/vendored/brepjs/topology/healingFns.js +0 -338
  1519. package/dist/vendored/brepjs/topology/healingFns.js.map +0 -1
  1520. package/dist/vendored/brepjs/topology/hullFns.d.ts +0 -21
  1521. package/dist/vendored/brepjs/topology/hullFns.d.ts.map +0 -1
  1522. package/dist/vendored/brepjs/topology/hullFns.js +0 -60
  1523. package/dist/vendored/brepjs/topology/hullFns.js.map +0 -1
  1524. package/dist/vendored/brepjs/topology/index.d.ts +0 -14
  1525. package/dist/vendored/brepjs/topology/index.d.ts.map +0 -1
  1526. package/dist/vendored/brepjs/topology/index.js +0 -17
  1527. package/dist/vendored/brepjs/topology/index.js.map +0 -1
  1528. package/dist/vendored/brepjs/topology/meshCache.d.ts +0 -68
  1529. package/dist/vendored/brepjs/topology/meshCache.d.ts.map +0 -1
  1530. package/dist/vendored/brepjs/topology/meshCache.js +0 -117
  1531. package/dist/vendored/brepjs/topology/meshCache.js.map +0 -1
  1532. package/dist/vendored/brepjs/topology/meshFns.d.ts +0 -179
  1533. package/dist/vendored/brepjs/topology/meshFns.d.ts.map +0 -1
  1534. package/dist/vendored/brepjs/topology/meshFns.js +0 -393
  1535. package/dist/vendored/brepjs/topology/meshFns.js.map +0 -1
  1536. package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts +0 -41
  1537. package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts.map +0 -1
  1538. package/dist/vendored/brepjs/topology/metadata/colorFns.js +0 -128
  1539. package/dist/vendored/brepjs/topology/metadata/colorFns.js.map +0 -1
  1540. package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts +0 -44
  1541. package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts.map +0 -1
  1542. package/dist/vendored/brepjs/topology/metadata/faceTagFns.js +0 -168
  1543. package/dist/vendored/brepjs/topology/metadata/faceTagFns.js.map +0 -1
  1544. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts +0 -59
  1545. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts.map +0 -1
  1546. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js +0 -109
  1547. package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js.map +0 -1
  1548. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts +0 -43
  1549. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts.map +0 -1
  1550. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js +0 -270
  1551. package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js.map +0 -1
  1552. package/dist/vendored/brepjs/topology/minkowskiFns.d.ts +0 -26
  1553. package/dist/vendored/brepjs/topology/minkowskiFns.d.ts.map +0 -1
  1554. package/dist/vendored/brepjs/topology/minkowskiFns.js +0 -136
  1555. package/dist/vendored/brepjs/topology/minkowskiFns.js.map +0 -1
  1556. package/dist/vendored/brepjs/topology/modifierFns.d.ts +0 -87
  1557. package/dist/vendored/brepjs/topology/modifierFns.d.ts.map +0 -1
  1558. package/dist/vendored/brepjs/topology/modifierFns.js +0 -446
  1559. package/dist/vendored/brepjs/topology/modifierFns.js.map +0 -1
  1560. package/dist/vendored/brepjs/topology/nurbsFns.d.ts +0 -13
  1561. package/dist/vendored/brepjs/topology/nurbsFns.d.ts.map +0 -1
  1562. package/dist/vendored/brepjs/topology/nurbsFns.js +0 -22
  1563. package/dist/vendored/brepjs/topology/nurbsFns.js.map +0 -1
  1564. package/dist/vendored/brepjs/topology/polyhedronFns.d.ts +0 -11
  1565. package/dist/vendored/brepjs/topology/polyhedronFns.d.ts.map +0 -1
  1566. package/dist/vendored/brepjs/topology/polyhedronFns.js +0 -47
  1567. package/dist/vendored/brepjs/topology/polyhedronFns.js.map +0 -1
  1568. package/dist/vendored/brepjs/topology/positionFns.d.ts +0 -18
  1569. package/dist/vendored/brepjs/topology/positionFns.d.ts.map +0 -1
  1570. package/dist/vendored/brepjs/topology/positionFns.js +0 -34
  1571. package/dist/vendored/brepjs/topology/positionFns.js.map +0 -1
  1572. package/dist/vendored/brepjs/topology/primitiveFns.d.ts +0 -244
  1573. package/dist/vendored/brepjs/topology/primitiveFns.d.ts.map +0 -1
  1574. package/dist/vendored/brepjs/topology/primitiveFns.js +0 -361
  1575. package/dist/vendored/brepjs/topology/primitiveFns.js.map +0 -1
  1576. package/dist/vendored/brepjs/topology/shapeBooleans.d.ts +0 -14
  1577. package/dist/vendored/brepjs/topology/shapeBooleans.d.ts.map +0 -1
  1578. package/dist/vendored/brepjs/topology/shapeBooleans.js +0 -24
  1579. package/dist/vendored/brepjs/topology/shapeBooleans.js.map +0 -1
  1580. package/dist/vendored/brepjs/topology/shapeFns.d.ts +0 -30
  1581. package/dist/vendored/brepjs/topology/shapeFns.d.ts.map +0 -1
  1582. package/dist/vendored/brepjs/topology/shapeFns.js +0 -50
  1583. package/dist/vendored/brepjs/topology/shapeFns.js.map +0 -1
  1584. package/dist/vendored/brepjs/topology/shapeHelpers.d.ts +0 -9
  1585. package/dist/vendored/brepjs/topology/shapeHelpers.d.ts.map +0 -1
  1586. package/dist/vendored/brepjs/topology/shapeHelpers.js +0 -14
  1587. package/dist/vendored/brepjs/topology/shapeHelpers.js.map +0 -1
  1588. package/dist/vendored/brepjs/topology/shapeModifiers.d.ts +0 -33
  1589. package/dist/vendored/brepjs/topology/shapeModifiers.d.ts.map +0 -1
  1590. package/dist/vendored/brepjs/topology/shapeModifiers.js +0 -28
  1591. package/dist/vendored/brepjs/topology/shapeModifiers.js.map +0 -1
  1592. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts +0 -29
  1593. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts.map +0 -1
  1594. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js +0 -135
  1595. package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js.map +0 -1
  1596. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts +0 -25
  1597. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts.map +0 -1
  1598. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js +0 -123
  1599. package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js.map +0 -1
  1600. package/dist/vendored/brepjs/topology/shapeRef/index.d.ts +0 -11
  1601. package/dist/vendored/brepjs/topology/shapeRef/index.d.ts.map +0 -1
  1602. package/dist/vendored/brepjs/topology/shapeRef/index.js +0 -10
  1603. package/dist/vendored/brepjs/topology/shapeRef/index.js.map +0 -1
  1604. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts +0 -66
  1605. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts.map +0 -1
  1606. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js +0 -128
  1607. package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js.map +0 -1
  1608. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts +0 -18
  1609. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts.map +0 -1
  1610. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js +0 -51
  1611. package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js.map +0 -1
  1612. package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts +0 -20
  1613. package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts.map +0 -1
  1614. package/dist/vendored/brepjs/topology/shapeRef/scoring.js +0 -65
  1615. package/dist/vendored/brepjs/topology/shapeRef/scoring.js.map +0 -1
  1616. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts +0 -59
  1617. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts.map +0 -1
  1618. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js +0 -266
  1619. package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js.map +0 -1
  1620. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts +0 -153
  1621. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts.map +0 -1
  1622. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js +0 -6
  1623. package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js.map +0 -1
  1624. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts +0 -24
  1625. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts.map +0 -1
  1626. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js +0 -128
  1627. package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js.map +0 -1
  1628. package/dist/vendored/brepjs/topology/shapeUtils.d.ts +0 -16
  1629. package/dist/vendored/brepjs/topology/shapeUtils.d.ts.map +0 -1
  1630. package/dist/vendored/brepjs/topology/shapeUtils.js +0 -28
  1631. package/dist/vendored/brepjs/topology/shapeUtils.js.map +0 -1
  1632. package/dist/vendored/brepjs/topology/solidBuilders.d.ts +0 -74
  1633. package/dist/vendored/brepjs/topology/solidBuilders.d.ts.map +0 -1
  1634. package/dist/vendored/brepjs/topology/solidBuilders.js +0 -173
  1635. package/dist/vendored/brepjs/topology/solidBuilders.js.map +0 -1
  1636. package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts +0 -47
  1637. package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts.map +0 -1
  1638. package/dist/vendored/brepjs/topology/surfaceBuilders.js +0 -162
  1639. package/dist/vendored/brepjs/topology/surfaceBuilders.js.map +0 -1
  1640. package/dist/vendored/brepjs/topology/surfaceFns.d.ts +0 -41
  1641. package/dist/vendored/brepjs/topology/surfaceFns.d.ts.map +0 -1
  1642. package/dist/vendored/brepjs/topology/surfaceFns.js +0 -178
  1643. package/dist/vendored/brepjs/topology/surfaceFns.js.map +0 -1
  1644. package/dist/vendored/brepjs/topology/threeHelpers.d.ts +0 -124
  1645. package/dist/vendored/brepjs/topology/threeHelpers.d.ts.map +0 -1
  1646. package/dist/vendored/brepjs/topology/threeHelpers.js +0 -118
  1647. package/dist/vendored/brepjs/topology/threeHelpers.js.map +0 -1
  1648. package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts +0 -100
  1649. package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts.map +0 -1
  1650. package/dist/vendored/brepjs/topology/topologyQueryFns.js +0 -307
  1651. package/dist/vendored/brepjs/topology/topologyQueryFns.js.map +0 -1
  1652. package/dist/vendored/brepjs/topology/transformFns.d.ts +0 -69
  1653. package/dist/vendored/brepjs/topology/transformFns.d.ts.map +0 -1
  1654. package/dist/vendored/brepjs/topology/transformFns.js +0 -235
  1655. package/dist/vendored/brepjs/topology/transformFns.js.map +0 -1
  1656. package/dist/vendored/brepjs/topology/wrapperFns.d.ts +0 -169
  1657. package/dist/vendored/brepjs/topology/wrapperFns.d.ts.map +0 -1
  1658. package/dist/vendored/brepjs/topology/wrapperFns.js +0 -291
  1659. package/dist/vendored/brepjs/topology/wrapperFns.js.map +0 -1
  1660. package/dist/vendored/brepjs/topology.d.ts +0 -28
  1661. package/dist/vendored/brepjs/topology.d.ts.map +0 -1
  1662. package/dist/vendored/brepjs/topology.js +0 -39
  1663. package/dist/vendored/brepjs/topology.js.map +0 -1
  1664. package/dist/vendored/brepjs/utils/arrayAccess.d.ts +0 -12
  1665. package/dist/vendored/brepjs/utils/arrayAccess.d.ts.map +0 -1
  1666. package/dist/vendored/brepjs/utils/arrayAccess.js +0 -25
  1667. package/dist/vendored/brepjs/utils/arrayAccess.js.map +0 -1
  1668. package/dist/vendored/brepjs/utils/bug.d.ts +0 -15
  1669. package/dist/vendored/brepjs/utils/bug.d.ts.map +0 -1
  1670. package/dist/vendored/brepjs/utils/bug.js +0 -21
  1671. package/dist/vendored/brepjs/utils/bug.js.map +0 -1
  1672. package/dist/vendored/brepjs/utils/ioFilename.d.ts +0 -3
  1673. package/dist/vendored/brepjs/utils/ioFilename.d.ts.map +0 -1
  1674. package/dist/vendored/brepjs/utils/ioFilename.js +0 -7
  1675. package/dist/vendored/brepjs/utils/ioFilename.js.map +0 -1
  1676. package/dist/vendored/brepjs/utils/precisionRound.d.ts +0 -11
  1677. package/dist/vendored/brepjs/utils/precisionRound.d.ts.map +0 -1
  1678. package/dist/vendored/brepjs/utils/precisionRound.js +0 -19
  1679. package/dist/vendored/brepjs/utils/precisionRound.js.map +0 -1
  1680. package/dist/vendored/brepjs/utils/quaternion.d.ts +0 -18
  1681. package/dist/vendored/brepjs/utils/quaternion.d.ts.map +0 -1
  1682. package/dist/vendored/brepjs/utils/quaternion.js +0 -68
  1683. package/dist/vendored/brepjs/utils/quaternion.js.map +0 -1
  1684. package/dist/vendored/brepjs/utils/range.d.ts +0 -3
  1685. package/dist/vendored/brepjs/utils/range.d.ts.map +0 -1
  1686. package/dist/vendored/brepjs/utils/range.js +0 -5
  1687. package/dist/vendored/brepjs/utils/range.js.map +0 -1
  1688. package/dist/vendored/brepjs/utils/uuid.d.ts +0 -3
  1689. package/dist/vendored/brepjs/utils/uuid.d.ts.map +0 -1
  1690. package/dist/vendored/brepjs/utils/uuid.js +0 -7
  1691. package/dist/vendored/brepjs/utils/uuid.js.map +0 -1
  1692. package/dist/vendored/brepjs/utils/vec2d.d.ts +0 -62
  1693. package/dist/vendored/brepjs/utils/vec2d.d.ts.map +0 -1
  1694. package/dist/vendored/brepjs/utils/vec2d.js +0 -107
  1695. package/dist/vendored/brepjs/utils/vec2d.js.map +0 -1
  1696. package/dist/vendored/brepjs/utils/vec3.d.ts +0 -32
  1697. package/dist/vendored/brepjs/utils/vec3.d.ts.map +0 -1
  1698. package/dist/vendored/brepjs/utils/vec3.js +0 -35
  1699. package/dist/vendored/brepjs/utils/vec3.js.map +0 -1
  1700. package/dist/vendored/brepjs/utils/zip.d.ts +0 -5
  1701. package/dist/vendored/brepjs/utils/zip.d.ts.map +0 -1
  1702. package/dist/vendored/brepjs/utils/zip.js +0 -8
  1703. package/dist/vendored/brepjs/utils/zip.js.map +0 -1
  1704. package/dist/vendored/brepjs/vectors.d.ts +0 -11
  1705. package/dist/vendored/brepjs/vectors.d.ts.map +0 -1
  1706. package/dist/vendored/brepjs/vectors.js +0 -9
  1707. package/dist/vendored/brepjs/vectors.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node-host/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAsBzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,IAA6B;IAC3D,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACxB,WAAW,EAAE,IAAI,EAAE,WAAW;KAC/B,CAAC,CAAA;IAEF,qCAAqC;IACrC,aAAa,CAAC,YAAY,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,YAAY,EAAE,IAAI,EAAE,YAAY;KACjC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,EAAE,IAAI,gBAAgB,EAAE;QAC3B,GAAG,EAAE,IAAI,gBAAgB,EAAE;QAC3B,KAAK,EAAE,YAAY;QACnB,MAAM;QACN,MAAM,EAAE,IAAI,YAAY,EAAE;KAC3B,CAAA;AACH,CAAC","sourcesContent":["/**\n * node-host — L3 Node host 公开 API\n *\n *\n * Node host 负责:\n * - 创建 CadRuntime 实例(注入 node Ports:InlineCsgBackend / InlineSdfBackend / ...)\n * - 连接 NodeFontProvider 到 fontRegistry\n * - CLI 入口\n */\n\nexport { InlineCsgBackend } from '../browser-host/inline-csg-backend'\nexport { InlineSdfBackend } from '../browser-host/inline-sdf-backend'\nexport { NodeFontProvider } from './node-font-provider'\nexport type { NodeFontProviderOptions } from './node-font-provider'\nexport { FsAssetResolver } from './fs-asset-resolver'\nexport type { FsAssetResolverOptions } from './fs-asset-resolver'\nexport { CliEventSink } from './cli-event-sink'\n\nimport type { HostPorts } from '../cad-runtime/ports'\nimport { InlineCsgBackend } from '../browser-host/inline-csg-backend'\nimport { InlineSdfBackend } from '../browser-host/inline-sdf-backend'\nimport { NodeFontProvider } from './node-font-provider'\nimport { FsAssetResolver } from './fs-asset-resolver'\nimport { CliEventSink } from './cli-event-sink'\nimport { setFontLoader } from '../brep/text/fontRegistry'\n\n/** Options for creating Node host ports. */\nexport interface CreateNodePortsOptions {\n /** Asset directory (used by FsAssetResolver). */\n assetsDir?: string\n /** Manifest file path. */\n manifestPath?: string\n /** Extra fonts directory. */\n fontsDir?: string\n /** Default font path (falls back to the project single source of truth when omitted). */\n defaultFontPath?: string\n /**\n * Look up font *family names* in the OS font directories (default `true`).\n *\n * This is what makes `text(font: 'Arial')` behave like CadQuery, whose\n * `Font_FontMgr` resolves names against the installed fonts. Set `false` for a\n * hermetic host: name lookups then miss and fall back to the default font.\n */\n systemFonts?: boolean\n}\n\n/**\n * Create Node-side HostPorts (for injecting into CadRuntime).\n *\n * Assembles all inline backends into HostPorts:\n * - csg: InlineCsgBackend (runs manifold-3d directly on the main thread)\n * - sdf: InlineSdfBackend (runs directly on the main thread)\n * - fonts: NodeFontProvider (fs font loading)\n * - assets: FsAssetResolver (fs asset resolution)\n * - events: CliEventSink (writes to stderr + collects)\n *\n * Also connects the NodeFontProvider to fontRegistry (setFontLoader), so that\n * brep/text's ensureDefaultFont() can load fonts via the filesystem.\n *\n * @param opts - options controlling the ports (assets/fonts directories, default font path)\n * @returns the assembled HostPorts\n */\nexport function createNodePorts(opts?: CreateNodePortsOptions): HostPorts {\n const fontProvider = new NodeFontProvider({\n defaultFontPath: opts?.defaultFontPath,\n fontsDir: opts?.fontsDir,\n systemFonts: opts?.systemFonts,\n })\n\n // 连接 NodeFontProvider 到 fontRegistry\n setFontLoader(fontProvider)\n\n const assets = new FsAssetResolver({\n assetsDir: opts?.assetsDir,\n manifestPath: opts?.manifestPath,\n })\n\n return {\n csg: new InlineCsgBackend(),\n sdf: new InlineSdfBackend(),\n fonts: fontProvider,\n assets,\n events: new CliEventSink(),\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node-host/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAsBzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAAC,IAA6B;IAC3D,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC;QACxC,eAAe,EAAE,IAAI,EAAE,eAAe;QACtC,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACxB,WAAW,EAAE,IAAI,EAAE,WAAW;KAC/B,CAAC,CAAA;IAEF,qCAAqC;IACrC,aAAa,CAAC,YAAY,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,YAAY,EAAE,IAAI,EAAE,YAAY;KACjC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,EAAE,IAAI,gBAAgB,EAAE;QAC3B,GAAG,EAAE,IAAI,gBAAgB,EAAE;QAC3B,KAAK,EAAE,YAAY;QACnB,MAAM;QACN,MAAM,EAAE,IAAI,YAAY,EAAE;QAC1B,8DAA8D;QAC9D,qDAAqD;QACrD,OAAO,EAAE,MAAM;KAChB,CAAA;AACH,CAAC","sourcesContent":["/**\n * node-host — L3 Node host 公开 API\n *\n *\n * Node host 负责:\n * - 创建 CadRuntime 实例(注入 node Ports:InlineCsgBackend / InlineSdfBackend / ...)\n * - 连接 NodeFontProvider 到 fontRegistry\n * - CLI 入口\n */\n\nexport { InlineCsgBackend } from '../browser-host/inline-csg-backend'\nexport { InlineSdfBackend } from '../browser-host/inline-sdf-backend'\nexport { NodeFontProvider } from './node-font-provider'\nexport type { NodeFontProviderOptions } from './node-font-provider'\nexport { FsAssetResolver } from './fs-asset-resolver'\nexport type { FsAssetResolverOptions } from './fs-asset-resolver'\nexport { CliEventSink } from './cli-event-sink'\n\nimport type { HostPorts } from '../cad-runtime/ports'\nimport { InlineCsgBackend } from '../browser-host/inline-csg-backend'\nimport { InlineSdfBackend } from '../browser-host/inline-sdf-backend'\nimport { NodeFontProvider } from './node-font-provider'\nimport { FsAssetResolver } from './fs-asset-resolver'\nimport { CliEventSink } from './cli-event-sink'\nimport { setFontLoader } from '../brep/text/fontRegistry'\n\n/** Options for creating Node host ports. */\nexport interface CreateNodePortsOptions {\n /** Asset directory (used by FsAssetResolver). */\n assetsDir?: string\n /** Manifest file path. */\n manifestPath?: string\n /** Extra fonts directory. */\n fontsDir?: string\n /** Default font path (falls back to the project single source of truth when omitted). */\n defaultFontPath?: string\n /**\n * Look up font *family names* in the OS font directories (default `true`).\n *\n * This is what makes `text(font: 'Arial')` behave like CadQuery, whose\n * `Font_FontMgr` resolves names against the installed fonts. Set `false` for a\n * hermetic host: name lookups then miss and fall back to the default font.\n */\n systemFonts?: boolean\n}\n\n/**\n * Create Node-side HostPorts (for injecting into CadRuntime).\n *\n * Assembles all inline backends into HostPorts:\n * - csg: InlineCsgBackend (runs manifold-3d directly on the main thread)\n * - sdf: InlineSdfBackend (runs directly on the main thread)\n * - fonts: NodeFontProvider (fs font loading)\n * - assets: FsAssetResolver (fs asset resolution)\n * - events: CliEventSink (writes to stderr + collects)\n * - hostEnv: 'node' (script-face export commands are open on this host)\n *\n * Also connects the NodeFontProvider to fontRegistry (setFontLoader), so that\n * brep/text's ensureDefaultFont() can load fonts via the filesystem.\n *\n * @param opts - options controlling the ports (assets/fonts directories, default font path)\n * @returns the assembled HostPorts\n */\nexport function createNodePorts(opts?: CreateNodePortsOptions): HostPorts {\n const fontProvider = new NodeFontProvider({\n defaultFontPath: opts?.defaultFontPath,\n fontsDir: opts?.fontsDir,\n systemFonts: opts?.systemFonts,\n })\n\n // 连接 NodeFontProvider 到 fontRegistry\n setFontLoader(fontProvider)\n\n const assets = new FsAssetResolver({\n assetsDir: opts?.assetsDir,\n manifestPath: opts?.manifestPath,\n })\n\n return {\n csg: new InlineCsgBackend(),\n sdf: new InlineSdfBackend(),\n fonts: fontProvider,\n assets,\n events: new CliEventSink(),\n // 宿主环境声明:Node.js 进程 → 脚本面导出命令(cad.exportStl / cad.exportBrep)\n // 在此开放;落盘发生在用户自己的机器上。见 cad-runtime/ports.ts#HostEnv。\n hostEnv: 'node',\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"occt-primitives.d.ts","sourceRoot":"","sources":["../../src/occt-kernel/occt-primitives.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAqE5F;;;;;;GAMG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CA4XnE;AAED,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;AAI7E,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"occt-primitives.d.ts","sourceRoot":"","sources":["../../src/occt-kernel/occt-primitives.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAqE5F;;;;;;GAMG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CA8YnE;AAED,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;AAI7E,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAA"}
@@ -99,6 +99,26 @@ export async function createOcctPrimitives() {
99
99
  // ── shaping ──
100
100
  extrude: (shape, dx, dy, dz) => asHandle(k.extrude(asShape(shape), dx, dy, dz)),
101
101
  revolveVec: (shape, center, direction, angleDeg) => asHandle(k.revolve(asShape(shape), { point: center, direction }, rad(angleDeg))),
102
+ // L1 中立 sweep:occt 侧 native sweepPipeShell 的 (profile, spine) 与 L1 同形,
103
+ // 只补齐两个默认开关(freenet=false / smooth=false,与旧 sweepFns 的默认路径
104
+ // 逐字节一致);brepkit 侧的 face/NURBS 适配在 brepkitKernel 内。
105
+ // ⚠️ 不用 native `simplePipe`:实测它对本用例的 8×8 方截面沿 +Z 扫 50 产出
106
+ // 体积 2133.33,而 sweepPipeShell 产出解析值 3200(`test/api/sweep-loft.test.ts`
107
+ // 的「两个 2D 面截面」用例即为该真值)——基础 sweep 必须与既有行为一致。
108
+ sweep: (profile, spine) => asHandle(k.sweepPipeShell(asShape(profile), asShape(spine), false, false)),
109
+ // L1 中立 loft:occt 原生 loft 吃 wire,只作 endPoint → loftWithVertices 的退化解。
110
+ loft: (sections, ruled, endPoint) => {
111
+ const wires = shapes(sections);
112
+ if (endPoint === undefined)
113
+ return asHandle(k.loft(wires, true, ruled));
114
+ const end = k.makeVertex(endPoint.x, endPoint.y, endPoint.z);
115
+ try {
116
+ return asHandle(k.loftWithVertices(wires, true, ruled, undefined, end));
117
+ }
118
+ finally {
119
+ k.release(end);
120
+ }
121
+ },
102
122
  sew: (list, tolerance) => asHandle(k.sew(shapes(list), tolerance)),
103
123
  sewAndSolidify: (faces, tolerance) => asHandle(k.sewAndSolidify(shapes(faces), tolerance)),
104
124
  shell: (solid, facesToRemove, thickness, tolerance) => asHandle(k.shell(asShape(solid), shapes(facesToRemove), thickness, tolerance)),
@@ -1 +1 @@
1
- {"version":3,"file":"occt-primitives.js","sourceRoot":"","sources":["../../src/occt-kernel/occt-primitives.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * occt-kernel/occt-primitives — `createOcctPrimitives()`: the L1 contract\n * (`BrepEngineApi`) adapter over the raw occt-wasm `OcctKernel` singleton.\n *\n * Plan Phase 3.2:\n * explicit object literal, one method per L1 contract member — no monkey\n * patching, no cross-layer assertion lies, no unsupported() stubs. Every member\n * here is either a direct pass-through to the native kernel or an adapter-side\n * dialect digestion, both honestly implementing the contract.\n *\n * Occt-only capabilities (loft family, tool-entity section/split, *WithHistory\n * beyond the L1 trio, XCAF, SVG projection …) are deliberately NOT here —\n * platform code reaches them through the native face: `getOcctKernel()` (D3).\n */\nimport type {\n EdgeData,\n EvolutionData,\n Mesh,\n OcctKernel,\n ShapeHandle,\n Vec3,\n} from 'occt-wasm'\nimport { initOcctWasm } from './occtKernel'\nimport { hullFromPoints as hullFromPointsCore } from './hullOps'\nimport type { AssertSatisfiesBrepEngineApi, BrepEngineApi } from '../brep/engine/primitives'\nimport type {\n BrepBoundingBox,\n BrepCurveParameters,\n BrepEdgeData,\n BrepEvolutionData,\n BrepHandle,\n BrepMeshResult,\n BrepUvBounds,\n BrepVec3,\n} from '../brep/engine/types'\n\nconst asHandle = (h: number | ShapeHandle): BrepHandle => h as BrepHandle\nconst asShape = (h: BrepHandle): ShapeHandle => h as unknown as ShapeHandle\nconst shapes = (hs: BrepHandle[]): ShapeHandle[] => hs.map(asShape)\nconst v3 = (v: Vec3): BrepVec3 => ({ x: v.x, y: v.y, z: v.z })\nconst rad = (deg: number): number => (deg * Math.PI) / 180\n\n/** Topology layer uses this upper bound for face hashes (HASH_CODE_MAX). */\nconst HASH_UPPER_BOUND = 2 ** 24\n\n/** occt-wasm native linearPattern/circularPattern return ONE compound handle\n * containing all replicas (the wasm d.ts type lies by claiming a plain handle).\n * The adapter captures the native methods, then splits the compound via\n * getSubShapes('solid') into the BrepHandle[] the L1 contract promises. */\ntype OcctPatternRaw = {\n linearPattern(shape: ShapeHandle, direction: Vec3, spacing: number, count: number): ShapeHandle\n circularPattern(shape: ShapeHandle, center: Vec3, axis: Vec3, angle: number, count: number): ShapeHandle\n}\n\n/**\n * Build a large planar face (boolean tool) through `point`, oriented by\n * `normal`. The face is constructed directly in the plane's own basis\n * (u ⊥ v ⊥ normal, through point) — no post-rotation needed, any normal\n * direction works (the Phase 1 probe only pinned +Z; this generalizes it).\n */\nfunction makePlanarFaceTool(k: OcctKernel, point: BrepVec3, normal: BrepVec3): ShapeHandle {\n const size = 500 // large enough to fully cut any reasonable solid\n // Pick the axis component with the smallest magnitude to build a stable\n // perpendicular basis (avoids degeneracy when normal is axis-aligned).\n const ax = Math.abs(normal.x)\n const ay = Math.abs(normal.y)\n const az = Math.abs(normal.z)\n let u: BrepVec3\n if (ax <= ay && ax <= az) u = { x: 0, y: -normal.z, z: normal.y }\n else if (ay <= az) u = { x: -normal.z, y: 0, z: normal.x }\n else u = { x: normal.y, y: -normal.x, z: 0 }\n const ul = Math.hypot(u.x, u.y, u.z)\n u = { x: u.x / ul, y: u.y / ul, z: u.z / ul }\n const v: BrepVec3 = {\n x: normal.y * u.z - normal.z * u.y,\n y: normal.z * u.x - normal.x * u.z,\n z: normal.x * u.y - normal.y * u.x,\n }\n const corner = (a: number, b: number): Vec3 => ({\n x: point.x + (u.x * a + v.x * b) * size,\n y: point.y + (u.y * a + v.y * b) * size,\n z: point.z + (u.z * a + v.z * b) * size,\n })\n const e1 = k.makeLineEdge(corner(-1, -1), corner(1, -1))\n const e2 = k.makeLineEdge(corner(1, -1), corner(1, 1))\n const e3 = k.makeLineEdge(corner(1, 1), corner(-1, 1))\n const e4 = k.makeLineEdge(corner(-1, 1), corner(-1, -1))\n const wire = k.makeWire([e1, e2, e3, e4])\n const face = k.makeFace(wire)\n k.release(wire)\n return face\n}\n\n/**\n * Create the occt implementation of the L1 engine contract. Idempotent-friendly:\n * the wasm kernel is a process-level singleton (see initOcctWasm), each call\n * returns a fresh adapter object over the same kernel.\n *\n * @returns a BrepEngineApi implementation backed by the occt wasm kernel.\n */\nexport async function createOcctPrimitives(): Promise<BrepEngineApi> {\n const k = await initOcctWasm()\n const raw = k as unknown as OcctPatternRaw\n // Capture native pattern methods BEFORE any wiring so gridPattern composes\n // on true native semantics (old adapter GOTCHA: after overwriting, calling\n // the property again recurses into the wrapper).\n const nativeLinearPattern = raw.linearPattern.bind(k)\n // 2026-09-25 core-decouple Phase 2(§5.1):hull 最小闭包已移植进 occt-kernel/\n // (hullGeometry + hullOps,occt-wasm 原生直调),此处不再经\n // OcctWasmAdapter——core 自有引擎对旧适配器的最后一处依赖已拔除。\n\n const splitCompoundToArray = (compound: ShapeHandle): BrepHandle[] => {\n const parts = k.getSubShapes(compound, 'solid').map(asHandle)\n k.release(compound)\n return parts\n }\n\n const toEvolution = (e: EvolutionData): BrepEvolutionData => ({\n // occt-wasm's EvolutionData already carries the segmented\n // [inHash, count, outHash…] encoding pinned by phase0-kernel-probes\n // (its own docs claim flat maps — docs are wrong, data is segmented).\n result: asHandle(e.result),\n modified: e.modified,\n generated: e.generated,\n deleted: e.deleted,\n })\n\n const primitives: BrepEngineApi = {\n // ── lifecycle ──\n release: (shape) => k.release(asShape(shape)),\n dispose: (shape) => {\n if (shape !== undefined) k.release(asShape(shape))\n },\n\n // ── solids ──\n makeBox: (dx, dy, dz) => asHandle(k.makeBox(dx, dy, dz)),\n makeBoxFromCorners: (c1, c2) => asHandle(k.makeBoxFromCorners(c1, c2)),\n makeCylinder: (radius, height) => asHandle(k.makeCylinder(radius, height)),\n makeSphere: (radius) => asHandle(k.makeSphere(radius)),\n makeCone: (r1, r2, height) => asHandle(k.makeCone(r1, r2, height)),\n makeRectangle: (w, h) => asHandle(k.makeRectangle(w, h)),\n makeEllipsoid: (rx, ry, rz) => asHandle(k.makeEllipsoid(rx, ry, rz)),\n makeTorus: (major, minor) => asHandle(k.makeTorus(major, minor)),\n makeVertex: (x, y, z) => asHandle(k.makeVertex(x, y, z)),\n\n // ── shaping ──\n extrude: (shape, dx, dy, dz) => asHandle(k.extrude(asShape(shape), dx, dy, dz)),\n revolveVec: (shape, center, direction, angleDeg) =>\n asHandle(k.revolve(asShape(shape), { point: center, direction }, rad(angleDeg))),\n sew: (list, tolerance) => asHandle(k.sew(shapes(list), tolerance)),\n sewAndSolidify: (faces, tolerance) => asHandle(k.sewAndSolidify(shapes(faces), tolerance)),\n shell: (solid, facesToRemove, thickness, tolerance) =>\n asHandle(k.shell(asShape(solid), shapes(facesToRemove), thickness, tolerance)),\n hullFromPoints: (points, tolerance) => hullFromPointsCore(k, points as never, tolerance),\n\n // ── booleans & splitting ──\n fuse: (a, b) => asHandle(k.fuse(asShape(a), asShape(b))),\n cut: (a, b) => asHandle(k.cut(asShape(a), asShape(b))),\n common: (a, b) => asHandle(k.common(asShape(a), asShape(b))),\n intersect: (a, b) => asHandle(k.intersect(asShape(a), asShape(b))),\n fuseAll: (list) => asHandle(k.fuseAll(shapes(list))),\n sectionByPlane: (shape, point, normal) => {\n // Phase 1 probe A (phase1-semantic-probes.test.ts): a planar face used as\n // the section tool yields the plane-section geometry. Downcast the result\n // compound into edge/wire handles; a non-compound result passes through.\n const tool = makePlanarFaceTool(k, point, normal)\n try {\n const result = k.section(asShape(shape), tool)\n if (k.isNull(result)) return []\n const out: BrepHandle[] = []\n for (const t of ['edge', 'wire'] as const) {\n for (const part of k.getSubShapes(result, t)) out.push(asHandle(k.downcast(part, t)))\n }\n if (out.length === 0) {\n // No intersection: native section still yields an (empty) compound —\n // release it and return an empty list so callers can detect the miss\n // instead of adopting an empty compound as a \"curve\".\n k.release(result)\n return []\n }\n k.release(result)\n return out\n } finally {\n k.release(tool)\n }\n },\n splitByPlane: (shape, point, normal) => {\n // Phase 1 probe A: splitter with a planar face tool yields exactly 2 solids.\n const tool = makePlanarFaceTool(k, point, normal)\n try {\n const result = k.split(asShape(shape), [tool])\n if (k.isNull(result)) throw new Error('splitByPlane: splitter produced no result')\n const solids = k.getSubShapes(result, 'solid').map(asHandle)\n k.release(result)\n if (solids.length !== 2) {\n throw new Error(`splitByPlane: expected 2 solids, got ${solids.length}`)\n }\n // Classify sides by centroid projection onto the plane normal.\n const originDot = point.x * normal.x + point.y * normal.y + point.z * normal.z\n const side = (h: BrepHandle): number => {\n const c = k.getCenterOfMass(asShape(h))\n return c.x * normal.x + c.y * normal.y + c.z * normal.z - originDot\n }\n const [a, b] = solids\n return side(a) >= side(b)\n ? { positive: a, negative: b }\n : { positive: b, negative: a }\n } finally {\n k.release(tool)\n }\n },\n\n // ── chamfer & fillet ──\n chamfer: (solid, edgesList, distance) =>\n asHandle(k.chamfer(asShape(solid), shapes(edgesList), distance)),\n chamferDistAngle: (solid, edgesList, distance, angleDeg) =>\n asHandle(k.chamferDistAngle(asShape(solid), shapes(edgesList), distance, angleDeg)),\n fillet: (solid, edgesList, radius) =>\n asHandle(k.fillet(asShape(solid), shapes(edgesList), radius)),\n filletVariable: (solid, edge, startRadius, endRadius) =>\n asHandle(k.filletVariable(asShape(solid), asShape(edge), startRadius, endRadius)),\n filletWithHistory: (solid, edgesList, radius, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.filletWithHistory(asShape(solid), shapes(edgesList), radius, inputFaceHashes, hashUpperBound)),\n\n // ── transforms (matrix convention: 3×4 row-major, 12 doubles) ──\n translate: (shape, dx, dy, dz) => asHandle(k.translate(asShape(shape), dx, dy, dz)),\n scale: (shape, center, factor) => asHandle(k.scale(asShape(shape), center, factor)),\n transform: (shape, matrix) => asHandle(k.transform(asShape(shape), matrix)),\n located: (shape, matrix) => asHandle(k.located(asShape(shape), matrix)),\n locate: (shape, matrix) => asHandle(k.located(asShape(shape), matrix)),\n generalTransform: (shape, matrix) => {\n // GOTCHA (2026-10-07, openscad example023 parity): the native `gp_GTrsf`\n // path returns a handle whose *stored triangulation* double-applies the\n // translated face's TopLoc. The exact geometry is right; only the\n // tessellation is wrong, so the defect only shows on an **already meshed**\n // shape — and every `cad.extrude`/boolean result is meshed for display\n // (`brep-ops.ts#solidToShape`). Measured on an extruded face-with-hole\n // prism: exact top cap 5.0, tessellated top cap 10.0 (non-uniform z×2.5:\n // 12.5 vs 17.5). `BRepBuilderAPI_Copy` yields a shape without the stale\n // triangulation, so the result re-tessellates correctly.\n //\n // Deliberately adapter-local, not in the engine-neutral dispatcher\n // (`brep/brep-ops.ts#applyAffineBrep`): the defect is **occt-only** —\n // brepkit's GTrsf path is clean (pinned by\n // test/brep/applymatrix-similarity-routing.test.ts). Making every engine\n // pay an extra handle allocation for an occt quirk also perturbed\n // brepkit's `cut` bbox in test/brep/engine/multi-engine-op-parity.test.ts.\n //\n // Safety: the copy is adapter-owned and released here; the returned handle\n // is independent of it (the native op does not consume its input).\n const copy = k.copy(asShape(shape))\n try {\n return asHandle(k.generalTransform(copy, matrix))\n } finally {\n k.release(copy)\n }\n },\n copy: (shape) => asHandle(k.copy(asShape(shape))),\n copyShape: (shape) => asHandle(k.copy(asShape(shape))),\n composeTransform: (m1, m2) => k.composeTransform(m1, m2),\n mirror: (shape, point, normal) => asHandle(k.mirror(asShape(shape), point, normal)),\n\n // ── patterns ──\n // GOTCHA: occt-wasm native linearPattern/circularPattern return ONE compound\n // handle (their d.ts type lies). Split it into per-replica handles here.\n linearPattern: (shape, direction, spacing, count) => {\n const compound = nativeLinearPattern(asShape(shape), direction, spacing, count)\n return splitCompoundToArray(compound)\n },\n circularPattern: (shape, center, axis, angleStep, count) => {\n // Empirically validated (old adapter + engine-switch-p2 parity): the wasm\n // layer takes the angle in DEGREES here (unlike revolve's angleRad).\n const compound = (k as unknown as OcctPatternRaw).circularPattern.call(\n k, asShape(shape), center, axis, angleStep, count,\n )\n return splitCompoundToArray(compound)\n },\n gridPattern: (shape, directionX, directionY, spacingX, spacingY, countX, countY) => {\n // Composed: native linearPattern along X per column, then along Y per row,\n // fuse all replicas. Must use the CAPTURED native linearPattern (returns\n // compound) — the adapter property above now returns arrays.\n const colCompound = nativeLinearPattern(asShape(shape), directionX, spacingX, countX)\n const cols = k.getSubShapes(colCompound, 'solid')\n k.release(colCompound)\n const all: ShapeHandle[] = []\n try {\n for (const c of cols) {\n const rowCompound = nativeLinearPattern(c, directionY, spacingY, countY)\n try {\n all.push(...k.getSubShapes(rowCompound, 'solid'))\n } finally {\n k.release(rowCompound)\n }\n }\n } finally {\n for (const c of cols) k.release(c)\n }\n return asHandle(k.fuseAll(all))\n },\n\n // ── curve construction ──\n makeLineEdge: (start, end) => asHandle(k.makeLineEdge(start, end)),\n makeArcEdge: (start, mid, end) => asHandle(k.makeArcEdge(start, mid, end)),\n makeBezierEdge: (controlPoints) => asHandle(k.makeBezierEdge(controlPoints)),\n makeBSplineEdge: (poles, weights, knots, multiplicities, degree, periodic) =>\n asHandle(k.makeBSplineEdge(poles, weights, knots, multiplicities, degree, periodic ?? false)),\n makeCircleEdge: (center, normal, radius) =>\n asHandle(k.makeCircleEdge(center, normal, radius)),\n\n // ── topology construction ──\n makeWire: (edgesList) => asHandle(k.makeWire(shapes(edgesList))),\n makeFace: (wire) => asHandle(k.makeFace(asShape(wire))),\n makeCompound: (list) => asHandle(k.makeCompound(shapes(list))),\n addHolesInFace: (face, holeWires) =>\n asHandle(k.addHolesInFace(asShape(face), shapes(holeWires))),\n buildTriFace: (a, b, c) => asHandle(k.buildTriFace(a, b, c)),\n\n // ── tessellation (the only BREP→mesh exit) ──\n meshShape: (shape, options): BrepMeshResult => {\n const m: Mesh = k.meshShape(asShape(shape), options)\n return {\n positions: m.positions,\n normals: m.normals,\n indices: m.indices,\n vertexCount: m.vertexCount,\n triangleCount: m.triangleCount,\n faceGroups: m.faceGroups,\n faceCount: m.faceCount,\n }\n },\n wireframe: (shape, deflection): BrepEdgeData => {\n const e: EdgeData = k.wireframe(asShape(shape), deflection)\n return {\n points: e.points,\n edgeGroups: e.edgeGroups,\n pointCount: e.pointCount,\n edgeCount: e.edgeCount,\n }\n },\n\n // ── topology queries ──\n getSubShapes: (shape, type) => k.getSubShapes(asShape(shape), type).map(asHandle),\n subShapeHashes: (shape, type, hashUpperBound) =>\n k.subShapeHashes(asShape(shape), type, hashUpperBound),\n hashCode: (shape, upperBound) => k.hashCode(asShape(shape), upperBound),\n isSame: (a, b) => k.isSame(asShape(a), asShape(b)),\n isSolid: (shape) => k.isSolid(asShape(shape)),\n shapeType: (shape) => k.getShapeType(asShape(shape)),\n shapeOrientation: (shape) => String(k.shapeOrientation(asShape(shape))),\n edgeToFaceMap: (shape) => k.edgeToFaceMap(asShape(shape), HASH_UPPER_BOUND),\n adjacentFaces: (shape, face) =>\n k.adjacentFaces(asShape(shape), asShape(face)).map(asHandle),\n sharedEdges: (a, b) => k.sharedEdges(asShape(a), asShape(b)).map(asHandle),\n\n // ── geometry evaluation ──\n curveType: (edge) => String(k.curveType(asShape(edge))),\n curvePointAtParam: (edge, param) => v3(k.curvePointAtParam(asShape(edge), param)),\n curveTangent: (edge, param) => v3(k.curveTangent(asShape(edge), param)),\n curveParameters: (edge): BrepCurveParameters => k.curveParameters(asShape(edge)),\n curveIsClosed: (edge) => k.curveIsClosed(asShape(edge)),\n curveLength: (edge) => k.curveLength(asShape(edge)),\n surfaceType: (face) => String(k.surfaceType(asShape(face))),\n surfaceNormal: (face, u, vv) => v3(k.surfaceNormal(asShape(face), u, vv)),\n pointOnSurface: (face, u, vv) => v3(k.pointOnSurface(asShape(face), u, vv)),\n uvBounds: (face): BrepUvBounds => k.uvBounds(asShape(face)),\n surfaceCenterOfMass: (face) => v3(k.getSurfaceCenterOfMass(asShape(face))),\n getFaceCylinderData: (face) => {\n const d = k.getFaceCylinderData(asShape(face))\n return d ? { radius: d.radius } : null\n },\n getNurbsCurveData: (edge) => {\n const d = k.getNurbsCurveData(asShape(edge))\n return d\n ? {\n degree: d.degree,\n rational: d.rational,\n periodic: d.periodic,\n knots: Array.from(d.knots),\n multiplicities: Array.from(d.multiplicities),\n poles: Array.from(d.poles),\n weights: Array.from(d.weights),\n }\n : null\n },\n curveSplit: (edge, param) => {\n const parts = k.curveSplit(asShape(edge), param)\n return [asHandle(parts[0]), asHandle(parts[1])]\n },\n interpolatePoints: (points, degree) => {\n // L1 contract takes an explicit degree; occt-wasm interpolates a cubic\n // (or periodic) spline and ignores degree — honor only degree 3 and\n // reject others loudly rather than silently producing wrong geometry.\n if (degree !== 3) {\n throw new Error(`occt interpolatePoints: only degree 3 supported, got ${degree}`)\n }\n return asHandle(k.interpolatePoints(points))\n },\n\n defeature: (shape, facesList) => asHandle(k.defeature(asShape(shape), shapes(facesList), 0)),\n draft: (shape, facesList, pull, neutral, angleDeg) => {\n // Native draft is single-face + radians, and has NO neutral-plane argument\n // (occt-wasm index.d.ts:156 `draft(shape, face, angleRad, direction)`).\n // Silently dropping a caller-supplied neutral plane would draft against the\n // wrong plane, so reject loudly (same rule as `interpolatePoints` below).\n // brepkit's L1 draft does consume the neutral point (brepkitKernel.ts:669).\n if (neutral && (neutral.x !== 0 || neutral.y !== 0 || neutral.z !== 0)) {\n throw new Error(\n 'occt draft: neutral plane is not supported by the native kernel ' +\n `(got neutral=(${neutral.x},${neutral.y},${neutral.z})); only the origin neutral is representable`,\n )\n }\n // Native draft is single-face; fold N faces sequentially.\n let current = asShape(shape)\n for (const f of facesList) {\n current = k.draft(current, asShape(f), rad(angleDeg), pull)\n }\n return asHandle(current)\n },\n removeHolesFromFace: (face) => {\n // Native takes hole indices; removing ALL holes = all wires except outer.\n const wires = k.getSubShapes(asShape(face), 'wire')\n const indices = wires.map((_, i) => i).filter((i) => i > 0)\n return asHandle(k.removeHolesFromFace(asShape(face), indices))\n },\n reverseShape: (shape) => asHandle(k.reverseShape(asShape(shape))),\n projectEdges: (shape, origin, direction, xAxis, _hiddenLines, _deflection) =>\n // Native projection has no hiddenLines/deflection flags in its signature —\n // pass through the projection result; callers treat it as opaque (unknown).\n k.projectEdges(asShape(shape), origin, direction, xAxis),\n\n // ── measurement ──\n getBoundingBox: (shape, useTriangulation): BrepBoundingBox =>\n k.getBoundingBox(asShape(shape), useTriangulation ?? false),\n getVolume: (shape) => k.getVolume(asShape(shape)),\n getCenterOfMass: (shape) => v3(k.getCenterOfMass(asShape(shape))),\n getSurfaceArea: (shape) => k.getSurfaceArea(asShape(shape)),\n // getLength:唯一 edge 弧长之和(与 brepkit 适配器同口径,D5)。\n // OCC 原生 LinearProperties 默认 SkipShared=false,按**面**遍历、把每条共享边按\n // 相邻面各计一次 ⇒ 实体得到的是「Σ 面周长」而非弧长(20×10×5 盒 → 280 = 2×140)。\n // 归一化为 TopExp 去重后的边逐条求和。checkpoint/releaseSince 是 occt-wasm 为\n // 「枚举子形状句柄后批量回收」提供的 arena 机制(index.d.ts:274-279, 498-511);\n // h 在 checkpoint 之前产生,不会被回收。\n getLength: (shape) => {\n const h = asShape(shape)\n const mark = k.checkpoint()\n try {\n let total = 0\n for (const e of k.getSubShapes(h, 'edge')) total += k.getLength(e)\n return total\n } finally {\n k.releaseSince(mark)\n }\n },\n\n // ── validation & repair ──\n isValid: (shape) => k.isValid(asShape(shape)),\n unifySameDomain: (shape) => asHandle(k.unifySameDomain(asShape(shape))),\n healSolid: (shape, tolerance) => asHandle(k.healSolid(asShape(shape), tolerance)),\n fixShape: (shape) => asHandle(k.fixShape(asShape(shape))),\n fixFaceOrientations: (shape) => asHandle(k.fixFaceOrientations(asShape(shape))),\n removeDegenerateEdges: (shape, _tolerance) =>\n // Native takes no tolerance parameter (kernel-fixed tolerance).\n asHandle(k.removeDegenerateEdges(asShape(shape))),\n\n // ── IO ──\n importStep: (data) => asHandle(k.importStep(data)),\n exportStep: (shape) => k.exportStep(asShape(shape)),\n importStl: (data) => asHandle(k.importStl(data)),\n fromBREP: (data) => asHandle(k.fromBREP(data)),\n\n // ── face evolution (L1 trio only) ──\n cutWithHistory: (a, b, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.cutWithHistory(asShape(a), asShape(b), inputFaceHashes, hashUpperBound)),\n fuseWithHistory: (a, b, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.fuseWithHistory(asShape(a), asShape(b), inputFaceHashes, hashUpperBound)),\n intersectWithHistory: (a, b, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.intersectWithHistory(asShape(a), asShape(b), inputFaceHashes, hashUpperBound)),\n }\n\n return primitives\n}\n\n/** The occt primitives type (BrepEngineApi implementation). */\nexport type OcctPrimitives = Awaited<ReturnType<typeof createOcctPrimitives>>\n\n// §7.8 compile-time guard: the explicit literal must satisfy the L1 contract\n// member-by-member (this now has real verification power — no `as` escape).\n/** Compile-time assertion that OcctPrimitives satisfies BrepEngineApi. */\nexport type _AssertOcctApi = AssertSatisfiesBrepEngineApi<OcctPrimitives>"]}
1
+ {"version":3,"file":"occt-primitives.js","sourceRoot":"","sources":["../../src/occt-kernel/occt-primitives.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * occt-kernel/occt-primitives — `createOcctPrimitives()`: the L1 contract\n * (`BrepEngineApi`) adapter over the raw occt-wasm `OcctKernel` singleton.\n *\n * Plan Phase 3.2:\n * explicit object literal, one method per L1 contract member — no monkey\n * patching, no cross-layer assertion lies, no unsupported() stubs. Every member\n * here is either a direct pass-through to the native kernel or an adapter-side\n * dialect digestion, both honestly implementing the contract.\n *\n * Occt-only capabilities (loft family, tool-entity section/split, *WithHistory\n * beyond the L1 trio, XCAF, SVG projection …) are deliberately NOT here —\n * platform code reaches them through the native face: `getOcctKernel()` (D3).\n */\nimport type {\n EdgeData,\n EvolutionData,\n Mesh,\n OcctKernel,\n ShapeHandle,\n Vec3,\n} from 'occt-wasm'\nimport { initOcctWasm } from './occtKernel'\nimport { hullFromPoints as hullFromPointsCore } from './hullOps'\nimport type { AssertSatisfiesBrepEngineApi, BrepEngineApi } from '../brep/engine/primitives'\nimport type {\n BrepBoundingBox,\n BrepCurveParameters,\n BrepEdgeData,\n BrepEvolutionData,\n BrepHandle,\n BrepMeshResult,\n BrepUvBounds,\n BrepVec3,\n} from '../brep/engine/types'\n\nconst asHandle = (h: number | ShapeHandle): BrepHandle => h as BrepHandle\nconst asShape = (h: BrepHandle): ShapeHandle => h as unknown as ShapeHandle\nconst shapes = (hs: BrepHandle[]): ShapeHandle[] => hs.map(asShape)\nconst v3 = (v: Vec3): BrepVec3 => ({ x: v.x, y: v.y, z: v.z })\nconst rad = (deg: number): number => (deg * Math.PI) / 180\n\n/** Topology layer uses this upper bound for face hashes (HASH_CODE_MAX). */\nconst HASH_UPPER_BOUND = 2 ** 24\n\n/** occt-wasm native linearPattern/circularPattern return ONE compound handle\n * containing all replicas (the wasm d.ts type lies by claiming a plain handle).\n * The adapter captures the native methods, then splits the compound via\n * getSubShapes('solid') into the BrepHandle[] the L1 contract promises. */\ntype OcctPatternRaw = {\n linearPattern(shape: ShapeHandle, direction: Vec3, spacing: number, count: number): ShapeHandle\n circularPattern(shape: ShapeHandle, center: Vec3, axis: Vec3, angle: number, count: number): ShapeHandle\n}\n\n/**\n * Build a large planar face (boolean tool) through `point`, oriented by\n * `normal`. The face is constructed directly in the plane's own basis\n * (u ⊥ v ⊥ normal, through point) — no post-rotation needed, any normal\n * direction works (the Phase 1 probe only pinned +Z; this generalizes it).\n */\nfunction makePlanarFaceTool(k: OcctKernel, point: BrepVec3, normal: BrepVec3): ShapeHandle {\n const size = 500 // large enough to fully cut any reasonable solid\n // Pick the axis component with the smallest magnitude to build a stable\n // perpendicular basis (avoids degeneracy when normal is axis-aligned).\n const ax = Math.abs(normal.x)\n const ay = Math.abs(normal.y)\n const az = Math.abs(normal.z)\n let u: BrepVec3\n if (ax <= ay && ax <= az) u = { x: 0, y: -normal.z, z: normal.y }\n else if (ay <= az) u = { x: -normal.z, y: 0, z: normal.x }\n else u = { x: normal.y, y: -normal.x, z: 0 }\n const ul = Math.hypot(u.x, u.y, u.z)\n u = { x: u.x / ul, y: u.y / ul, z: u.z / ul }\n const v: BrepVec3 = {\n x: normal.y * u.z - normal.z * u.y,\n y: normal.z * u.x - normal.x * u.z,\n z: normal.x * u.y - normal.y * u.x,\n }\n const corner = (a: number, b: number): Vec3 => ({\n x: point.x + (u.x * a + v.x * b) * size,\n y: point.y + (u.y * a + v.y * b) * size,\n z: point.z + (u.z * a + v.z * b) * size,\n })\n const e1 = k.makeLineEdge(corner(-1, -1), corner(1, -1))\n const e2 = k.makeLineEdge(corner(1, -1), corner(1, 1))\n const e3 = k.makeLineEdge(corner(1, 1), corner(-1, 1))\n const e4 = k.makeLineEdge(corner(-1, 1), corner(-1, -1))\n const wire = k.makeWire([e1, e2, e3, e4])\n const face = k.makeFace(wire)\n k.release(wire)\n return face\n}\n\n/**\n * Create the occt implementation of the L1 engine contract. Idempotent-friendly:\n * the wasm kernel is a process-level singleton (see initOcctWasm), each call\n * returns a fresh adapter object over the same kernel.\n *\n * @returns a BrepEngineApi implementation backed by the occt wasm kernel.\n */\nexport async function createOcctPrimitives(): Promise<BrepEngineApi> {\n const k = await initOcctWasm()\n const raw = k as unknown as OcctPatternRaw\n // Capture native pattern methods BEFORE any wiring so gridPattern composes\n // on true native semantics (old adapter GOTCHA: after overwriting, calling\n // the property again recurses into the wrapper).\n const nativeLinearPattern = raw.linearPattern.bind(k)\n // 2026-09-25 core-decouple Phase 2(§5.1):hull 最小闭包已移植进 occt-kernel/\n // (hullGeometry + hullOps,occt-wasm 原生直调),此处不再经\n // OcctWasmAdapter——core 自有引擎对旧适配器的最后一处依赖已拔除。\n\n const splitCompoundToArray = (compound: ShapeHandle): BrepHandle[] => {\n const parts = k.getSubShapes(compound, 'solid').map(asHandle)\n k.release(compound)\n return parts\n }\n\n const toEvolution = (e: EvolutionData): BrepEvolutionData => ({\n // occt-wasm's EvolutionData already carries the segmented\n // [inHash, count, outHash…] encoding pinned by phase0-kernel-probes\n // (its own docs claim flat maps — docs are wrong, data is segmented).\n result: asHandle(e.result),\n modified: e.modified,\n generated: e.generated,\n deleted: e.deleted,\n })\n\n const primitives: BrepEngineApi = {\n // ── lifecycle ──\n release: (shape) => k.release(asShape(shape)),\n dispose: (shape) => {\n if (shape !== undefined) k.release(asShape(shape))\n },\n\n // ── solids ──\n makeBox: (dx, dy, dz) => asHandle(k.makeBox(dx, dy, dz)),\n makeBoxFromCorners: (c1, c2) => asHandle(k.makeBoxFromCorners(c1, c2)),\n makeCylinder: (radius, height) => asHandle(k.makeCylinder(radius, height)),\n makeSphere: (radius) => asHandle(k.makeSphere(radius)),\n makeCone: (r1, r2, height) => asHandle(k.makeCone(r1, r2, height)),\n makeRectangle: (w, h) => asHandle(k.makeRectangle(w, h)),\n makeEllipsoid: (rx, ry, rz) => asHandle(k.makeEllipsoid(rx, ry, rz)),\n makeTorus: (major, minor) => asHandle(k.makeTorus(major, minor)),\n makeVertex: (x, y, z) => asHandle(k.makeVertex(x, y, z)),\n\n // ── shaping ──\n extrude: (shape, dx, dy, dz) => asHandle(k.extrude(asShape(shape), dx, dy, dz)),\n revolveVec: (shape, center, direction, angleDeg) =>\n asHandle(k.revolve(asShape(shape), { point: center, direction }, rad(angleDeg))),\n // L1 中立 sweep:occt 侧 native sweepPipeShell 的 (profile, spine) 与 L1 同形,\n // 只补齐两个默认开关(freenet=false / smooth=false,与旧 sweepFns 的默认路径\n // 逐字节一致);brepkit 侧的 face/NURBS 适配在 brepkitKernel 内。\n // ⚠️ 不用 native `simplePipe`:实测它对本用例的 8×8 方截面沿 +Z 扫 50 产出\n // 体积 2133.33,而 sweepPipeShell 产出解析值 3200(`test/api/sweep-loft.test.ts`\n // 的「两个 2D 面截面」用例即为该真值)——基础 sweep 必须与既有行为一致。\n sweep: (profile, spine) => asHandle(k.sweepPipeShell(asShape(profile), asShape(spine), false, false)),\n // L1 中立 loft:occt 原生 loft 吃 wire,只作 endPoint → loftWithVertices 的退化解。\n loft: (sections, ruled, endPoint) => {\n const wires = shapes(sections)\n if (endPoint === undefined) return asHandle(k.loft(wires, true, ruled))\n const end = k.makeVertex(endPoint.x, endPoint.y, endPoint.z)\n try {\n return asHandle(k.loftWithVertices(wires, true, ruled, undefined as never, end))\n } finally {\n k.release(end)\n }\n },\n sew: (list, tolerance) => asHandle(k.sew(shapes(list), tolerance)),\n sewAndSolidify: (faces, tolerance) => asHandle(k.sewAndSolidify(shapes(faces), tolerance)),\n shell: (solid, facesToRemove, thickness, tolerance) =>\n asHandle(k.shell(asShape(solid), shapes(facesToRemove), thickness, tolerance)),\n hullFromPoints: (points, tolerance) => hullFromPointsCore(k, points as never, tolerance),\n\n // ── booleans & splitting ──\n fuse: (a, b) => asHandle(k.fuse(asShape(a), asShape(b))),\n cut: (a, b) => asHandle(k.cut(asShape(a), asShape(b))),\n common: (a, b) => asHandle(k.common(asShape(a), asShape(b))),\n intersect: (a, b) => asHandle(k.intersect(asShape(a), asShape(b))),\n fuseAll: (list) => asHandle(k.fuseAll(shapes(list))),\n sectionByPlane: (shape, point, normal) => {\n // Phase 1 probe A (phase1-semantic-probes.test.ts): a planar face used as\n // the section tool yields the plane-section geometry. Downcast the result\n // compound into edge/wire handles; a non-compound result passes through.\n const tool = makePlanarFaceTool(k, point, normal)\n try {\n const result = k.section(asShape(shape), tool)\n if (k.isNull(result)) return []\n const out: BrepHandle[] = []\n for (const t of ['edge', 'wire'] as const) {\n for (const part of k.getSubShapes(result, t)) out.push(asHandle(k.downcast(part, t)))\n }\n if (out.length === 0) {\n // No intersection: native section still yields an (empty) compound —\n // release it and return an empty list so callers can detect the miss\n // instead of adopting an empty compound as a \"curve\".\n k.release(result)\n return []\n }\n k.release(result)\n return out\n } finally {\n k.release(tool)\n }\n },\n splitByPlane: (shape, point, normal) => {\n // Phase 1 probe A: splitter with a planar face tool yields exactly 2 solids.\n const tool = makePlanarFaceTool(k, point, normal)\n try {\n const result = k.split(asShape(shape), [tool])\n if (k.isNull(result)) throw new Error('splitByPlane: splitter produced no result')\n const solids = k.getSubShapes(result, 'solid').map(asHandle)\n k.release(result)\n if (solids.length !== 2) {\n throw new Error(`splitByPlane: expected 2 solids, got ${solids.length}`)\n }\n // Classify sides by centroid projection onto the plane normal.\n const originDot = point.x * normal.x + point.y * normal.y + point.z * normal.z\n const side = (h: BrepHandle): number => {\n const c = k.getCenterOfMass(asShape(h))\n return c.x * normal.x + c.y * normal.y + c.z * normal.z - originDot\n }\n const [a, b] = solids\n return side(a) >= side(b)\n ? { positive: a, negative: b }\n : { positive: b, negative: a }\n } finally {\n k.release(tool)\n }\n },\n\n // ── chamfer & fillet ──\n chamfer: (solid, edgesList, distance) =>\n asHandle(k.chamfer(asShape(solid), shapes(edgesList), distance)),\n chamferDistAngle: (solid, edgesList, distance, angleDeg) =>\n asHandle(k.chamferDistAngle(asShape(solid), shapes(edgesList), distance, angleDeg)),\n fillet: (solid, edgesList, radius) =>\n asHandle(k.fillet(asShape(solid), shapes(edgesList), radius)),\n filletVariable: (solid, edge, startRadius, endRadius) =>\n asHandle(k.filletVariable(asShape(solid), asShape(edge), startRadius, endRadius)),\n filletWithHistory: (solid, edgesList, radius, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.filletWithHistory(asShape(solid), shapes(edgesList), radius, inputFaceHashes, hashUpperBound)),\n\n // ── transforms (matrix convention: 3×4 row-major, 12 doubles) ──\n translate: (shape, dx, dy, dz) => asHandle(k.translate(asShape(shape), dx, dy, dz)),\n scale: (shape, center, factor) => asHandle(k.scale(asShape(shape), center, factor)),\n transform: (shape, matrix) => asHandle(k.transform(asShape(shape), matrix)),\n located: (shape, matrix) => asHandle(k.located(asShape(shape), matrix)),\n locate: (shape, matrix) => asHandle(k.located(asShape(shape), matrix)),\n generalTransform: (shape, matrix) => {\n // GOTCHA (2026-10-07, openscad example023 parity): the native `gp_GTrsf`\n // path returns a handle whose *stored triangulation* double-applies the\n // translated face's TopLoc. The exact geometry is right; only the\n // tessellation is wrong, so the defect only shows on an **already meshed**\n // shape — and every `cad.extrude`/boolean result is meshed for display\n // (`brep-ops.ts#solidToShape`). Measured on an extruded face-with-hole\n // prism: exact top cap 5.0, tessellated top cap 10.0 (non-uniform z×2.5:\n // 12.5 vs 17.5). `BRepBuilderAPI_Copy` yields a shape without the stale\n // triangulation, so the result re-tessellates correctly.\n //\n // Deliberately adapter-local, not in the engine-neutral dispatcher\n // (`brep/brep-ops.ts#applyAffineBrep`): the defect is **occt-only** —\n // brepkit's GTrsf path is clean (pinned by\n // test/brep/applymatrix-similarity-routing.test.ts). Making every engine\n // pay an extra handle allocation for an occt quirk also perturbed\n // brepkit's `cut` bbox in test/brep/engine/multi-engine-op-parity.test.ts.\n //\n // Safety: the copy is adapter-owned and released here; the returned handle\n // is independent of it (the native op does not consume its input).\n const copy = k.copy(asShape(shape))\n try {\n return asHandle(k.generalTransform(copy, matrix))\n } finally {\n k.release(copy)\n }\n },\n copy: (shape) => asHandle(k.copy(asShape(shape))),\n copyShape: (shape) => asHandle(k.copy(asShape(shape))),\n composeTransform: (m1, m2) => k.composeTransform(m1, m2),\n mirror: (shape, point, normal) => asHandle(k.mirror(asShape(shape), point, normal)),\n\n // ── patterns ──\n // GOTCHA: occt-wasm native linearPattern/circularPattern return ONE compound\n // handle (their d.ts type lies). Split it into per-replica handles here.\n linearPattern: (shape, direction, spacing, count) => {\n const compound = nativeLinearPattern(asShape(shape), direction, spacing, count)\n return splitCompoundToArray(compound)\n },\n circularPattern: (shape, center, axis, angleStep, count) => {\n // Empirically validated (old adapter + engine-switch-p2 parity): the wasm\n // layer takes the angle in DEGREES here (unlike revolve's angleRad).\n const compound = (k as unknown as OcctPatternRaw).circularPattern.call(\n k, asShape(shape), center, axis, angleStep, count,\n )\n return splitCompoundToArray(compound)\n },\n gridPattern: (shape, directionX, directionY, spacingX, spacingY, countX, countY) => {\n // Composed: native linearPattern along X per column, then along Y per row,\n // fuse all replicas. Must use the CAPTURED native linearPattern (returns\n // compound) — the adapter property above now returns arrays.\n const colCompound = nativeLinearPattern(asShape(shape), directionX, spacingX, countX)\n const cols = k.getSubShapes(colCompound, 'solid')\n k.release(colCompound)\n const all: ShapeHandle[] = []\n try {\n for (const c of cols) {\n const rowCompound = nativeLinearPattern(c, directionY, spacingY, countY)\n try {\n all.push(...k.getSubShapes(rowCompound, 'solid'))\n } finally {\n k.release(rowCompound)\n }\n }\n } finally {\n for (const c of cols) k.release(c)\n }\n return asHandle(k.fuseAll(all))\n },\n\n // ── curve construction ──\n makeLineEdge: (start, end) => asHandle(k.makeLineEdge(start, end)),\n makeArcEdge: (start, mid, end) => asHandle(k.makeArcEdge(start, mid, end)),\n makeBezierEdge: (controlPoints) => asHandle(k.makeBezierEdge(controlPoints)),\n makeBSplineEdge: (poles, weights, knots, multiplicities, degree, periodic) =>\n asHandle(k.makeBSplineEdge(poles, weights, knots, multiplicities, degree, periodic ?? false)),\n makeCircleEdge: (center, normal, radius) =>\n asHandle(k.makeCircleEdge(center, normal, radius)),\n\n // ── topology construction ──\n makeWire: (edgesList) => asHandle(k.makeWire(shapes(edgesList))),\n makeFace: (wire) => asHandle(k.makeFace(asShape(wire))),\n makeCompound: (list) => asHandle(k.makeCompound(shapes(list))),\n addHolesInFace: (face, holeWires) =>\n asHandle(k.addHolesInFace(asShape(face), shapes(holeWires))),\n buildTriFace: (a, b, c) => asHandle(k.buildTriFace(a, b, c)),\n\n // ── tessellation (the only BREP→mesh exit) ──\n meshShape: (shape, options): BrepMeshResult => {\n const m: Mesh = k.meshShape(asShape(shape), options)\n return {\n positions: m.positions,\n normals: m.normals,\n indices: m.indices,\n vertexCount: m.vertexCount,\n triangleCount: m.triangleCount,\n faceGroups: m.faceGroups,\n faceCount: m.faceCount,\n }\n },\n wireframe: (shape, deflection): BrepEdgeData => {\n const e: EdgeData = k.wireframe(asShape(shape), deflection)\n return {\n points: e.points,\n edgeGroups: e.edgeGroups,\n pointCount: e.pointCount,\n edgeCount: e.edgeCount,\n }\n },\n\n // ── topology queries ──\n getSubShapes: (shape, type) => k.getSubShapes(asShape(shape), type).map(asHandle),\n subShapeHashes: (shape, type, hashUpperBound) =>\n k.subShapeHashes(asShape(shape), type, hashUpperBound),\n hashCode: (shape, upperBound) => k.hashCode(asShape(shape), upperBound),\n isSame: (a, b) => k.isSame(asShape(a), asShape(b)),\n isSolid: (shape) => k.isSolid(asShape(shape)),\n shapeType: (shape) => k.getShapeType(asShape(shape)),\n shapeOrientation: (shape) => String(k.shapeOrientation(asShape(shape))),\n edgeToFaceMap: (shape) => k.edgeToFaceMap(asShape(shape), HASH_UPPER_BOUND),\n adjacentFaces: (shape, face) =>\n k.adjacentFaces(asShape(shape), asShape(face)).map(asHandle),\n sharedEdges: (a, b) => k.sharedEdges(asShape(a), asShape(b)).map(asHandle),\n\n // ── geometry evaluation ──\n curveType: (edge) => String(k.curveType(asShape(edge))),\n curvePointAtParam: (edge, param) => v3(k.curvePointAtParam(asShape(edge), param)),\n curveTangent: (edge, param) => v3(k.curveTangent(asShape(edge), param)),\n curveParameters: (edge): BrepCurveParameters => k.curveParameters(asShape(edge)),\n curveIsClosed: (edge) => k.curveIsClosed(asShape(edge)),\n curveLength: (edge) => k.curveLength(asShape(edge)),\n surfaceType: (face) => String(k.surfaceType(asShape(face))),\n surfaceNormal: (face, u, vv) => v3(k.surfaceNormal(asShape(face), u, vv)),\n pointOnSurface: (face, u, vv) => v3(k.pointOnSurface(asShape(face), u, vv)),\n uvBounds: (face): BrepUvBounds => k.uvBounds(asShape(face)),\n surfaceCenterOfMass: (face) => v3(k.getSurfaceCenterOfMass(asShape(face))),\n getFaceCylinderData: (face) => {\n const d = k.getFaceCylinderData(asShape(face))\n return d ? { radius: d.radius } : null\n },\n getNurbsCurveData: (edge) => {\n const d = k.getNurbsCurveData(asShape(edge))\n return d\n ? {\n degree: d.degree,\n rational: d.rational,\n periodic: d.periodic,\n knots: Array.from(d.knots),\n multiplicities: Array.from(d.multiplicities),\n poles: Array.from(d.poles),\n weights: Array.from(d.weights),\n }\n : null\n },\n curveSplit: (edge, param) => {\n const parts = k.curveSplit(asShape(edge), param)\n return [asHandle(parts[0]), asHandle(parts[1])]\n },\n interpolatePoints: (points, degree) => {\n // L1 contract takes an explicit degree; occt-wasm interpolates a cubic\n // (or periodic) spline and ignores degree — honor only degree 3 and\n // reject others loudly rather than silently producing wrong geometry.\n if (degree !== 3) {\n throw new Error(`occt interpolatePoints: only degree 3 supported, got ${degree}`)\n }\n return asHandle(k.interpolatePoints(points))\n },\n\n defeature: (shape, facesList) => asHandle(k.defeature(asShape(shape), shapes(facesList), 0)),\n draft: (shape, facesList, pull, neutral, angleDeg) => {\n // Native draft is single-face + radians, and has NO neutral-plane argument\n // (occt-wasm index.d.ts:156 `draft(shape, face, angleRad, direction)`).\n // Silently dropping a caller-supplied neutral plane would draft against the\n // wrong plane, so reject loudly (same rule as `interpolatePoints` below).\n // brepkit's L1 draft does consume the neutral point (brepkitKernel.ts:669).\n if (neutral && (neutral.x !== 0 || neutral.y !== 0 || neutral.z !== 0)) {\n throw new Error(\n 'occt draft: neutral plane is not supported by the native kernel ' +\n `(got neutral=(${neutral.x},${neutral.y},${neutral.z})); only the origin neutral is representable`,\n )\n }\n // Native draft is single-face; fold N faces sequentially.\n let current = asShape(shape)\n for (const f of facesList) {\n current = k.draft(current, asShape(f), rad(angleDeg), pull)\n }\n return asHandle(current)\n },\n removeHolesFromFace: (face) => {\n // Native takes hole indices; removing ALL holes = all wires except outer.\n const wires = k.getSubShapes(asShape(face), 'wire')\n const indices = wires.map((_, i) => i).filter((i) => i > 0)\n return asHandle(k.removeHolesFromFace(asShape(face), indices))\n },\n reverseShape: (shape) => asHandle(k.reverseShape(asShape(shape))),\n projectEdges: (shape, origin, direction, xAxis, _hiddenLines, _deflection) =>\n // Native projection has no hiddenLines/deflection flags in its signature —\n // pass through the projection result; callers treat it as opaque (unknown).\n k.projectEdges(asShape(shape), origin, direction, xAxis),\n\n // ── measurement ──\n getBoundingBox: (shape, useTriangulation): BrepBoundingBox =>\n k.getBoundingBox(asShape(shape), useTriangulation ?? false),\n getVolume: (shape) => k.getVolume(asShape(shape)),\n getCenterOfMass: (shape) => v3(k.getCenterOfMass(asShape(shape))),\n getSurfaceArea: (shape) => k.getSurfaceArea(asShape(shape)),\n // getLength:唯一 edge 弧长之和(与 brepkit 适配器同口径,D5)。\n // OCC 原生 LinearProperties 默认 SkipShared=false,按**面**遍历、把每条共享边按\n // 相邻面各计一次 ⇒ 实体得到的是「Σ 面周长」而非弧长(20×10×5 盒 → 280 = 2×140)。\n // 归一化为 TopExp 去重后的边逐条求和。checkpoint/releaseSince 是 occt-wasm 为\n // 「枚举子形状句柄后批量回收」提供的 arena 机制(index.d.ts:274-279, 498-511);\n // h 在 checkpoint 之前产生,不会被回收。\n getLength: (shape) => {\n const h = asShape(shape)\n const mark = k.checkpoint()\n try {\n let total = 0\n for (const e of k.getSubShapes(h, 'edge')) total += k.getLength(e)\n return total\n } finally {\n k.releaseSince(mark)\n }\n },\n\n // ── validation & repair ──\n isValid: (shape) => k.isValid(asShape(shape)),\n unifySameDomain: (shape) => asHandle(k.unifySameDomain(asShape(shape))),\n healSolid: (shape, tolerance) => asHandle(k.healSolid(asShape(shape), tolerance)),\n fixShape: (shape) => asHandle(k.fixShape(asShape(shape))),\n fixFaceOrientations: (shape) => asHandle(k.fixFaceOrientations(asShape(shape))),\n removeDegenerateEdges: (shape, _tolerance) =>\n // Native takes no tolerance parameter (kernel-fixed tolerance).\n asHandle(k.removeDegenerateEdges(asShape(shape))),\n\n // ── IO ──\n importStep: (data) => asHandle(k.importStep(data)),\n exportStep: (shape) => k.exportStep(asShape(shape)),\n importStl: (data) => asHandle(k.importStl(data)),\n fromBREP: (data) => asHandle(k.fromBREP(data)),\n\n // ── face evolution (L1 trio only) ──\n cutWithHistory: (a, b, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.cutWithHistory(asShape(a), asShape(b), inputFaceHashes, hashUpperBound)),\n fuseWithHistory: (a, b, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.fuseWithHistory(asShape(a), asShape(b), inputFaceHashes, hashUpperBound)),\n intersectWithHistory: (a, b, inputFaceHashes, hashUpperBound) =>\n toEvolution(k.intersectWithHistory(asShape(a), asShape(b), inputFaceHashes, hashUpperBound)),\n }\n\n return primitives\n}\n\n/** The occt primitives type (BrepEngineApi implementation). */\nexport type OcctPrimitives = Awaited<ReturnType<typeof createOcctPrimitives>>\n\n// §7.8 compile-time guard: the explicit literal must satisfy the L1 contract\n// member-by-member (this now has real verification power — no `as` escape).\n/** Compile-time assertion that OcctPrimitives satisfies BrepEngineApi. */\nexport type _AssertOcctApi = AssertSatisfiesBrepEngineApi<OcctPrimitives>"]}
@@ -17,28 +17,24 @@
17
17
  * 产出精确 BREP——平面是 PLANE,圆柱面是 CYLINDRICAL_SURFACE,等。
18
18
  *
19
19
  * 2. **Mesh 重建路径**(mesh path):
20
- * 对于无 OCCT 直接对应的复杂形状(screw, text),从 THREE.js BufferGeometry
20
+ * 对于无 OCCT 直接对应的复杂形状(screw, text),从 mesh Shape
21
21
  * 提取三角网格,经 meshReconstruct.ts 的多阶段愈合管线重建为 Solid。
22
22
  * 产出仍为 BREP,但曲面由多个小三角平面近似(faceted)。在本项目里,默认brep模型不包含此类近似的到的模型。
23
23
  *
24
24
  * 坐标系:本项目 primitive 为 Z-up(经过 ROT_Y_TO_Z 旋转),
25
25
  * OCCT 默认也是 Z-up,因此直接对应,无需额外轴转换。
26
26
  */
27
- import type * as THREE from 'three';
28
27
  import type { BrepHandle } from '../brep/engine/types.js';
29
28
  import type { BrepEngineApi } from '../brep/engine/primitives.js';
30
29
  import type { PrimitiveType } from './types.js';
31
- import type { BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams } from '../mesh/types.js';
30
+ import type { BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams, Shape } from '../mesh/types.js';
32
31
  /**
33
- * Extract positions + indices from a THREE.BufferGeometry for the mesh reconstruction path.
32
+ * Extract positions + indices from a Shape for the mesh reconstruction path.
34
33
  *
35
- * Handles both indexed and non-indexed geometry.
36
- * Sequential indices are created automatically for non-indexed geometry.
37
- *
38
- * @param geo - the source THREE.BufferGeometry.
34
+ * @param shape - the source Shape.
39
35
  * @returns the extracted positions and indices arrays.
40
36
  */
41
- export declare function extractMeshData(geo: THREE.BufferGeometry): {
37
+ export declare function extractMeshData(shape: Shape): {
42
38
  positions: Float32Array;
43
39
  indices: Uint32Array;
44
40
  };
@@ -68,16 +64,16 @@ export type PrimitiveParams = BoxParams | SphereParams | CylinderParams | ConePa
68
64
  */
69
65
  export declare function primitiveToBrepSolid(kernel: BrepEngineApi, type: PrimitiveType | 'screw' | 'text', params?: PrimitiveParams | number): PrimitiveToBrepResult;
70
66
  /**
71
- * Create a CAD solid from a THREE.BufferGeometry via the mesh reconstruction path.
67
+ * Create a CAD solid from a Shape via the mesh reconstruction path.
72
68
  *
73
69
  * Suitable for complex shapes that cannot be constructed directly
74
70
  * (screw, text, SVG extrusion, etc.).
75
71
  *
76
72
  * @param kernel - the initialized OCCT kernel.
77
- * @param geo - the THREE.js BufferGeometry.
73
+ * @param shape - the mesh Shape.
78
74
  * @returns the CAD solid plus path information.
79
75
  */
80
- export declare function geometryToBrepSolid(kernel: BrepEngineApi, geo: THREE.BufferGeometry): PrimitiveToBrepResult;
76
+ export declare function geometryToBrepSolid(kernel: BrepEngineApi, shape: Shape): PrimitiveToBrepResult;
81
77
  /**
82
78
  * Export a CAD solid as a BREP-format STEP string.
83
79
  *
@@ -1 +1 @@
1
- {"version":3,"file":"brep-primitives.d.ts","sourceRoot":"","sources":["../../src/primitives/brep-primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACZ,MAAM,eAAe,CAAA;AAItB;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,GAAG;IAC1D,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,WAAW,CAAA;CACrB,CAiBA;AA6JD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,KAAK,EAAE,UAAU,CAAA;IACjB,kCAAkC;IAClC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;CACvC;AAED,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAA;AA6BlG;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,EACtC,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,GAChC,qBAAqB,CAkCvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,KAAK,CAAC,cAAc,GACxB,qBAAqB,CAIvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAAE,CAQ9C"}
1
+ {"version":3,"file":"brep-primitives.d.ts","sourceRoot":"","sources":["../../src/primitives/brep-primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACN,MAAM,eAAe,CAAA;AAItB;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG;IAC7C,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,WAAW,CAAA;CACrB,CAEA;AA6JD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,KAAK,EAAE,UAAU,CAAA;IACjB,kCAAkC;IAClC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;CACvC;AAED,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAA;AA6BlG;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,EACtC,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,GAChC,qBAAqB,CAkCvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,GACX,qBAAqB,CAIvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAAE,CAQ9C"}
@@ -17,7 +17,7 @@
17
17
  * 产出精确 BREP——平面是 PLANE,圆柱面是 CYLINDRICAL_SURFACE,等。
18
18
  *
19
19
  * 2. **Mesh 重建路径**(mesh path):
20
- * 对于无 OCCT 直接对应的复杂形状(screw, text),从 THREE.js BufferGeometry
20
+ * 对于无 OCCT 直接对应的复杂形状(screw, text),从 mesh Shape
21
21
  * 提取三角网格,经 meshReconstruct.ts 的多阶段愈合管线重建为 Solid。
22
22
  * 产出仍为 BREP,但曲面由多个小三角平面近似(faceted)。在本项目里,默认brep模型不包含此类近似的到的模型。
23
23
  *
@@ -25,33 +25,15 @@
25
25
  * OCCT 默认也是 Z-up,因此直接对应,无需额外轴转换。
26
26
  */
27
27
  import { reconstructSolidFromMesh } from '../occt-kernel/meshReconstruct.js';
28
- // ─── 辅助:从 BufferGeometry 提取网格数据 ───
28
+ // ─── 辅助:从 Shape 提取网格数据 ───
29
29
  /**
30
- * Extract positions + indices from a THREE.BufferGeometry for the mesh reconstruction path.
30
+ * Extract positions + indices from a Shape for the mesh reconstruction path.
31
31
  *
32
- * Handles both indexed and non-indexed geometry.
33
- * Sequential indices are created automatically for non-indexed geometry.
34
- *
35
- * @param geo - the source THREE.BufferGeometry.
32
+ * @param shape - the source Shape.
36
33
  * @returns the extracted positions and indices arrays.
37
34
  */
38
- export function extractMeshData(geo) {
39
- const posAttr = geo.getAttribute('position');
40
- if (!posAttr)
41
- throw new Error('Geometry has no position attribute');
42
- const positions = new Float32Array(posAttr.array);
43
- const idxAttr = geo.getIndex();
44
- let indices;
45
- if (idxAttr) {
46
- indices = new Uint32Array(idxAttr.array);
47
- }
48
- else {
49
- // Non-indexed: create sequential indices
50
- indices = new Uint32Array(posAttr.count);
51
- for (let i = 0; i < posAttr.count; i++)
52
- indices[i] = i;
53
- }
54
- return { positions, indices };
35
+ export function extractMeshData(shape) {
36
+ return { positions: new Float32Array(shape.positions), indices: new Uint32Array(shape.indices) };
55
37
  }
56
38
  // ─── 直接构造路径 ───
57
39
  /** 应用 center 偏移到 OCCT solid(如果有 center 参数)。 */
@@ -249,17 +231,17 @@ export function primitiveToBrepSolid(kernel, type, params) {
249
231
  }
250
232
  }
251
233
  /**
252
- * Create a CAD solid from a THREE.BufferGeometry via the mesh reconstruction path.
234
+ * Create a CAD solid from a Shape via the mesh reconstruction path.
253
235
  *
254
236
  * Suitable for complex shapes that cannot be constructed directly
255
237
  * (screw, text, SVG extrusion, etc.).
256
238
  *
257
239
  * @param kernel - the initialized OCCT kernel.
258
- * @param geo - the THREE.js BufferGeometry.
240
+ * @param shape - the mesh Shape.
259
241
  * @returns the CAD solid plus path information.
260
242
  */
261
- export function geometryToBrepSolid(kernel, geo) {
262
- const { positions, indices } = extractMeshData(geo);
243
+ export function geometryToBrepSolid(kernel, shape) {
244
+ const { positions, indices } = extractMeshData(shape);
263
245
  const solid = reconstructSolidFromMesh(kernel, positions, indices);
264
246
  return { solid, path: 'mesh', type: 'screw' };
265
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"brep-primitives.js","sourceRoot":"","sources":["../../src/primitives/brep-primitives.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Primitive → CAD 实体转换。\n *\n * @platform occt — 本文件 import occt-kernel(meshReconstruct):primitive 直接\n * 构造路径绑定 occt 构造函数(makeBox/makeSphere/...),平台原生面调用;\n * 守卫 R1 豁免、R2 无 defineOp 不适用。\n *\n * 将本项目的各种 primitive(cube, sphere, cylinder, cone, wedge, screw)\n * 转换为 OCCT CAD 实体(Solid),并支持导出为 BREP 格式的 STEP 文件。\n *\n * 两条路径:\n *\n * 1. **直接构造路径**(primitive path):\n * 对于有 OCCT 直接对应的基本体(cube, sphere, cylinder, cone, wedge),\n * 直接调用 OCCT 构造函数(makeBox, makeSphere, makeCylinder, makeCone)\n * 或用 extrude 从 2D 轮廓构造(wedge)。\n * 产出精确 BREP——平面是 PLANE,圆柱面是 CYLINDRICAL_SURFACE,等。\n *\n * 2. **Mesh 重建路径**(mesh path):\n * 对于无 OCCT 直接对应的复杂形状(screw, text),从 THREE.js BufferGeometry\n * 提取三角网格,经 meshReconstruct.ts 的多阶段愈合管线重建为 Solid。\n * 产出仍为 BREP,但曲面由多个小三角平面近似(faceted)。在本项目里,默认brep模型不包含此类近似的到的模型。\n *\n * 坐标系:本项目 primitive 为 Z-up(经过 ROT_Y_TO_Z 旋转),\n * OCCT 默认也是 Z-up,因此直接对应,无需额外轴转换。\n */\n\nimport type * as THREE from 'three'\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport type { PrimitiveType } from './types'\nimport { reconstructSolidFromMesh } from '../occt-kernel/meshReconstruct'\nimport type {\n BoxParams,\n SphereParams,\n CylinderParams,\n ConeParams,\n WedgeParams,\n} from '../mesh/types'\n\n// ─── 辅助:从 BufferGeometry 提取网格数据 ───\n\n/**\n * Extract positions + indices from a THREE.BufferGeometry for the mesh reconstruction path.\n *\n * Handles both indexed and non-indexed geometry.\n * Sequential indices are created automatically for non-indexed geometry.\n *\n * @param geo - the source THREE.BufferGeometry.\n * @returns the extracted positions and indices arrays.\n */\nexport function extractMeshData(geo: THREE.BufferGeometry): {\n positions: Float32Array\n indices: Uint32Array\n} {\n const posAttr = geo.getAttribute('position') as THREE.BufferAttribute\n if (!posAttr) throw new Error('Geometry has no position attribute')\n\n const positions = new Float32Array(posAttr.array)\n\n const idxAttr = geo.getIndex()\n let indices: Uint32Array\n if (idxAttr) {\n indices = new Uint32Array(idxAttr.array)\n } else {\n // Non-indexed: create sequential indices\n indices = new Uint32Array(posAttr.count)\n for (let i = 0; i < posAttr.count; i++) indices[i] = i\n }\n\n return { positions, indices }\n}\n\n// ─── 直接构造路径 ───\n\n/** 应用 center 偏移到 OCCT solid(如果有 center 参数)。 */\nfunction applyCenter(kernel: BrepEngineApi, solid: BrepHandle, center?: [number, number, number]): BrepHandle {\n if (!center) return solid\n const translated = kernel.translate(solid, center[0], center[1], center[2])\n kernel.release(solid)\n return translated\n}\n\n/**\n * 用 OCCT 直接构造一个长方体 Solid(原 brepjs `box(width, depth, height,\n * {at?, centered?})` 契约,§4.1 A 决策;与 mesh 路径逐点对齐)。\n *\n * 几何语义与旧 `primitiveFns.box` 完全一致:\n * 默认 min 角点在原点;`centered:true`(无 at 时)居中到原点;`at` 为中心\n * 语义且优先于 `centered`。\n */\nfunction cubeToCadSolid(kernel: BrepEngineApi, params: BoxParams): BrepHandle {\n const w = params.width\n const d = params.depth\n const h = params.height\n // 原 brepjs box: center = at ?? (centered ? [0,0,0] : undefined);未给 center →\n // 构造角点实体不平移(这里统一中心构造 + 平移量,等价)。\n const center = params.at !== undefined\n ? params.at\n : params.centered\n ? ([0, 0, 0] as [number, number, number])\n : ([w / 2, d / 2, h / 2] as [number, number, number])\n const solid = kernel.makeBoxFromCorners(\n { x: -w / 2, y: -d / 2, z: -h / 2 },\n { x: w / 2, y: d / 2, z: h / 2 },\n )\n return applyCenter(kernel, solid, center)\n}\n\n/**\n * 用 OCCT 直接构造一个球体 Solid。\n *\n * 接收完整 SphereParams:radius 是球体半径,segments 不影响 BREP(仅影响 mesh 离散化)。\n */\nfunction sphereToCadSolid(kernel: BrepEngineApi, params: SphereParams): BrepHandle {\n const solid = kernel.makeSphere(params.radius)\n return applyCenter(kernel, solid, params.center)\n}\n\n/**\n * 用 OCCT 直接构造一个圆柱体 Solid(原 brepjs `cylinder(radius, height, {\n * at, centered })` 契约,§4.3 A 决策;与 mesh 路径逐点对齐)。\n *\n * 锚点同旧 `primitiveFns.cylinder`:`at` 是底面轴心(BASE)语义(默认\n * [0,0,0]),OCCT makeCylinder 原生从 z=0 沿 +Z 建高 → 无需重居中;`centered:true`\n * 指底面沿轴下移 −h/2(无 at 时居中到原点;与 `at` 同给时以 `at` 为中心)。\n */\nfunction cylinderToCadSolid(kernel: BrepEngineApi, params: CylinderParams): BrepHandle {\n const solid = kernel.makeCylinder(params.radius, params.height)\n const baseX = params.at?.[0] ?? 0\n const baseY = params.at?.[1] ?? 0\n const baseZ = (params.at?.[2] ?? 0) - (params.centered === true ? params.height / 2 : 0)\n if (baseX !== 0 || baseY !== 0 || baseZ !== 0) {\n const translated = kernel.translate(solid, baseX, baseY, baseZ)\n kernel.release(solid)\n return translated\n }\n return solid\n}\n\n/**\n * 用 OCCT 直接构造一个圆锥体 Solid(原 brepjs `cone(bottomRadius, topRadius,\n * height, { at, centered })` 契约,§4.1 P 决策;与 mesh 路径逐点对齐)。\n *\n * 锚点同旧 `primitiveFns.cone`:`at` 是底面轴心(BASE)语义(默认\n * [0,0,0]),OCCT makeCone 原生从 z=0 沿 +Z 建高 → 无需重居中;`centered:true`\n * 指底面沿轴下移 −h/2(无 at 时居中到原点;与 `at` 同给时以 `at` 为中心)。\n */\nfunction coneToCadSolid(kernel: BrepEngineApi, params: ConeParams): BrepHandle {\n const solid = kernel.makeCone(params.radiusBottom, params.radiusTop, params.height)\n const baseX = params.at?.[0] ?? 0\n const baseY = params.at?.[1] ?? 0\n const baseZ = (params.at?.[2] ?? 0) - (params.centered === true ? params.height / 2 : 0)\n if (baseX !== 0 || baseY !== 0 || baseZ !== 0) {\n const translated = kernel.translate(solid, baseX, baseY, baseZ)\n kernel.release(solid)\n return translated\n }\n return solid\n}\n\n/**\n * 用 OCCT 从 2D 梯形轮廓拉伸构造楔形体 Solid。\n *\n * 支持全参数(width/height/angle/length),向后兼容旧式 { size: number }。\n *\n * 参数(来自 WedgePanel.buildWedgeGeometry):\n * - 底边宽度 width(沿 Y)\n * - 高度 height(沿 Z)\n * - 底边与斜边的夹角 angleDeg\n * - 拉伸总长 length(沿 X,从 -length/2 到 +length/2)\n *\n * 构造步骤:\n * 1. 在 YZ 平面创建梯形 wire(4 个顶点,4 条边)\n * 2. 从 wire 创建 planar face\n * 3. 沿 X 轴拉伸\n * 4. 平移使 X 方向居中\n */\nfunction wedgeToCadSolid(kernel: BrepEngineApi, params: WedgeParams): BrepHandle {\n const width = params.width // 底边长度(沿 Y)\n const height = params.height // 梯形高(沿 Z)\n const angleDeg = params.angle // 底边与斜边的夹角\n const length = params.length // 拉伸总长(沿 X)\n const angleRad = (angleDeg * Math.PI) / 180\n const halfExtrude = length / 2\n const hw = width / 2\n\n // 上边半宽 = 底边半宽 - 高 / tan(角度)\n const halfTopWidth = Math.max(0, hw - height / Math.tan(angleRad))\n\n // 在 YZ 平面创建梯形 wire(X=0)。顶边塌缩(halfTopWidth≈0,斜坡已在宽度内到顶)\n // 时退化为三角棱柱——不能再保留零长顶边(两个重合顶点会让 OCCT makeLineEdge\n // 报 CONSTRUCTION_FAILED,即 P23 实测的 wedge 退化参数失败)。\n const edges: BrepHandle[] = []\n if (halfTopWidth > 1e-12) {\n // 梯形:底边 (±hw,0) + 上边 (±halfTopWidth,height)\n edges.push(\n kernel.makeLineEdge({ x: 0, y: -hw, z: 0 }, { x: 0, y: hw, z: 0 }),\n kernel.makeLineEdge({ x: 0, y: hw, z: 0 }, { x: 0, y: halfTopWidth, z: height }),\n kernel.makeLineEdge({ x: 0, y: halfTopWidth, z: height }, { x: 0, y: -halfTopWidth, z: height }),\n kernel.makeLineEdge({ x: 0, y: -halfTopWidth, z: height }, { x: 0, y: -hw, z: 0 }),\n )\n } else {\n // 三角棱柱:(−hw,0) → (hw,0) → (0,height)\n edges.push(\n kernel.makeLineEdge({ x: 0, y: -hw, z: 0 }, { x: 0, y: hw, z: 0 }),\n kernel.makeLineEdge({ x: 0, y: hw, z: 0 }, { x: 0, y: 0, z: height }),\n kernel.makeLineEdge({ x: 0, y: 0, z: height }, { x: 0, y: -hw, z: 0 }),\n )\n }\n\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n const extruded = kernel.extrude(face, 2 * halfExtrude, 0, 0)\n // 平移使 X 方向居中\n const centered = kernel.translate(extruded, -halfExtrude, 0, 0)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n kernel.release(extruded)\n\n return applyCenter(kernel, centered, params.center)\n}\n\n// ─── 统一入口 ───\n\n/**\n * Conversion result: the CAD solid handle and the construction path used.\n */\nexport interface PrimitiveToBrepResult {\n /** CAD solid handle (the caller is responsible for releasing it). */\n solid: BrepHandle\n /** The construction path used. */\n path: 'primitive' | 'mesh'\n /** The primitive type. */\n type: PrimitiveType | 'screw' | 'text'\n}\n\n/** Union type of the primitive parameter objects. */\nexport type PrimitiveParams = BoxParams | SphereParams | CylinderParams | ConeParams | WedgeParams\n\n/**\n * 将旧的 size 数字转换为对应类型的完整 params(向后兼容)。\n *\n * - cube: { size: size }\n * - wedge: { width: size, height: size/2, angle: 60, length: 50 }\n * - sphere: { radius: size / 2 }\n * - cylinder: { radius: size / 2, height: size }\n * - cone: { radiusBottom: size / 2, radiusTop: 0, height: size }\n */\nfunction sizeToParams(type: PrimitiveType | 'screw' | 'text', size: number): PrimitiveParams {\n switch (type) {\n case 'cube':\n case 'box':\n return { width: size, depth: size, height: size }\n case 'sphere':\n return { radius: size / 2 }\n case 'cylinder':\n return { radius: size / 2, height: size }\n case 'cone':\n return { radiusBottom: size / 2, radiusTop: 0, height: size }\n case 'wedge':\n return { width: size, height: size / 2, angle: 60, length: 50 }\n default:\n throw new Error(`sizeToParams does not support primitive type \"${type}\" (use geometry data)`)\n }\n}\n\n/**\n * Convert a project primitive to an OCCT CAD solid.\n *\n * - cube, sphere, cylinder, cone, wedge: constructed directly with OCCT (exact BREP)\n * - screw, text: use the mesh reconstruction path (faceted BREP)\n *\n * @param kernel - the initialized OCCT kernel.\n * @param type - the primitive type.\n * @param params - a full parameter object (BoxParams etc.), or a size number (backwards-compatible, default 20mm).\n * @returns the CAD solid plus path information.\n */\nexport function primitiveToBrepSolid(\n kernel: BrepEngineApi,\n type: PrimitiveType | 'screw' | 'text',\n params?: PrimitiveParams | number,\n): PrimitiveToBrepResult {\n const fullParams = typeof params === 'number' || params === undefined\n ? sizeToParams(type, params ?? 20)\n : params\n\n switch (type) {\n case 'cube':\n case 'box':\n return { solid: cubeToCadSolid(kernel, fullParams as BoxParams), path: 'primitive', type }\n\n case 'sphere':\n return { solid: sphereToCadSolid(kernel, fullParams as SphereParams), path: 'primitive', type }\n\n case 'cylinder':\n return { solid: cylinderToCadSolid(kernel, fullParams as CylinderParams), path: 'primitive', type }\n\n case 'cone':\n return { solid: coneToCadSolid(kernel, fullParams as ConeParams), path: 'primitive', type }\n\n case 'wedge':\n return { solid: wedgeToCadSolid(kernel, fullParams as WedgeParams), path: 'primitive', type }\n\n case 'screw':\n case 'text': {\n // Mesh 重建路径:从 THREE.js 几何体提取网格数据\n // 对于 screw/text,调用方应使用 geometryToBrepSolid\n throw new Error(\n `${type} requires geometry data — use geometryToBrepSolid() instead`,\n )\n }\n\n default:\n throw new Error(`Unsupported primitive type: ${type}`)\n }\n}\n\n/**\n * Create a CAD solid from a THREE.BufferGeometry via the mesh reconstruction path.\n *\n * Suitable for complex shapes that cannot be constructed directly\n * (screw, text, SVG extrusion, etc.).\n *\n * @param kernel - the initialized OCCT kernel.\n * @param geo - the THREE.js BufferGeometry.\n * @returns the CAD solid plus path information.\n */\nexport function geometryToBrepSolid(\n kernel: BrepEngineApi,\n geo: THREE.BufferGeometry,\n): PrimitiveToBrepResult {\n const { positions, indices } = extractMeshData(geo)\n const solid = reconstructSolidFromMesh(kernel, positions, indices)\n return { solid, path: 'mesh', type: 'screw' }\n}\n\n/**\n * Export a CAD solid as a BREP-format STEP string.\n *\n * OCCT's exportStep produces a standard ISO-10303-21 STEP file using\n * ADVANCED_FACE with exact surfaces (PLANE, CYLINDRICAL_SURFACE, etc.)\n * rather than a faceted representation (POLYGONAL_FACE).\n *\n * @param kernel - the initialized OCCT kernel.\n * @param solid - the CAD solid handle.\n * @returns the STEP file content as a string.\n */\nexport function brepSolidToStep(kernel: BrepEngineApi, solid: BrepHandle): string {\n return kernel.exportStep(solid)\n}\n\n/**\n * Convenience method: convert a primitive directly to a STEP string.\n *\n * Internally calls primitiveToBrepSolid + brepSolidToStep and manages the\n * handle lifecycle automatically.\n *\n * @param kernel - the initialized OCCT kernel.\n * @param type - the primitive type.\n * @param params - a full parameter object, or a size number (backwards-compatible, default 20mm).\n * @returns the STEP file content string plus the path used.\n */\nexport function primitiveToBrepStep(\n kernel: BrepEngineApi,\n type: PrimitiveType,\n params?: PrimitiveParams | number,\n): { step: string; path: 'primitive' | 'mesh' } {\n const result = primitiveToBrepSolid(kernel, type, params)\n try {\n const step = brepSolidToStep(kernel, result.solid)\n return { step, path: result.path }\n } finally {\n kernel.release(result.solid)\n }\n}\n"]}
1
+ {"version":3,"file":"brep-primitives.js","sourceRoot":"","sources":["../../src/primitives/brep-primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAUzE,4BAA4B;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAI1C,OAAO,EAAE,SAAS,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;AAClG,CAAC;AAED,iBAAiB;AAEjB,+CAA+C;AAC/C,SAAS,WAAW,CAAC,MAAqB,EAAE,KAAiB,EAAE,MAAiC;IAC9F,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrB,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,MAAqB,EAAE,MAAiB;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;IACtB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;IACtB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IACvB,4EAA4E;IAC5E,gCAAgC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS;QACpC,CAAC,CAAC,MAAM,CAAC,EAAE;QACX,CAAC,CAAC,MAAM,CAAC,QAAQ;YACf,CAAC,CAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAA8B;YACzC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAA8B,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CACrC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EACnC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CACjC,CAAA;IACD,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,MAAqB,EAAE,MAAoB;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9C,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,MAAqB,EAAE,MAAsB;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC/D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrB,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,MAAqB,EAAE,MAAkB;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACnF,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC/D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrB,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,eAAe,CAAC,MAAqB,EAAE,MAAmB;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA,CAAoB,YAAY;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA,CAAkB,WAAW;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAA,CAAiB,WAAW;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA,CAAkB,YAAY;IAC1D,MAAM,QAAQ,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;IAC3C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAAA;IAEpB,4BAA4B;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAElE,uDAAuD;IACvD,iDAAiD;IACjD,iDAAiD;IACjD,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QACzB,4CAA4C;QAC5C,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAClE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAChF,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAChG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CACnF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAClE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EACrE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CACvE,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5D,aAAa;IACb,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE/D,SAAS;IACT,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAExB,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;AACrD,CAAC;AAmBD;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,IAAsC,EAAE,IAAY;IACxE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACnD,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,CAAA;QAC7B,KAAK,UAAU;YACb,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QAC3C,KAAK,MAAM;YACT,OAAO,EAAE,YAAY,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QAC/D,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACjE;YACE,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,uBAAuB,CAAC,CAAA;IACjG,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,IAAsC,EACtC,MAAiC;IAEjC,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS;QACnE,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;QAClC,CAAC,CAAC,MAAM,CAAA;IAEV,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,UAAuB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAE5F,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAA0B,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAEjG,KAAK,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,UAA4B,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAErG,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,UAAwB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAE7F,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,UAAyB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAE/F,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,iCAAiC;YACjC,2CAA2C;YAC3C,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,6DAA6D,CACrE,CAAA;QACH,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,KAAY;IAEZ,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAClE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC/C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqB,EAAE,KAAiB;IACtE,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,IAAmB,EACnB,MAAiC;IAEjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACzD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAClD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IACpC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC","sourcesContent":["/**\n * Primitive → CAD 实体转换。\n *\n * @platform occt — 本文件 import occt-kernel(meshReconstruct):primitive 直接\n * 构造路径绑定 occt 构造函数(makeBox/makeSphere/...),平台原生面调用;\n * 守卫 R1 豁免、R2 无 defineOp 不适用。\n *\n * 将本项目的各种 primitive(cube, sphere, cylinder, cone, wedge, screw)\n * 转换为 OCCT CAD 实体(Solid),并支持导出为 BREP 格式的 STEP 文件。\n *\n * 两条路径:\n *\n * 1. **直接构造路径**(primitive path):\n * 对于有 OCCT 直接对应的基本体(cube, sphere, cylinder, cone, wedge),\n * 直接调用 OCCT 构造函数(makeBox, makeSphere, makeCylinder, makeCone)\n * 或用 extrude 从 2D 轮廓构造(wedge)。\n * 产出精确 BREP——平面是 PLANE,圆柱面是 CYLINDRICAL_SURFACE,等。\n *\n * 2. **Mesh 重建路径**(mesh path):\n * 对于无 OCCT 直接对应的复杂形状(screw, text),从 mesh Shape\n * 提取三角网格,经 meshReconstruct.ts 的多阶段愈合管线重建为 Solid。\n * 产出仍为 BREP,但曲面由多个小三角平面近似(faceted)。在本项目里,默认brep模型不包含此类近似的到的模型。\n *\n * 坐标系:本项目 primitive 为 Z-up(经过 ROT_Y_TO_Z 旋转),\n * OCCT 默认也是 Z-up,因此直接对应,无需额外轴转换。\n */\n\n\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport type { PrimitiveType } from './types'\nimport { reconstructSolidFromMesh } from '../occt-kernel/meshReconstruct'\nimport type {\n BoxParams,\n SphereParams,\n CylinderParams,\n ConeParams,\n WedgeParams,\n Shape,\n} from '../mesh/types'\n\n// ─── 辅助:从 Shape 提取网格数据 ───\n\n/**\n * Extract positions + indices from a Shape for the mesh reconstruction path.\n *\n * @param shape - the source Shape.\n * @returns the extracted positions and indices arrays.\n */\nexport function extractMeshData(shape: Shape): {\n positions: Float32Array\n indices: Uint32Array\n} {\n return { positions: new Float32Array(shape.positions), indices: new Uint32Array(shape.indices) }\n}\n\n// ─── 直接构造路径 ───\n\n/** 应用 center 偏移到 OCCT solid(如果有 center 参数)。 */\nfunction applyCenter(kernel: BrepEngineApi, solid: BrepHandle, center?: [number, number, number]): BrepHandle {\n if (!center) return solid\n const translated = kernel.translate(solid, center[0], center[1], center[2])\n kernel.release(solid)\n return translated\n}\n\n/**\n * 用 OCCT 直接构造一个长方体 Solid(原 brepjs `box(width, depth, height,\n * {at?, centered?})` 契约,§4.1 A 决策;与 mesh 路径逐点对齐)。\n *\n * 几何语义与旧 `primitiveFns.box` 完全一致:\n * 默认 min 角点在原点;`centered:true`(无 at 时)居中到原点;`at` 为中心\n * 语义且优先于 `centered`。\n */\nfunction cubeToCadSolid(kernel: BrepEngineApi, params: BoxParams): BrepHandle {\n const w = params.width\n const d = params.depth\n const h = params.height\n // 原 brepjs box: center = at ?? (centered ? [0,0,0] : undefined);未给 center →\n // 构造角点实体不平移(这里统一中心构造 + 平移量,等价)。\n const center = params.at !== undefined\n ? params.at\n : params.centered\n ? ([0, 0, 0] as [number, number, number])\n : ([w / 2, d / 2, h / 2] as [number, number, number])\n const solid = kernel.makeBoxFromCorners(\n { x: -w / 2, y: -d / 2, z: -h / 2 },\n { x: w / 2, y: d / 2, z: h / 2 },\n )\n return applyCenter(kernel, solid, center)\n}\n\n/**\n * 用 OCCT 直接构造一个球体 Solid。\n *\n * 接收完整 SphereParams:radius 是球体半径,segments 不影响 BREP(仅影响 mesh 离散化)。\n */\nfunction sphereToCadSolid(kernel: BrepEngineApi, params: SphereParams): BrepHandle {\n const solid = kernel.makeSphere(params.radius)\n return applyCenter(kernel, solid, params.center)\n}\n\n/**\n * 用 OCCT 直接构造一个圆柱体 Solid(原 brepjs `cylinder(radius, height, {\n * at, centered })` 契约,§4.3 A 决策;与 mesh 路径逐点对齐)。\n *\n * 锚点同旧 `primitiveFns.cylinder`:`at` 是底面轴心(BASE)语义(默认\n * [0,0,0]),OCCT makeCylinder 原生从 z=0 沿 +Z 建高 → 无需重居中;`centered:true`\n * 指底面沿轴下移 −h/2(无 at 时居中到原点;与 `at` 同给时以 `at` 为中心)。\n */\nfunction cylinderToCadSolid(kernel: BrepEngineApi, params: CylinderParams): BrepHandle {\n const solid = kernel.makeCylinder(params.radius, params.height)\n const baseX = params.at?.[0] ?? 0\n const baseY = params.at?.[1] ?? 0\n const baseZ = (params.at?.[2] ?? 0) - (params.centered === true ? params.height / 2 : 0)\n if (baseX !== 0 || baseY !== 0 || baseZ !== 0) {\n const translated = kernel.translate(solid, baseX, baseY, baseZ)\n kernel.release(solid)\n return translated\n }\n return solid\n}\n\n/**\n * 用 OCCT 直接构造一个圆锥体 Solid(原 brepjs `cone(bottomRadius, topRadius,\n * height, { at, centered })` 契约,§4.1 P 决策;与 mesh 路径逐点对齐)。\n *\n * 锚点同旧 `primitiveFns.cone`:`at` 是底面轴心(BASE)语义(默认\n * [0,0,0]),OCCT makeCone 原生从 z=0 沿 +Z 建高 → 无需重居中;`centered:true`\n * 指底面沿轴下移 −h/2(无 at 时居中到原点;与 `at` 同给时以 `at` 为中心)。\n */\nfunction coneToCadSolid(kernel: BrepEngineApi, params: ConeParams): BrepHandle {\n const solid = kernel.makeCone(params.radiusBottom, params.radiusTop, params.height)\n const baseX = params.at?.[0] ?? 0\n const baseY = params.at?.[1] ?? 0\n const baseZ = (params.at?.[2] ?? 0) - (params.centered === true ? params.height / 2 : 0)\n if (baseX !== 0 || baseY !== 0 || baseZ !== 0) {\n const translated = kernel.translate(solid, baseX, baseY, baseZ)\n kernel.release(solid)\n return translated\n }\n return solid\n}\n\n/**\n * 用 OCCT 从 2D 梯形轮廓拉伸构造楔形体 Solid。\n *\n * 支持全参数(width/height/angle/length),向后兼容旧式 { size: number }。\n *\n * 参数(来自 WedgePanel.buildWedgeGeometry):\n * - 底边宽度 width(沿 Y)\n * - 高度 height(沿 Z)\n * - 底边与斜边的夹角 angleDeg\n * - 拉伸总长 length(沿 X,从 -length/2 到 +length/2)\n *\n * 构造步骤:\n * 1. 在 YZ 平面创建梯形 wire(4 个顶点,4 条边)\n * 2. 从 wire 创建 planar face\n * 3. 沿 X 轴拉伸\n * 4. 平移使 X 方向居中\n */\nfunction wedgeToCadSolid(kernel: BrepEngineApi, params: WedgeParams): BrepHandle {\n const width = params.width // 底边长度(沿 Y)\n const height = params.height // 梯形高(沿 Z)\n const angleDeg = params.angle // 底边与斜边的夹角\n const length = params.length // 拉伸总长(沿 X)\n const angleRad = (angleDeg * Math.PI) / 180\n const halfExtrude = length / 2\n const hw = width / 2\n\n // 上边半宽 = 底边半宽 - 高 / tan(角度)\n const halfTopWidth = Math.max(0, hw - height / Math.tan(angleRad))\n\n // 在 YZ 平面创建梯形 wire(X=0)。顶边塌缩(halfTopWidth≈0,斜坡已在宽度内到顶)\n // 时退化为三角棱柱——不能再保留零长顶边(两个重合顶点会让 OCCT makeLineEdge\n // 报 CONSTRUCTION_FAILED,即 P23 实测的 wedge 退化参数失败)。\n const edges: BrepHandle[] = []\n if (halfTopWidth > 1e-12) {\n // 梯形:底边 (±hw,0) + 上边 (±halfTopWidth,height)\n edges.push(\n kernel.makeLineEdge({ x: 0, y: -hw, z: 0 }, { x: 0, y: hw, z: 0 }),\n kernel.makeLineEdge({ x: 0, y: hw, z: 0 }, { x: 0, y: halfTopWidth, z: height }),\n kernel.makeLineEdge({ x: 0, y: halfTopWidth, z: height }, { x: 0, y: -halfTopWidth, z: height }),\n kernel.makeLineEdge({ x: 0, y: -halfTopWidth, z: height }, { x: 0, y: -hw, z: 0 }),\n )\n } else {\n // 三角棱柱:(−hw,0) → (hw,0) → (0,height)\n edges.push(\n kernel.makeLineEdge({ x: 0, y: -hw, z: 0 }, { x: 0, y: hw, z: 0 }),\n kernel.makeLineEdge({ x: 0, y: hw, z: 0 }, { x: 0, y: 0, z: height }),\n kernel.makeLineEdge({ x: 0, y: 0, z: height }, { x: 0, y: -hw, z: 0 }),\n )\n }\n\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n const extruded = kernel.extrude(face, 2 * halfExtrude, 0, 0)\n // 平移使 X 方向居中\n const centered = kernel.translate(extruded, -halfExtrude, 0, 0)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n kernel.release(extruded)\n\n return applyCenter(kernel, centered, params.center)\n}\n\n// ─── 统一入口 ───\n\n/**\n * Conversion result: the CAD solid handle and the construction path used.\n */\nexport interface PrimitiveToBrepResult {\n /** CAD solid handle (the caller is responsible for releasing it). */\n solid: BrepHandle\n /** The construction path used. */\n path: 'primitive' | 'mesh'\n /** The primitive type. */\n type: PrimitiveType | 'screw' | 'text'\n}\n\n/** Union type of the primitive parameter objects. */\nexport type PrimitiveParams = BoxParams | SphereParams | CylinderParams | ConeParams | WedgeParams\n\n/**\n * 将旧的 size 数字转换为对应类型的完整 params(向后兼容)。\n *\n * - cube: { size: size }\n * - wedge: { width: size, height: size/2, angle: 60, length: 50 }\n * - sphere: { radius: size / 2 }\n * - cylinder: { radius: size / 2, height: size }\n * - cone: { radiusBottom: size / 2, radiusTop: 0, height: size }\n */\nfunction sizeToParams(type: PrimitiveType | 'screw' | 'text', size: number): PrimitiveParams {\n switch (type) {\n case 'cube':\n case 'box':\n return { width: size, depth: size, height: size }\n case 'sphere':\n return { radius: size / 2 }\n case 'cylinder':\n return { radius: size / 2, height: size }\n case 'cone':\n return { radiusBottom: size / 2, radiusTop: 0, height: size }\n case 'wedge':\n return { width: size, height: size / 2, angle: 60, length: 50 }\n default:\n throw new Error(`sizeToParams does not support primitive type \"${type}\" (use geometry data)`)\n }\n}\n\n/**\n * Convert a project primitive to an OCCT CAD solid.\n *\n * - cube, sphere, cylinder, cone, wedge: constructed directly with OCCT (exact BREP)\n * - screw, text: use the mesh reconstruction path (faceted BREP)\n *\n * @param kernel - the initialized OCCT kernel.\n * @param type - the primitive type.\n * @param params - a full parameter object (BoxParams etc.), or a size number (backwards-compatible, default 20mm).\n * @returns the CAD solid plus path information.\n */\nexport function primitiveToBrepSolid(\n kernel: BrepEngineApi,\n type: PrimitiveType | 'screw' | 'text',\n params?: PrimitiveParams | number,\n): PrimitiveToBrepResult {\n const fullParams = typeof params === 'number' || params === undefined\n ? sizeToParams(type, params ?? 20)\n : params\n\n switch (type) {\n case 'cube':\n case 'box':\n return { solid: cubeToCadSolid(kernel, fullParams as BoxParams), path: 'primitive', type }\n\n case 'sphere':\n return { solid: sphereToCadSolid(kernel, fullParams as SphereParams), path: 'primitive', type }\n\n case 'cylinder':\n return { solid: cylinderToCadSolid(kernel, fullParams as CylinderParams), path: 'primitive', type }\n\n case 'cone':\n return { solid: coneToCadSolid(kernel, fullParams as ConeParams), path: 'primitive', type }\n\n case 'wedge':\n return { solid: wedgeToCadSolid(kernel, fullParams as WedgeParams), path: 'primitive', type }\n\n case 'screw':\n case 'text': {\n // Mesh 重建路径:从 THREE.js 几何体提取网格数据\n // 对于 screw/text,调用方应使用 geometryToBrepSolid\n throw new Error(\n `${type} requires geometry data — use geometryToBrepSolid() instead`,\n )\n }\n\n default:\n throw new Error(`Unsupported primitive type: ${type}`)\n }\n}\n\n/**\n * Create a CAD solid from a Shape via the mesh reconstruction path.\n *\n * Suitable for complex shapes that cannot be constructed directly\n * (screw, text, SVG extrusion, etc.).\n *\n * @param kernel - the initialized OCCT kernel.\n * @param shape - the mesh Shape.\n * @returns the CAD solid plus path information.\n */\nexport function geometryToBrepSolid(\n kernel: BrepEngineApi,\n shape: Shape,\n): PrimitiveToBrepResult {\n const { positions, indices } = extractMeshData(shape)\n const solid = reconstructSolidFromMesh(kernel, positions, indices)\n return { solid, path: 'mesh', type: 'screw' }\n}\n\n/**\n * Export a CAD solid as a BREP-format STEP string.\n *\n * OCCT's exportStep produces a standard ISO-10303-21 STEP file using\n * ADVANCED_FACE with exact surfaces (PLANE, CYLINDRICAL_SURFACE, etc.)\n * rather than a faceted representation (POLYGONAL_FACE).\n *\n * @param kernel - the initialized OCCT kernel.\n * @param solid - the CAD solid handle.\n * @returns the STEP file content as a string.\n */\nexport function brepSolidToStep(kernel: BrepEngineApi, solid: BrepHandle): string {\n return kernel.exportStep(solid)\n}\n\n/**\n * Convenience method: convert a primitive directly to a STEP string.\n *\n * Internally calls primitiveToBrepSolid + brepSolidToStep and manages the\n * handle lifecycle automatically.\n *\n * @param kernel - the initialized OCCT kernel.\n * @param type - the primitive type.\n * @param params - a full parameter object, or a size number (backwards-compatible, default 20mm).\n * @returns the STEP file content string plus the path used.\n */\nexport function primitiveToBrepStep(\n kernel: BrepEngineApi,\n type: PrimitiveType,\n params?: PrimitiveParams | number,\n): { step: string; path: 'primitive' | 'mesh' } {\n const result = primitiveToBrepSolid(kernel, type, params)\n try {\n const step = brepSolidToStep(kernel, result.solid)\n return { step, path: result.path }\n } finally {\n kernel.release(result.solid)\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * primitives — mesh geometry primitives, screw generators, and BREP bridges.
3
+ *
4
+ * Public API surface aggregated for umbrella `export *` consumption.
5
+ * Internal-only symbols (GeneratorType, AnyPrimitiveType, PRIMITIVE_COLORS,
6
+ * PrimitiveGeometryData, PrimitiveRecord, DEFAULT_SEGMENTS) are NOT re-exported.
7
+ */
8
+ export { mergeBufferGeometries, makePrimitiveGeo, DEFAULT_SIZE, applyPrimitiveOffset } from './mesh-primitives.js';
9
+ export { makeScrew } from './screw/screw.js';
10
+ export { getScrewSpec, getScrewSpecs, threadToPitchMm, SCREW_HEAD_DIMS } from './screw/screw-db.js';
11
+ export type { ScrewParams, ScrewSpec, ScrewSystem } from './screw/screw-db.js';
12
+ export { parseSvgNaturalSize } from './parse-svg-size.js';
13
+ export { extractMeshData, primitiveToBrepSolid, geometryToBrepSolid, brepSolidToStep, primitiveToBrepStep, } from './brep-primitives.js';
14
+ export type { PrimitiveToBrepResult, PrimitiveParams } from './brep-primitives.js';
15
+ export { loadSystemCjkFont, containsCjk, isCjkChar } from './text/cjk-font.js';
16
+ export type { CjkFontResult } from './text/cjk-font.js';
17
+ export type { PrimitiveType, PrimitiveParamsRecord, PrimitiveArgsRecord, PrimitiveMeta, } from './types.js';
18
+ export { nextPrimitiveColor } from './types.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAG/G,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAChG,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGtD,OAAO,EACL,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAC1D,eAAe,EAAE,mBAAmB,GACrC,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAG/E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3E,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAIpD,YAAY,EACV,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,aAAa,GACzE,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * primitives — mesh geometry primitives, screw generators, and BREP bridges.
3
+ *
4
+ * Public API surface aggregated for umbrella `export *` consumption.
5
+ * Internal-only symbols (GeneratorType, AnyPrimitiveType, PRIMITIVE_COLORS,
6
+ * PrimitiveGeometryData, PrimitiveRecord, DEFAULT_SEGMENTS) are NOT re-exported.
7
+ */
8
+ // mesh-primitives
9
+ export { mergeBufferGeometries, makePrimitiveGeo, DEFAULT_SIZE, applyPrimitiveOffset } from './mesh-primitives.js';
10
+ // screw
11
+ export { makeScrew } from './screw/screw.js';
12
+ // screw-db
13
+ export { getScrewSpec, getScrewSpecs, threadToPitchMm, SCREW_HEAD_DIMS } from './screw/screw-db.js';
14
+ // parse-svg-size
15
+ export { parseSvgNaturalSize } from './parse-svg-size.js';
16
+ // brep-primitives (PrimitiveParams from here is the union type, NOT types.ts's)
17
+ export { extractMeshData, primitiveToBrepSolid, geometryToBrepSolid, brepSolidToStep, primitiveToBrepStep, } from './brep-primitives.js';
18
+ // text/cjk-font
19
+ export { loadSystemCjkFont, containsCjk, isCjkChar } from './text/cjk-font.js';
20
+ export { nextPrimitiveColor } from './types.js';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE/G,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGhG,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAEtD,gFAAgF;AAChF,OAAO,EACL,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAC1D,eAAe,EAAE,mBAAmB,GACrC,MAAM,mBAAmB,CAAA;AAG1B,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA","sourcesContent":["/**\n * primitives — mesh geometry primitives, screw generators, and BREP bridges.\n *\n * Public API surface aggregated for umbrella `export *` consumption.\n * Internal-only symbols (GeneratorType, AnyPrimitiveType, PRIMITIVE_COLORS,\n * PrimitiveGeometryData, PrimitiveRecord, DEFAULT_SEGMENTS) are NOT re-exported.\n */\n\n// mesh-primitives\nexport { mergeBufferGeometries, makePrimitiveGeo, DEFAULT_SIZE, applyPrimitiveOffset } from './mesh-primitives'\n\n// screw\nexport { makeScrew } from './screw/screw'\n\n// screw-db\nexport { getScrewSpec, getScrewSpecs, threadToPitchMm, SCREW_HEAD_DIMS } from './screw/screw-db'\nexport type { ScrewParams, ScrewSpec, ScrewSystem } from './screw/screw-db'\n\n// parse-svg-size\nexport { parseSvgNaturalSize } from './parse-svg-size'\n\n// brep-primitives (PrimitiveParams from here is the union type, NOT types.ts's)\nexport {\n extractMeshData, primitiveToBrepSolid, geometryToBrepSolid,\n brepSolidToStep, primitiveToBrepStep,\n} from './brep-primitives'\nexport type { PrimitiveToBrepResult, PrimitiveParams } from './brep-primitives'\n\n// text/cjk-font\nexport { loadSystemCjkFont, containsCjk, isCjkChar } from './text/cjk-font'\nexport type { CjkFontResult } from './text/cjk-font'\n\n// types (note: PrimitiveParams is NOT re-exported from here to avoid clash\n// with brep-primitives' PrimitiveParams union type)\nexport type {\n PrimitiveType, PrimitiveParamsRecord, PrimitiveArgsRecord, PrimitiveMeta,\n} from './types'\nexport { nextPrimitiveColor } from './types'\n"]}