@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":"joinery-brep.js","sourceRoot":"","sources":["../../../src/api/brep-operations/joinery-brep.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * BREP 榫卯结构操作 — 用 OCCT 精确实体复刻 mesh 路径的榫卯布尔序列\n *\n * See docs/api-contract.md §8 (dual-path geometry contract) and §10.5 (split).\n *\n * 与 mesh 路径(joinery-shapes.ts + csg-worker.ts)对照:\n * - mesh 路径:buildWedgeGeometry/buildDowelGeometry/buildStraightTenonGeometry → Manifold CSG\n * - BREP 路径:buildWedgeSolid/buildDowelSolid/buildTenonSolid → OCCT fuse/cut/common\n *\n * 坐标框架与 mesh 路径完全一致:\n * - normal: 切割平面法线(单位向量,指向上方)\n * - widthDir: 挤出方向(单位向量)\n * - depthDir = normalize(cross(normal, widthDir))\n * - planeCenter: 切割平面中心\n *\n * 所有函数都是纯函数,输入输出均为 OCCT BrepHandle,调用方负责句柄生命周期。\n */\n\nimport * as THREE from 'three'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport type { BrepEngineApi } from '../../brep/engine/primitives'\nimport type { Vec3 } from '../../mesh/types'\nimport { getSolidBoundingBox } from '../../brep/brep-utils'\nimport { splitBrep, matrixToArray } from '../../brep/brep-ops'\nimport { DEFAULT_LINEAR_DEFLECTION } from '../../tolerance'\nimport { mm } from '../../units'\n\n// ─── 坐标框架 ───\n\n/** 榫卯操作的坐标框架(与 joinery-shapes.ts 一致) */\nexport interface JoineryBasis {\n /** 切割平面法线(单位向量) */\n normal: Vec3\n /** 宽度/挤出方向(单位向量) */\n widthDir: Vec3\n /** 深度方向 = normalize(cross(normal, widthDir)) */\n depthDir: Vec3\n /** 切割平面中心 */\n planeCenter: Vec3\n /** 平面原点偏移 = dot(normal, planeCenter) */\n planeDistance: number\n}\n\n// ─── Union-Find(与 csg-worker.ts SimpleUnionFind 一致) ───\n\nclass SimpleUnionFind {\n private parent: number[]\n private rank: number[]\n\n constructor(n: number) {\n this.parent = Array.from({ length: n }, (_, i) => i)\n this.rank = new Array(n).fill(0)\n }\n\n find(x: number): number {\n if (this.parent[x] !== x) {\n this.parent[x] = this.find(this.parent[x])\n }\n return this.parent[x]\n }\n\n union(x: number, y: number): void {\n const px = this.find(x)\n const py = this.find(y)\n if (px === py) return\n if (this.rank[px] < this.rank[py]) {\n this.parent[px] = py\n } else if (this.rank[px] > this.rank[py]) {\n this.parent[py] = px\n } else {\n this.parent[py] = px\n this.rank[px]++\n }\n }\n}\n\n// ─── 截面分析(从 mesh 三角化提取截面信息,与 csg-worker.ts 算法一致) ───\n\ninterface MeshData {\n positions: Float32Array\n indices: Uint32Array\n}\n\n/**\n * 检测切割平面上的帽面连通分量。\n *\n * 与 csg-worker.ts detectCapComponents 算法一致:\n * 1. 找到所有顶点在切割平面上的三角形\n * 2. 用 union-find 按共享顶点分组\n * 3. 返回每分量的顶点索引集合\n */\nfunction detectCapComponentsFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n): Set<number>[] {\n const eps = 0.001\n const { positions, indices } = mesh\n const vertCount = positions.length / 3\n if (indices.length === 0) return []\n\n // 找到所有帽面三角形\n const capVertSet = new Set<number>()\n interface CapTri { v0: number; v1: number; v2: number }\n const capTris: CapTri[] = []\n const triCount = indices.length / 3\n for (let t = 0; t < triCount; t++) {\n const i0 = indices[t * 3]\n const i1 = indices[t * 3 + 1]\n const i2 = indices[t * 3 + 2]\n const d0 = Math.abs(\n positions[i0 * 3] * normal[0] +\n positions[i0 * 3 + 1] * normal[1] +\n positions[i0 * 3 + 2] * normal[2] - planeDistance,\n )\n const d1 = Math.abs(\n positions[i1 * 3] * normal[0] +\n positions[i1 * 3 + 1] * normal[1] +\n positions[i1 * 3 + 2] * normal[2] - planeDistance,\n )\n const d2 = Math.abs(\n positions[i2 * 3] * normal[0] +\n positions[i2 * 3 + 1] * normal[1] +\n positions[i2 * 3 + 2] * normal[2] - planeDistance,\n )\n if (d0 < eps && d1 < eps && d2 < eps) {\n capTris.push({ v0: i0, v1: i1, v2: i2 })\n capVertSet.add(i0); capVertSet.add(i1); capVertSet.add(i2)\n }\n }\n if (capTris.length === 0) return []\n\n // Union-find 按共享顶点分组\n const uf = new SimpleUnionFind(vertCount)\n for (const tri of capTris) {\n uf.union(tri.v0, tri.v1)\n uf.union(tri.v1, tri.v2)\n uf.union(tri.v0, tri.v2)\n }\n\n // 按根节点分组\n const compMap = new Map<number, Set<number>>()\n for (const vi of capVertSet) {\n const root = uf.find(vi)\n if (!compMap.has(root)) compMap.set(root, new Set<number>())\n compMap.get(root)!.add(vi)\n }\n\n return Array.from(compMap.values())\n}\n\n/**\n * 计算切割平面上截面顶点的质心。\n *\n * 与 csg-worker.ts computeCrossSectionCentroid 算法一致。\n */\nfunction computeCrossSectionCentroidFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n fallback: Vec3,\n comp?: Set<number>,\n): Vec3 {\n const eps = 0.001\n const { positions } = mesh\n let cx = 0, cy = 0, cz = 0\n let count = 0\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n cx += x\n cy += y\n cz += z\n count++\n }\n }\n\n if (count === 0) return fallback\n return [cx / count, cy / count, cz / count]\n}\n\n/**\n * 计算切割平面上截面沿指定方向的宽度。\n *\n * 与 csg-worker.ts computeCrossSectionWidth 算法一致。\n */\nfunction computeCrossSectionWidthFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n widthDir: Vec3,\n comp?: Set<number>,\n): number {\n const eps = 0.001\n const { positions } = mesh\n let minProj = Infinity\n let maxProj = -Infinity\n let found = false\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n const proj = x * widthDir[0] + y * widthDir[1] + z * widthDir[2]\n if (proj < minProj) minProj = proj\n if (proj > maxProj) maxProj = proj\n found = true\n }\n }\n\n if (!found) return 0\n return maxProj - minProj\n}\n\n/** 将 OCCT solid 三角化为 MeshData(用于截面分析) */\nfunction solidToMeshData(kernel: BrepEngineApi, solid: BrepHandle): MeshData {\n const mesh = kernel.meshShape(solid, {\n linearDeflection: DEFAULT_LINEAR_DEFLECTION.as(mm),\n angularDeflection: (2 * Math.PI) / 32,\n })\n return {\n positions: new Float32Array(mesh.positions),\n indices: new Uint32Array(mesh.indices),\n }\n}\n\n// ─── 基本体构造(BREP 等价物) ───\n\n/**\n * 构造局部的变换矩阵:local X → widthDir, Y → depthDir, Z → normal,再平移到 origin。\n */\nfunction makeBasisTransform(basis: JoineryBasis, origin: Vec3): THREE.Matrix4 {\n const basisMatrix = new THREE.Matrix4().makeBasis(\n new THREE.Vector3(...basis.widthDir),\n new THREE.Vector3(...basis.depthDir),\n new THREE.Vector3(...basis.normal),\n )\n const transMatrix = new THREE.Matrix4().makeTranslation(origin[0], origin[1], origin[2])\n return new THREE.Matrix4().multiplyMatrices(transMatrix, basisMatrix)\n}\n\n/**\n * 梯形棱柱(燕尾楔)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildWedgeGeometry 的 8 顶点拓扑:\n * - 梯形截面在 normal-depthDir 平面\n * - 底边(宽)在 planeCenter - normal*depth\n * - 顶边(窄)在 planeCenter\n * - 沿 widthDir 拉伸 extrudeLength,居中于 planeCenter\n *\n * 用 kernel.makeLineEdge + makeWire + makeFace + extrude 构造实体,\n * 然后用 transform 对齐到世界坐标系。\n * @param kernel - the BREP engine API.\n * @param basis - the joinery coordinate frame (normal/widthDir/depthDir/planeCenter).\n * @param depth - the wedge depth along the normal direction.\n * @param width - the wedge bottom width.\n * @param angleDeg - the dovetail flap angle in degrees.\n * @param extrudeLength - the extrusion length along the width direction.\n * @returns the constructed wedge solid handle.\n */\nexport function buildWedgeSolid(\n kernel: BrepEngineApi,\n basis: JoineryBasis,\n depth: number,\n width: number,\n angleDeg: number,\n extrudeLength: number,\n): BrepHandle {\n const { planeCenter } = basis\n const angleRad = (angleDeg * Math.PI) / 180\n\n const halfWidth = width / 2\n const halfTopWidth = Math.max(0, halfWidth - depth / Math.tan(angleRad))\n const halfExtrude = extrudeLength / 2\n\n // 在局部坐标系中构造梯形面(YZ 平面,X = -halfExtrude)\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const xLocal = -halfExtrude\n const v0 = { x: xLocal, y: -halfWidth, z: -depth } // bottomLeft\n const v1 = { x: xLocal, y: halfWidth, z: -depth } // bottomRight\n const v2 = { x: xLocal, y: halfTopWidth, z: 0 } // topRight\n const v3 = { x: xLocal, y: -halfTopWidth, z: 0 } // topLeft\n\n // 构建梯形 wire\n const edges: BrepHandle[] = []\n edges.push(kernel.makeLineEdge(v0, v1))\n edges.push(kernel.makeLineEdge(v1, v2))\n edges.push(kernel.makeLineEdge(v2, v3))\n edges.push(kernel.makeLineEdge(v3, v0))\n\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n\n // 沿 X 轴(= widthDir)拉伸 extrudeLength\n const extruded = kernel.extrude(face, extrudeLength, 0, 0)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, planeCenter)\n const result = kernel.transform(extruded, matrixToArray(fullMatrix))\n kernel.release(extruded)\n\n return result\n}\n\n/**\n * 圆柱(定位销)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildDowelGeometry:\n * - 圆截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeCylinder + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the dowel is placed.\n * @param basis - the joinery coordinate frame.\n * @param diameter - the dowel diameter.\n * @param height - the dowel height along the normal direction.\n * @returns the constructed dowel solid handle.\n */\nexport function buildDowelSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n diameter: number,\n height: number,\n): BrepHandle {\n const radius = diameter / 2\n const { normal } = basis\n\n // OCCT makeCylinder 创建 Z 轴方向圆柱(Z=0 → Z=height)\n // 需要旋转使 Z 轴对齐 -normal(圆柱向下延伸),且顶部在 centroid\n const cyl = kernel.makeCylinder(radius, height)\n\n // 旋转 Z → -normal\n const zAxis = new THREE.Vector3(0, 0, 1)\n const negNormal = new THREE.Vector3(-normal[0], -normal[1], -normal[2]).normalize()\n const quat = new THREE.Quaternion().setFromUnitVectors(zAxis, negNormal)\n const rotMatrix = new THREE.Matrix4().makeRotationFromQuaternion(quat)\n\n // 平移到 centroid(旋转后 Z=0 对应 centroid,即切割平面上的顶面)\n const transMatrix = new THREE.Matrix4().makeTranslation(centroid[0], centroid[1], centroid[2])\n const fullMatrix = new THREE.Matrix4().multiplyMatrices(transMatrix, rotMatrix)\n\n const result = kernel.transform(cyl, matrixToArray(fullMatrix))\n kernel.release(cyl)\n\n return result\n}\n\n/**\n * 长方体(直榫)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildStraightTenonGeometry:\n * - 方截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeBoxFromCorners + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the tenon is placed.\n * @param basis - the joinery coordinate frame.\n * @param sideLength - the tenon square side length.\n * @param height - the tenon height along the normal direction.\n * @returns the constructed tenon solid handle.\n */\nexport function buildTenonSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n sideLength: number,\n height: number,\n): BrepHandle {\n const half = sideLength / 2\n\n // 在局部坐标系中创建盒子:X ∈ [-half, half], Y ∈ [-half, half], Z ∈ [-height, 0]\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const localBox = kernel.makeBoxFromCorners(\n { x: -half, y: -half, z: -height },\n { x: half, y: half, z: 0 },\n )\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, centroid)\n const result = kernel.transform(localBox, matrixToArray(fullMatrix))\n kernel.release(localBox)\n\n return result\n}\n\n// ─── 截面质心 / 多截面检测 ───\n\n/** 截面分量信息 */\nexport interface CrossSectionComponent {\n /** 分量质心 */\n centroid: Vec3\n /** 分量面积(近似,用于排序) */\n area: number\n}\n\n/**\n * 检测上部实体在切割平面上的截面连通分量。\n *\n * BREP 等价物:将 upper solid 三角化后,用与 mesh 路径 detectCapComponents\n * 完全相同的算法(找帽面三角形 → union-find)检测连通分量。\n *\n * 与 csg-worker.ts detectCapComponents + computeCrossSectionCentroid 一致。\n * @param kernel - the BREP engine API.\n * @param upper - the upper solid whose cross section is analyzed.\n * @param basis - the joinery coordinate frame.\n * @returns the detected cross-section components (centroid + area).\n */\nexport function detectCrossSectionComponents(\n kernel: BrepEngineApi,\n upper: BrepHandle,\n basis: JoineryBasis,\n): CrossSectionComponent[] {\n const { normal, planeDistance, widthDir, depthDir, planeCenter } = basis\n const mesh = solidToMeshData(kernel, upper)\n const components = detectCapComponentsFromMesh(mesh, normal, planeDistance)\n\n if (components.length === 0) {\n // 无帽面 → 返回单个全局质心(planeCenter)作为回退\n return [{ centroid: planeCenter, area: 0 }]\n }\n\n return components.map(comp => {\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter, comp)\n const compWidth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, widthDir, comp)\n const compDepth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, depthDir, comp)\n return { centroid, area: compWidth * compDepth }\n })\n}\n\n// ─── 布尔序列(1:1 复刻 csg-worker.ts) ───\n\n/** dovetail 布尔分割的结果 */\nexport interface DovetailSplitBrepResult {\n /** 上部 + 楔(法线正方向半部分加燕尾榫) */\n front: BrepHandle\n /** 下部 - 凹腔(法线负方向半部分减燕尾槽) */\n back: BrepHandle\n}\n\n/** dowel/tenon 布尔分割的结果 */\nexport interface DowelOrTenonSplitBrepResult {\n /** 上部 + 销/榫(法线正方向半部分加圆柱/方柱) */\n front: BrepHandle\n /** 下部 - 孔(法线负方向半部分减圆柱/方柱) */\n back: BrepHandle\n}\n\n/** groove 参数 */\nexport interface GrooveParams {\n depth: number\n depthTolerance: number\n width: number\n widthTolerance: number\n flapsAngle: number\n}\n\n/**\n * Dovetail(燕尾)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dovetailBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. 计算 crossSectionWidth(bbox 投影近似)\n * 3. buildWedgeSolid(overhang=20)→ common(wedge, lower) 裁剪贴合\n * 4. fuse(upper, wedgeTrimmed) → upper'\n * 5. buildWedgeSolid(公差)→ cut(lower, wedgeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param groove - the dovetail groove parameters.\n * @returns the split result with front (upper + wedge) and back (lower - cavity) handles.\n */\nexport function dovetailBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n groove: GrooveParams,\n): DovetailSplitBrepResult {\n const { normal, widthDir, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 计算截面宽度(bbox 投影近似,后续 common 会裁回真实边界)\n const upperBbox = getSolidBoundingBox(kernel, upper)\n const upperSize: Vec3 = [\n upperBbox.max[0] - upperBbox.min[0],\n upperBbox.max[1] - upperBbox.min[1],\n upperBbox.max[2] - upperBbox.min[2],\n ]\n let crossSectionWidth =\n Math.abs(upperSize[0] * widthDir[0]) +\n Math.abs(upperSize[1] * widthDir[1]) +\n Math.abs(upperSize[2] * widthDir[2])\n if (crossSectionWidth <= 0) crossSectionWidth = 10 // 安全回退\n const extrudeLength = crossSectionWidth + 0.2\n const overhang = 20\n\n // Step 3: 构造楔(带 overhang)\n const wedgeW = buildWedgeSolid(kernel, basis, groove.depth, groove.width, groove.flapsAngle, extrudeLength + overhang)\n\n // Step 4: common(wedge, lower) → 裁剪楔贴合模型边界\n const wedgeTrimmed = kernel.common(wedgeW, lower)\n kernel.release(wedgeW)\n\n // Step 5: fuse(upper, wedgeTrimmed) → upper'\n const newUpper = kernel.fuse(upper, wedgeTrimmed)\n kernel.release(upper)\n kernel.release(wedgeTrimmed)\n upper = newUpper\n\n // Step 6: 构造公差楔\n const wedgeTol = buildWedgeSolid(\n kernel, basis,\n groove.depth + groove.depthTolerance,\n groove.width + groove.widthTolerance,\n groove.flapsAngle,\n extrudeLength + overhang,\n )\n\n // Step 7: cut(lower, wedgeTol) → lower'\n const newLower = kernel.cut(lower, wedgeTol)\n kernel.release(lower)\n kernel.release(wedgeTol)\n lower = newLower\n\n return { front: upper, back: lower }\n}\n\n/** dowel/tenon 参数 */\nexport interface DowelOrTenonParams {\n /** 直径(dowel)或边长(tenon) */\n size: number\n /** 尺寸公差 */\n sizeTolerance: number\n /** 高度 */\n height: number\n /** 高度公差 */\n heightTolerance: number\n}\n\n/**\n * Dowel(定位销)/ Tenon(直榫)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dowelOrTenonBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. detectCrossSectionComponents → 截面质心列表\n * 3. 对每个质心:buildShapeSolid → fuse(upper, shape) → upper'\n * 4. 对每个质心:buildShapeSolid(公差)→ cut(lower, shapeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param shape - whether to build a dowel or a tenon.\n * @param params - the dowel/tenon size and tolerance parameters.\n * @param selectedSections - optional indices of cross-section components to place shapes on.\n * @returns the split result with front (upper + shape) and back (lower - hole) handles.\n */\nexport function dowelOrTenonBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n shape: 'dowel' | 'tenon',\n params: DowelOrTenonParams,\n selectedSections?: number[] | null,\n): DowelOrTenonSplitBrepResult {\n const { normal, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 检测截面分量\n const components = detectCrossSectionComponents(kernel, upper, basis)\n\n // 构建放置位置列表\n interface Placement { centroid: Vec3 }\n let placements: Placement[]\n\n if (components.length <= 1 || !selectedSections || selectedSections.length === 0) {\n // 单截面或无选择 → 全局质心(向后兼容)\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n } else {\n // 多截面:按面积降序排,取选择的分量\n const sorted = [...components].sort((a, b) => b.area - a.area)\n placements = []\n for (const selId of selectedSections) {\n if (selId < sorted.length) {\n placements.push({ centroid: sorted[selId].centroid })\n }\n }\n if (placements.length === 0) {\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n }\n }\n\n // Step 3: 对每个质心构造基本体并 fuse 到 upper\n for (const { centroid } of placements) {\n let shapeC: BrepHandle\n if (shape === 'dowel') {\n shapeC = buildDowelSolid(kernel, centroid, basis, params.size, params.height)\n } else {\n shapeC = buildTenonSolid(kernel, centroid, basis, params.size, params.height)\n }\n\n const newUpper = kernel.fuse(upper, shapeC)\n kernel.release(upper)\n kernel.release(shapeC)\n upper = newUpper\n }\n\n // Step 4: 对每个质心构造公差体并 cut 从 lower\n const tolSize = params.size + params.sizeTolerance\n const tolHeight = params.height + params.heightTolerance\n\n for (const { centroid } of placements) {\n let shapeCTol: BrepHandle\n if (shape === 'dowel') {\n shapeCTol = buildDowelSolid(kernel, centroid, basis, tolSize, tolHeight)\n } else {\n shapeCTol = buildTenonSolid(kernel, centroid, basis, tolSize, tolHeight)\n }\n\n const newLower = kernel.cut(lower, shapeCTol)\n kernel.release(lower)\n kernel.release(shapeCTol)\n lower = newLower\n }\n\n return { front: upper, back: lower }\n}\n"]}
1
+ {"version":3,"file":"joinery-brep.js","sourceRoot":"","sources":["../../../src/api/brep-operations/joinery-brep.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * BREP 榫卯结构操作 — 用 OCCT 精确实体复刻 mesh 路径的榫卯布尔序列\n *\n * See docs/api-contract.md §8 (dual-path geometry contract) and §10.5 (split).\n *\n * 与 mesh 路径(joinery-shapes.ts + csg-worker.ts)对照:\n * - mesh 路径:buildWedgeGeometry/buildDowelGeometry/buildStraightTenonGeometry → Manifold CSG\n * - BREP 路径:buildWedgeSolid/buildDowelSolid/buildTenonSolid → OCCT fuse/cut/common\n *\n * 坐标框架与 mesh 路径完全一致:\n * - normal: 切割平面法线(单位向量,指向上方)\n * - widthDir: 挤出方向(单位向量)\n * - depthDir = normalize(cross(normal, widthDir))\n * - planeCenter: 切割平面中心\n *\n * 所有函数都是纯函数,输入输出均为 OCCT BrepHandle,调用方负责句柄生命周期。\n */\n\nimport { Vec3 as Vec3C, Mat4, Quat } from '../../math3d'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport type { BrepEngineApi } from '../../brep/engine/primitives'\nimport type { Vec3 } from '../../mesh/types'\nimport { getSolidBoundingBox } from '../../brep/brep-utils'\nimport { splitBrep, matrixToArray } from '../../brep/brep-ops'\nimport { DEFAULT_LINEAR_DEFLECTION } from '../../tolerance'\nimport { mm } from '../../units'\n\n// ─── 坐标框架 ───\n\n/** 榫卯操作的坐标框架(与 joinery-shapes.ts 一致) */\nexport interface JoineryBasis {\n /** 切割平面法线(单位向量) */\n normal: Vec3\n /** 宽度/挤出方向(单位向量) */\n widthDir: Vec3\n /** 深度方向 = normalize(cross(normal, widthDir)) */\n depthDir: Vec3\n /** 切割平面中心 */\n planeCenter: Vec3\n /** 平面原点偏移 = dot(normal, planeCenter) */\n planeDistance: number\n}\n\n// ─── Union-Find(与 csg-worker.ts SimpleUnionFind 一致) ───\n\nclass SimpleUnionFind {\n private parent: number[]\n private rank: number[]\n\n constructor(n: number) {\n this.parent = Array.from({ length: n }, (_, i) => i)\n this.rank = new Array(n).fill(0)\n }\n\n find(x: number): number {\n if (this.parent[x] !== x) {\n this.parent[x] = this.find(this.parent[x])\n }\n return this.parent[x]\n }\n\n union(x: number, y: number): void {\n const px = this.find(x)\n const py = this.find(y)\n if (px === py) return\n if (this.rank[px] < this.rank[py]) {\n this.parent[px] = py\n } else if (this.rank[px] > this.rank[py]) {\n this.parent[py] = px\n } else {\n this.parent[py] = px\n this.rank[px]++\n }\n }\n}\n\n// ─── 截面分析(从 mesh 三角化提取截面信息,与 csg-worker.ts 算法一致) ───\n\ninterface MeshData {\n positions: Float32Array\n indices: Uint32Array\n}\n\n/**\n * 检测切割平面上的帽面连通分量。\n *\n * 与 csg-worker.ts detectCapComponents 算法一致:\n * 1. 找到所有顶点在切割平面上的三角形\n * 2. 用 union-find 按共享顶点分组\n * 3. 返回每分量的顶点索引集合\n */\nfunction detectCapComponentsFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n): Set<number>[] {\n const eps = 0.001\n const { positions, indices } = mesh\n const vertCount = positions.length / 3\n if (indices.length === 0) return []\n\n // 找到所有帽面三角形\n const capVertSet = new Set<number>()\n interface CapTri { v0: number; v1: number; v2: number }\n const capTris: CapTri[] = []\n const triCount = indices.length / 3\n for (let t = 0; t < triCount; t++) {\n const i0 = indices[t * 3]\n const i1 = indices[t * 3 + 1]\n const i2 = indices[t * 3 + 2]\n const d0 = Math.abs(\n positions[i0 * 3] * normal[0] +\n positions[i0 * 3 + 1] * normal[1] +\n positions[i0 * 3 + 2] * normal[2] - planeDistance,\n )\n const d1 = Math.abs(\n positions[i1 * 3] * normal[0] +\n positions[i1 * 3 + 1] * normal[1] +\n positions[i1 * 3 + 2] * normal[2] - planeDistance,\n )\n const d2 = Math.abs(\n positions[i2 * 3] * normal[0] +\n positions[i2 * 3 + 1] * normal[1] +\n positions[i2 * 3 + 2] * normal[2] - planeDistance,\n )\n if (d0 < eps && d1 < eps && d2 < eps) {\n capTris.push({ v0: i0, v1: i1, v2: i2 })\n capVertSet.add(i0); capVertSet.add(i1); capVertSet.add(i2)\n }\n }\n if (capTris.length === 0) return []\n\n // Union-find 按共享顶点分组\n const uf = new SimpleUnionFind(vertCount)\n for (const tri of capTris) {\n uf.union(tri.v0, tri.v1)\n uf.union(tri.v1, tri.v2)\n uf.union(tri.v0, tri.v2)\n }\n\n // 按根节点分组\n const compMap = new Map<number, Set<number>>()\n for (const vi of capVertSet) {\n const root = uf.find(vi)\n if (!compMap.has(root)) compMap.set(root, new Set<number>())\n compMap.get(root)!.add(vi)\n }\n\n return Array.from(compMap.values())\n}\n\n/**\n * 计算切割平面上截面顶点的质心。\n *\n * 与 csg-worker.ts computeCrossSectionCentroid 算法一致。\n */\nfunction computeCrossSectionCentroidFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n fallback: Vec3,\n comp?: Set<number>,\n): Vec3 {\n const eps = 0.001\n const { positions } = mesh\n let cx = 0, cy = 0, cz = 0\n let count = 0\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n cx += x\n cy += y\n cz += z\n count++\n }\n }\n\n if (count === 0) return fallback\n return [cx / count, cy / count, cz / count]\n}\n\n/**\n * 计算切割平面上截面沿指定方向的宽度。\n *\n * 与 csg-worker.ts computeCrossSectionWidth 算法一致。\n */\nfunction computeCrossSectionWidthFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n widthDir: Vec3,\n comp?: Set<number>,\n): number {\n const eps = 0.001\n const { positions } = mesh\n let minProj = Infinity\n let maxProj = -Infinity\n let found = false\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n const proj = x * widthDir[0] + y * widthDir[1] + z * widthDir[2]\n if (proj < minProj) minProj = proj\n if (proj > maxProj) maxProj = proj\n found = true\n }\n }\n\n if (!found) return 0\n return maxProj - minProj\n}\n\n/** 将 OCCT solid 三角化为 MeshData(用于截面分析) */\nfunction solidToMeshData(kernel: BrepEngineApi, solid: BrepHandle): MeshData {\n const mesh = kernel.meshShape(solid, {\n linearDeflection: DEFAULT_LINEAR_DEFLECTION.as(mm),\n angularDeflection: (2 * Math.PI) / 32,\n })\n return {\n positions: new Float32Array(mesh.positions),\n indices: new Uint32Array(mesh.indices),\n }\n}\n\n// ─── 基本体构造(BREP 等价物) ───\n\n/**\n * 构造局部的变换矩阵:local X → widthDir, Y → depthDir, Z → normal,再平移到 origin。\n */\nfunction makeBasisTransform(basis: JoineryBasis, origin: Vec3): Mat4 {\n const basisMatrix = new Mat4().makeBasis(\n new Vec3C(...basis.widthDir),\n new Vec3C(...basis.depthDir),\n new Vec3C(...basis.normal),\n )\n const transMatrix = new Mat4().makeTranslation(origin[0], origin[1], origin[2])\n return new Mat4().multiplyMatrices(transMatrix, basisMatrix)\n}\n\n/**\n * 梯形棱柱(燕尾楔)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildWedgeGeometry 的 8 顶点拓扑:\n * - 梯形截面在 normal-depthDir 平面\n * - 底边(宽)在 planeCenter - normal*depth\n * - 顶边(窄)在 planeCenter\n * - 沿 widthDir 拉伸 extrudeLength,居中于 planeCenter\n *\n * 用 kernel.makeLineEdge + makeWire + makeFace + extrude 构造实体,\n * 然后用 transform 对齐到世界坐标系。\n * @param kernel - the BREP engine API.\n * @param basis - the joinery coordinate frame (normal/widthDir/depthDir/planeCenter).\n * @param depth - the wedge depth along the normal direction.\n * @param width - the wedge bottom width.\n * @param angleDeg - the dovetail flap angle in degrees.\n * @param extrudeLength - the extrusion length along the width direction.\n * @returns the constructed wedge solid handle.\n */\nexport function buildWedgeSolid(\n kernel: BrepEngineApi,\n basis: JoineryBasis,\n depth: number,\n width: number,\n angleDeg: number,\n extrudeLength: number,\n): BrepHandle {\n const { planeCenter } = basis\n const angleRad = (angleDeg * Math.PI) / 180\n\n const halfWidth = width / 2\n const halfTopWidth = Math.max(0, halfWidth - depth / Math.tan(angleRad))\n const halfExtrude = extrudeLength / 2\n\n // 在局部坐标系中构造梯形面(YZ 平面,X = -halfExtrude)\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const xLocal = -halfExtrude\n const v0 = { x: xLocal, y: -halfWidth, z: -depth } // bottomLeft\n const v1 = { x: xLocal, y: halfWidth, z: -depth } // bottomRight\n const v2 = { x: xLocal, y: halfTopWidth, z: 0 } // topRight\n const v3 = { x: xLocal, y: -halfTopWidth, z: 0 } // topLeft\n\n // 构建梯形 wire\n const edges: BrepHandle[] = []\n edges.push(kernel.makeLineEdge(v0, v1))\n edges.push(kernel.makeLineEdge(v1, v2))\n edges.push(kernel.makeLineEdge(v2, v3))\n edges.push(kernel.makeLineEdge(v3, v0))\n\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n\n // 沿 X 轴(= widthDir)拉伸 extrudeLength\n const extruded = kernel.extrude(face, extrudeLength, 0, 0)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, planeCenter)\n const result = kernel.transform(extruded, matrixToArray(fullMatrix))\n kernel.release(extruded)\n\n return result\n}\n\n/**\n * 圆柱(定位销)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildDowelGeometry:\n * - 圆截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeCylinder + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the dowel is placed.\n * @param basis - the joinery coordinate frame.\n * @param diameter - the dowel diameter.\n * @param height - the dowel height along the normal direction.\n * @returns the constructed dowel solid handle.\n */\nexport function buildDowelSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n diameter: number,\n height: number,\n): BrepHandle {\n const radius = diameter / 2\n const { normal } = basis\n\n // OCCT makeCylinder 创建 Z 轴方向圆柱(Z=0 → Z=height)\n // 需要旋转使 Z 轴对齐 -normal(圆柱向下延伸),且顶部在 centroid\n const cyl = kernel.makeCylinder(radius, height)\n\n // 旋转 Z → -normal\n const zAxis = new Vec3C(0, 0, 1)\n const negNormal = new Vec3C(-normal[0], -normal[1], -normal[2]).normalize()\n const quat = new Quat().setFromUnitVectors(zAxis, negNormal)\n const rotMatrix = new Mat4().makeRotationFromQuaternion(quat)\n\n // 平移到 centroid(旋转后 Z=0 对应 centroid,即切割平面上的顶面)\n const transMatrix = new Mat4().makeTranslation(centroid[0], centroid[1], centroid[2])\n const fullMatrix = new Mat4().multiplyMatrices(transMatrix, rotMatrix)\n\n const result = kernel.transform(cyl, matrixToArray(fullMatrix))\n kernel.release(cyl)\n\n return result\n}\n\n/**\n * 长方体(直榫)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildStraightTenonGeometry:\n * - 方截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeBoxFromCorners + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the tenon is placed.\n * @param basis - the joinery coordinate frame.\n * @param sideLength - the tenon square side length.\n * @param height - the tenon height along the normal direction.\n * @returns the constructed tenon solid handle.\n */\nexport function buildTenonSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n sideLength: number,\n height: number,\n): BrepHandle {\n const half = sideLength / 2\n\n // 在局部坐标系中创建盒子:X ∈ [-half, half], Y ∈ [-half, half], Z ∈ [-height, 0]\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const localBox = kernel.makeBoxFromCorners(\n { x: -half, y: -half, z: -height },\n { x: half, y: half, z: 0 },\n )\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, centroid)\n const result = kernel.transform(localBox, matrixToArray(fullMatrix))\n kernel.release(localBox)\n\n return result\n}\n\n// ─── 截面质心 / 多截面检测 ───\n\n/** 截面分量信息 */\nexport interface CrossSectionComponent {\n /** 分量质心 */\n centroid: Vec3\n /** 分量面积(近似,用于排序) */\n area: number\n}\n\n/**\n * 检测上部实体在切割平面上的截面连通分量。\n *\n * BREP 等价物:将 upper solid 三角化后,用与 mesh 路径 detectCapComponents\n * 完全相同的算法(找帽面三角形 → union-find)检测连通分量。\n *\n * 与 csg-worker.ts detectCapComponents + computeCrossSectionCentroid 一致。\n * @param kernel - the BREP engine API.\n * @param upper - the upper solid whose cross section is analyzed.\n * @param basis - the joinery coordinate frame.\n * @returns the detected cross-section components (centroid + area).\n */\nexport function detectCrossSectionComponents(\n kernel: BrepEngineApi,\n upper: BrepHandle,\n basis: JoineryBasis,\n): CrossSectionComponent[] {\n const { normal, planeDistance, widthDir, depthDir, planeCenter } = basis\n const mesh = solidToMeshData(kernel, upper)\n const components = detectCapComponentsFromMesh(mesh, normal, planeDistance)\n\n if (components.length === 0) {\n // 无帽面 → 返回单个全局质心(planeCenter)作为回退\n return [{ centroid: planeCenter, area: 0 }]\n }\n\n return components.map(comp => {\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter, comp)\n const compWidth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, widthDir, comp)\n const compDepth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, depthDir, comp)\n return { centroid, area: compWidth * compDepth }\n })\n}\n\n// ─── 布尔序列(1:1 复刻 csg-worker.ts) ───\n\n/** dovetail 布尔分割的结果 */\nexport interface DovetailSplitBrepResult {\n /** 上部 + 楔(法线正方向半部分加燕尾榫) */\n front: BrepHandle\n /** 下部 - 凹腔(法线负方向半部分减燕尾槽) */\n back: BrepHandle\n}\n\n/** dowel/tenon 布尔分割的结果 */\nexport interface DowelOrTenonSplitBrepResult {\n /** 上部 + 销/榫(法线正方向半部分加圆柱/方柱) */\n front: BrepHandle\n /** 下部 - 孔(法线负方向半部分减圆柱/方柱) */\n back: BrepHandle\n}\n\n/** groove 参数 */\nexport interface GrooveParams {\n depth: number\n depthTolerance: number\n width: number\n widthTolerance: number\n flapsAngle: number\n}\n\n/**\n * Dovetail(燕尾)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dovetailBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. 计算 crossSectionWidth(bbox 投影近似)\n * 3. buildWedgeSolid(overhang=20)→ common(wedge, lower) 裁剪贴合\n * 4. fuse(upper, wedgeTrimmed) → upper'\n * 5. buildWedgeSolid(公差)→ cut(lower, wedgeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param groove - the dovetail groove parameters.\n * @returns the split result with front (upper + wedge) and back (lower - cavity) handles.\n */\nexport function dovetailBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n groove: GrooveParams,\n): DovetailSplitBrepResult {\n const { normal, widthDir, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 计算截面宽度(bbox 投影近似,后续 common 会裁回真实边界)\n const upperBbox = getSolidBoundingBox(kernel, upper)\n const upperSize: Vec3 = [\n upperBbox.max[0] - upperBbox.min[0],\n upperBbox.max[1] - upperBbox.min[1],\n upperBbox.max[2] - upperBbox.min[2],\n ]\n let crossSectionWidth =\n Math.abs(upperSize[0] * widthDir[0]) +\n Math.abs(upperSize[1] * widthDir[1]) +\n Math.abs(upperSize[2] * widthDir[2])\n if (crossSectionWidth <= 0) crossSectionWidth = 10 // 安全回退\n const extrudeLength = crossSectionWidth + 0.2\n const overhang = 20\n\n // Step 3: 构造楔(带 overhang)\n const wedgeW = buildWedgeSolid(kernel, basis, groove.depth, groove.width, groove.flapsAngle, extrudeLength + overhang)\n\n // Step 4: common(wedge, lower) → 裁剪楔贴合模型边界\n const wedgeTrimmed = kernel.common(wedgeW, lower)\n kernel.release(wedgeW)\n\n // Step 5: fuse(upper, wedgeTrimmed) → upper'\n const newUpper = kernel.fuse(upper, wedgeTrimmed)\n kernel.release(upper)\n kernel.release(wedgeTrimmed)\n upper = newUpper\n\n // Step 6: 构造公差楔\n const wedgeTol = buildWedgeSolid(\n kernel, basis,\n groove.depth + groove.depthTolerance,\n groove.width + groove.widthTolerance,\n groove.flapsAngle,\n extrudeLength + overhang,\n )\n\n // Step 7: cut(lower, wedgeTol) → lower'\n const newLower = kernel.cut(lower, wedgeTol)\n kernel.release(lower)\n kernel.release(wedgeTol)\n lower = newLower\n\n return { front: upper, back: lower }\n}\n\n/** dowel/tenon 参数 */\nexport interface DowelOrTenonParams {\n /** 直径(dowel)或边长(tenon) */\n size: number\n /** 尺寸公差 */\n sizeTolerance: number\n /** 高度 */\n height: number\n /** 高度公差 */\n heightTolerance: number\n}\n\n/**\n * Dowel(定位销)/ Tenon(直榫)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dowelOrTenonBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. detectCrossSectionComponents → 截面质心列表\n * 3. 对每个质心:buildShapeSolid → fuse(upper, shape) → upper'\n * 4. 对每个质心:buildShapeSolid(公差)→ cut(lower, shapeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param shape - whether to build a dowel or a tenon.\n * @param params - the dowel/tenon size and tolerance parameters.\n * @param selectedSections - optional indices of cross-section components to place shapes on.\n * @returns the split result with front (upper + shape) and back (lower - hole) handles.\n */\nexport function dowelOrTenonBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n shape: 'dowel' | 'tenon',\n params: DowelOrTenonParams,\n selectedSections?: number[] | null,\n): DowelOrTenonSplitBrepResult {\n const { normal, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 检测截面分量\n const components = detectCrossSectionComponents(kernel, upper, basis)\n\n // 构建放置位置列表\n interface Placement { centroid: Vec3 }\n let placements: Placement[]\n\n if (components.length <= 1 || !selectedSections || selectedSections.length === 0) {\n // 单截面或无选择 → 全局质心(向后兼容)\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n } else {\n // 多截面:按面积降序排,取选择的分量\n const sorted = [...components].sort((a, b) => b.area - a.area)\n placements = []\n for (const selId of selectedSections) {\n if (selId < sorted.length) {\n placements.push({ centroid: sorted[selId].centroid })\n }\n }\n if (placements.length === 0) {\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n }\n }\n\n // Step 3: 对每个质心构造基本体并 fuse 到 upper\n for (const { centroid } of placements) {\n let shapeC: BrepHandle\n if (shape === 'dowel') {\n shapeC = buildDowelSolid(kernel, centroid, basis, params.size, params.height)\n } else {\n shapeC = buildTenonSolid(kernel, centroid, basis, params.size, params.height)\n }\n\n const newUpper = kernel.fuse(upper, shapeC)\n kernel.release(upper)\n kernel.release(shapeC)\n upper = newUpper\n }\n\n // Step 4: 对每个质心构造公差体并 cut 从 lower\n const tolSize = params.size + params.sizeTolerance\n const tolHeight = params.height + params.heightTolerance\n\n for (const { centroid } of placements) {\n let shapeCTol: BrepHandle\n if (shape === 'dowel') {\n shapeCTol = buildDowelSolid(kernel, centroid, basis, tolSize, tolHeight)\n } else {\n shapeCTol = buildTenonSolid(kernel, centroid, basis, tolSize, tolHeight)\n }\n\n const newLower = kernel.cut(lower, shapeCTol)\n kernel.release(lower)\n kernel.release(shapeCTol)\n lower = newLower\n }\n\n return { front: upper, back: lower }\n}\n"]}
@@ -62,17 +62,31 @@ export declare function locateBrep(...args: unknown[]): Result<BrepHandle>;
62
62
  /**
63
63
  * Mirror across a plane defined by `options.at` (origin) and `options.normal`.
64
64
  *
65
+ * C5 实现面接入(静态双轨):occt 原生有 `mirrorWithHistory` → 走权威面演化;
66
+ * brepkit 没有 → 显式回退裸 `mirror`(**不报错**),镜像保面序故挂恒等序号演化。
67
+ *
65
68
  * @param args - Resolved arguments (shape, mirror options).
66
- * @returns The mirrored shape as a `BrepHandle`.
69
+ * @returns The mirrored shape plus its face evolution.
67
70
  */
68
- export declare function mirrorBrep(...args: unknown[]): Result<BrepHandle>;
71
+ export declare function mirrorBrep(...args: unknown[]): Result<{
72
+ solid: BrepHandle;
73
+ faceEvolution: Map<number, number[]>;
74
+ }>;
69
75
  /**
70
76
  * Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).
71
77
  *
78
+ * C5 实现面接入(静态双轨):occt 原生有 `rotateWithHistory` → 走权威面演化
79
+ * (`rotateWithHistory` 产物 STEP 导出安全,与原生 `rotate` 的 GOTCHA 无关);
80
+ * brepkit 没有 → 退回 Rodrigues 矩阵 + STEP-safe `transform`(**不报错**),
81
+ * 挂恒等序号演化。
82
+ *
72
83
  * @param args - Resolved arguments (shape, angle in degrees, axis options).
73
- * @returns The rotated shape as a `BrepHandle`.
84
+ * @returns The rotated shape plus its face evolution.
74
85
  */
75
- export declare function rotateBrep(...args: unknown[]): Result<BrepHandle>;
86
+ export declare function rotateBrep(...args: unknown[]): Result<{
87
+ solid: BrepHandle;
88
+ faceEvolution: Map<number, number[]>;
89
+ }>;
76
90
  /**
77
91
  * Shell — hollow the shape by removing faces (brepjs topology/api.js#shell + modifierFns.ts#shell).
78
92
  *
@@ -83,8 +97,15 @@ export declare function shellBrep(...args: unknown[]): Result<BrepHandle>;
83
97
  /**
84
98
  * Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).
85
99
  *
100
+ * C5 实现面接入:occt 提供 `offsetWithHistory` ⇒ 用权威面演化,不用无历史 `offset`。
101
+ * `offset` 是 occt-only 平台 op(arg-spec `engines:['occt']`),brepkit 侧本就不支持,
102
+ * 不存在「有裸方法却因无 history 而报错」的回退分支。
103
+ *
86
104
  * @param args - Resolved arguments (shape, distance, options).
87
- * @returns The offset shape as a `BrepHandle`.
105
+ * @returns The offset shape plus its face evolution.
88
106
  */
89
- export declare function offsetBrep(...args: unknown[]): Result<BrepHandle>;
107
+ export declare function offsetBrep(...args: unknown[]): Result<{
108
+ solid: BrepHandle;
109
+ faceEvolution: Map<number, number[]>;
110
+ }>;
90
111
  //# sourceMappingURL=topologyFns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"topologyFns.d.ts","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAqD1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CA8BtE;AAQD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAchE;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAoBjE;AAQD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAiBjE;AAQD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAmCjE;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAmBhE;AAOD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAejE"}
1
+ {"version":3,"file":"topologyFns.d.ts","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAW5E,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAqD1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CA8BtE;AAQD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAchE;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAoBjE;AAQD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAuBlH;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAmClH;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAmBhE;AAOD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAyBlH"}
@@ -14,6 +14,8 @@
14
14
  * `topology/shapeFns.ts`) with the brepjs object model (castResultShape,
15
15
  * metadata propagation, evolution tracking) dropped: occt-wasm handles only.
16
16
  */
17
+ import { HASH_UPPER_BOUND, decodeEvolution, getFaceHashes, identityEvolution, mirrorWithHashEvolution, rotateWithHashEvolution, } from '../../brep/face-evolution.js';
18
+ import { hasNativeHistory } from '../../brep/engine/native-history.js';
17
19
  import { getBrepApi } from '../../brep/handle-bridge.js';
18
20
  import { ok, err } from '../../result/result.js';
19
21
  import { kernelError, validationError } from '../../result/errors.js';
@@ -155,8 +157,11 @@ const MIRROR_PARAMS = { name: 'mirror', params: ['shape', 'options'], formClass:
155
157
  /**
156
158
  * Mirror across a plane defined by `options.at` (origin) and `options.normal`.
157
159
  *
160
+ * C5 实现面接入(静态双轨):occt 原生有 `mirrorWithHistory` → 走权威面演化;
161
+ * brepkit 没有 → 显式回退裸 `mirror`(**不报错**),镜像保面序故挂恒等序号演化。
162
+ *
158
163
  * @param args - Resolved arguments (shape, mirror options).
159
- * @returns The mirrored shape as a `BrepHandle`.
164
+ * @returns The mirrored shape plus its face evolution.
160
165
  */
161
166
  export function mirrorBrep(...args) {
162
167
  const [shape, options] = resolveArgs(args, MIRROR_PARAMS);
@@ -164,8 +169,14 @@ export function mirrorBrep(...args) {
164
169
  const normal = opts.normal ?? [1, 0, 0];
165
170
  const at = opts.at ?? [0, 0, 0];
166
171
  const kernel = getBrepApi();
172
+ const s = brepHandleOf(shape);
167
173
  try {
168
- return ok(kernel.mirror(brepHandleOf(shape), { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] }));
174
+ if (hasNativeHistory('mirrorWithHistory')) {
175
+ const r = mirrorWithHashEvolution(kernel, s, at, normal);
176
+ return ok({ solid: r.result, faceEvolution: r.faceEvolution });
177
+ }
178
+ const h = kernel.mirror(s, { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] });
179
+ return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) });
169
180
  }
170
181
  catch (e) {
171
182
  return err(kernelError('MIRROR_FAILED', `mirror: kernel mirror failed: ${e instanceof Error ? e.message : String(e)}`, e));
@@ -177,40 +188,45 @@ const ROTATE_PARAMS = { name: 'rotate', params: ['shape', 'angle', 'options'], f
177
188
  /**
178
189
  * Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).
179
190
  *
191
+ * C5 实现面接入(静态双轨):occt 原生有 `rotateWithHistory` → 走权威面演化
192
+ * (`rotateWithHistory` 产物 STEP 导出安全,与原生 `rotate` 的 GOTCHA 无关);
193
+ * brepkit 没有 → 退回 Rodrigues 矩阵 + STEP-safe `transform`(**不报错**),
194
+ * 挂恒等序号演化。
195
+ *
180
196
  * @param args - Resolved arguments (shape, angle in degrees, axis options).
181
- * @returns The rotated shape as a `BrepHandle`.
197
+ * @returns The rotated shape plus its face evolution.
182
198
  */
183
199
  export function rotateBrep(...args) {
184
200
  const [shape, angle, options] = resolveArgs(args, ROTATE_PARAMS);
185
201
  const s = brepHandleOf(shape);
186
202
  const { at = [0, 0, 0], axis = [0, 0, 1] } = (options ?? {});
203
+ const kernel = getBrepApi();
204
+ const [ax, ay, az] = axis;
205
+ const alen = Math.hypot(ax, ay, az);
206
+ if (alen < 1e-12) {
207
+ return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`));
208
+ }
209
+ const nx = ax / alen, ny = ay / alen, nz = az / alen;
210
+ const theta = (Number(angle) * Math.PI) / 180;
187
211
  try {
188
- // GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose
189
- // STEP export crashes ("memory access out of bounds") — same family as
190
- // located/generalTransform. Rotation is affine, so build the Rodrigues
191
- // matrix and go through the STEP-safe `transform` (BRepBuilderAPI_Transform).
192
- // 2026-09-26: switched from getOcctKernel().transform to the L1 getBrepApi().transform
193
- // so the op is engine-neutral (brepkit transform = cloneAndTransform deep-copy,
194
- // same STEP-safe semantics) — see brepkit-batchA-fix.
195
- const [ax, ay, az] = axis;
196
- const alen = Math.hypot(ax, ay, az);
197
- if (alen < 1e-12) {
198
- return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`));
212
+ if (hasNativeHistory('rotateWithHistory')) {
213
+ const r = rotateWithHashEvolution(kernel, s, at, [nx, ny, nz], theta);
214
+ return ok({ solid: r.result, faceEvolution: r.faceEvolution });
199
215
  }
200
- const nx = ax / alen, ny = ay / alen, nz = az / alen;
201
- const theta = (Number(angle) * Math.PI) / 180;
216
+ // GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose
217
+ // STEP export crashes ("memory access out of bounds"). Rotation is affine,
218
+ // so build the Rodrigues matrix and go through the STEP-safe `transform`.
202
219
  const c = Math.cos(theta), sTheta = Math.sin(theta), t = 1 - c;
203
- // R = cI + sK + t·(n⊗n) (Rodrigues)
204
220
  const r00 = t * nx * nx + c, r01 = t * nx * ny - nz * sTheta, r02 = t * nx * nz + ny * sTheta;
205
221
  const r10 = t * nx * ny + nz * sTheta, r11 = t * ny * ny + c, r12 = t * ny * nz - nx * sTheta;
206
222
  const r20 = t * nx * nz - ny * sTheta, r21 = t * ny * nz + nx * sTheta, r22 = t * nz * nz + c;
207
223
  const [px, py, pz] = at;
208
- // Pivot-preserving translation: p' = R·(p − at) + at ⇒ tx = at − R·at
209
224
  const tx = px - (r00 * px + r01 * py + r02 * pz);
210
225
  const ty = py - (r10 * px + r11 * py + r12 * pz);
211
226
  const tz = pz - (r20 * px + r21 * py + r22 * pz);
212
227
  const m12 = [r00, r01, r02, tx, r10, r11, r12, ty, r20, r21, r22, tz];
213
- return ok(getBrepApi().transform(s, m12));
228
+ const h = kernel.transform(s, m12);
229
+ return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) });
214
230
  }
215
231
  catch (e) {
216
232
  const raw = e instanceof Error ? e.message : String(e);
@@ -253,8 +269,12 @@ const OFFSET_PARAMS = { name: 'offset', params: ['shape', 'distance', 'options']
253
269
  /**
254
270
  * Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).
255
271
  *
272
+ * C5 实现面接入:occt 提供 `offsetWithHistory` ⇒ 用权威面演化,不用无历史 `offset`。
273
+ * `offset` 是 occt-only 平台 op(arg-spec `engines:['occt']`),brepkit 侧本就不支持,
274
+ * 不存在「有裸方法却因无 history 而报错」的回退分支。
275
+ *
256
276
  * @param args - Resolved arguments (shape, distance, options).
257
- * @returns The offset shape as a `BrepHandle`.
277
+ * @returns The offset shape plus its face evolution.
258
278
  */
259
279
  export function offsetBrep(...args) {
260
280
  const [shape, distance, options] = resolveArgs(args, OFFSET_PARAMS);
@@ -265,8 +285,12 @@ export function offsetBrep(...args) {
265
285
  }
266
286
  const tolerance = (options ?? {}).tolerance ?? 1e-6;
267
287
  try {
268
- const h = getOcctKernel().offset(s, d, tolerance);
269
- return ok(h);
288
+ const kernel = getBrepApi();
289
+ const inputHashes = getFaceHashes(kernel, s);
290
+ const evo = getOcctKernel().offsetWithHistory(s, d, tolerance, inputHashes, HASH_UPPER_BOUND);
291
+ const solid = evo.result;
292
+ const faceEvolution = decodeEvolution(kernel, evo, s, solid);
293
+ return ok({ solid, faceEvolution });
270
294
  }
271
295
  catch (e) {
272
296
  const raw = e instanceof Error ? e.message : String(e);
@@ -1 +1 @@
1
- {"version":3,"file":"topologyFns.js","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Self-hosted compat-op implementations — topology transform family\n * (core-decouple Phase 3, §5.4).\n *\n * @platform occt\n *\n * Each export is a \"brep-shaped\" implementation consumed by the generated\n * compat-op projection (defineOp + D11 arg normalization). Inputs are the\n * normalized positional arguments of the op's params table; shapes arrive as\n * faijs Shapes (or raw handles) and results are returned as BREP handles\n * (wrapped by `wrapBrepOne` → `fromHandle`).\n *\n * Semantics mirror the early brepjs fns (`topology/transformFns.ts`,\n * `topology/shapeFns.ts`) with the brepjs object model (castResultShape,\n * metadata propagation, evolution tracking) dropped: occt-wasm handles only.\n */\n\nimport type { BrepHandle } from '../../brep/engine/types'\nimport { getBrepApi } from '../../brep/handle-bridge'\nimport { ok, err, type Result } from '../../result/result'\nimport { kernelError, validationError } from '../../result/errors'\nimport type { FormClass } from '../internal/dual-form-args'\nimport { resolveArgs } from '../internal/dual-form-args'\nimport type { MatrixInput, Vec3 } from '../geom-types/types'\nimport { brepHandleOf, composeAffine, IDENTITY_3X4, rotationMatrix, translationMatrix } from './brepHelpers'\nimport { applyAffineBrep } from '../../brep/brep-ops'\nimport { getOcctKernel } from '../../occt-kernel/occtKernel'\n\nconst VALIDATION_FAILED = 'VALIDATION_FAILED'\n\n// ---------------------------------------------------------------------------\n// Matrix input parsing (brepjs `parseMatrixInput` / `det3x3`)\n// ---------------------------------------------------------------------------\n\ntype Linear3x3 = readonly [number, number, number, number, number, number, number, number, number]\n\nfunction parseMatrixInput(\n input: MatrixInput,\n): Result<{ linear: Linear3x3; translation: readonly [number, number, number] }> {\n if ('linear' in input) {\n return ok({ linear: input.linear, translation: input.translation })\n }\n const [r0, r1, r2, r3] = input\n const TOL = 1e-10\n if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) {\n return err(\n validationError(\n VALIDATION_FAILED,\n `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`,\n ),\n )\n }\n return ok({\n linear: [r0[0], r0[1], r0[2], r1[0], r1[1], r1[2], r2[0], r2[1], r2[2]],\n translation: [r0[3], r1[3], r2[3]],\n })\n}\n\nfunction det3x3(m: Linear3x3): number {\n return (\n m[0] * (m[4] * m[8] - m[5] * m[7]) -\n m[1] * (m[3] * m[8] - m[5] * m[6]) +\n m[2] * (m[3] * m[7] - m[4] * m[6])\n )\n}\n\n// ---------------------------------------------------------------------------\n// applyMatrix\n// ---------------------------------------------------------------------------\n\nconst APPLY_MATRIX_PARAMS = { name: 'applyMatrix', params: ['shape', 'matrix'], formClass: 'A' as FormClass }\n\n/**\n * Apply a 4×4 affine matrix (OpenSCAD `multmatrix` equivalent).\n *\n * The brepjs fn splits orthogonal (evolution-tracked) and non-orthogonal\n * (`gp_GTrsf`) paths; `applyMatrix` carries identity naming and needs no face\n * evolution, so the core path just needs the *right kernel path for the matrix\n * class* — that dispatch (and its two traps) lives in `applyAffineBrep`:\n *\n * GOTCHA (2026-09-25): occt-wasm's `located`/`generalTransform` return\n * TopLoc/GTrsf-referencing handles whose STEP export crashes (\"memory access\n * out of bounds\") — the affine `transform` (BRepBuilderAPI_Transform,\n * deep-copy) is the STEP-safe one.\n *\n * GOTCHA (2026-10-07, openscad example023 parity): routing a rigid rotation to\n * `generalTransform` silently corrupts the *tessellation* of an\n * already-meshed shape (top cap z 5 → 10, exact bbox unaffected). A rotation\n * printed to 7 decimals (`0.8660254`) used to be misclassified as\n * \"non-similar\" by an absolute 1e-9 tolerance and sent down that path.\n * Two independent fixes came out of it: (1) the classification now uses a\n * *relative* tolerance (`isSimilarityAffine`, engine-neutral); (2) occt's\n * residual GTrsf tessellation defect is absorbed in the occt **adapter**\n * (`occt-kernel/occt-primitives.ts#generalTransform`, copy-then-transform —\n * brepkit's GTrsf already clones internally, so it never had the defect).\n *\n * @param args - Resolved arguments (shape, matrix).\n * @returns The transformed shape as a `BrepHandle`.\n */\nexport function applyMatrixBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, matrix] = resolveArgs(args, APPLY_MATRIX_PARAMS)\n const parsed = parseMatrixInput(matrix as MatrixInput)\n if (!parsed.ok) return parsed\n const { linear, translation } = parsed.value\n if (Math.abs(det3x3(linear)) < 1e-12) {\n return err(\n validationError(\n VALIDATION_FAILED,\n 'applyMatrix: singular matrix (determinant ≈0). Cannot apply a non-invertible transform.',\n ),\n )\n }\n const kernel = getBrepApi()\n try {\n const m12 = [\n linear[0], linear[1], linear[2], translation[0],\n linear[3], linear[4], linear[5], translation[1],\n linear[6], linear[7], linear[8], translation[2],\n ]\n return ok(applyAffineBrep(kernel, brepHandleOf(shape), m12))\n } catch (e) {\n return err(\n kernelError(\n 'APPLY_MATRIX_FAILED',\n `applyMatrix: kernel transform failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// clone\n// ---------------------------------------------------------------------------\n\nconst CLONE_PARAMS = { name: 'clone', params: ['shape'], formClass: 'A' as FormClass }\n\n/**\n * Deep-copy a shape (`kernel.copyShape`).\n *\n * @param args - Resolved arguments (shape).\n * @returns The cloned shape as a `BrepHandle`.\n */\nexport function cloneBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape] = resolveArgs(args, CLONE_PARAMS)\n const kernel = getBrepApi()\n try {\n return ok(kernel.copyShape(brepHandleOf(shape)))\n } catch (e) {\n return err(\n kernelError(\n 'CLONE_FAILED',\n `clone: kernel copy failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// locate\n// ---------------------------------------------------------------------------\n\nconst LOCATE_PARAMS = { name: 'locate', params: ['shape', 'placement'], formClass: 'A' as FormClass }\n\ntype TransformOp =\n | { readonly type: 'translate'; readonly v: Vec3 }\n | { readonly type: 'rotate'; readonly angle: number; readonly axis?: Vec3; readonly center?: Vec3 }\n\nfunction opToMatrix(op: TransformOp): number[] {\n if (op.type === 'translate') return translationMatrix(op.v)\n const axis = op.axis ?? [0, 0, 1]\n const center = op.center ?? [0, 0, 0]\n return rotationMatrix(axis as Vec3, center as Vec3, op.angle)\n}\n\n/**\n * Placement-only rigid move (translate/rotate) via the kernel's cheap location\n * re-tag. Ops apply first-to-last (rotate then translate).\n *\n * @param args - Resolved arguments (shape, placement).\n * @returns The relocated shape as a `BrepHandle`.\n */\nexport function locateBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, placement] = resolveArgs(args, LOCATE_PARAMS)\n const ops: readonly TransformOp[] =\n placement !== null && typeof placement === 'object' && 'type' in (placement as object)\n ? [placement as TransformOp]\n : (placement as readonly TransformOp[])\n const kernel = getBrepApi()\n try {\n let acc: number[] = [...IDENTITY_3X4]\n for (const op of ops) acc = composeAffine(acc, opToMatrix(op))\n return ok(kernel.locate(brepHandleOf(shape), acc))\n } catch (e) {\n return err(\n kernelError(\n 'LOCATE_FAILED',\n `locate: kernel locate failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// mirror\n// ---------------------------------------------------------------------------\n\nconst MIRROR_PARAMS = { name: 'mirror', params: ['shape', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Mirror across a plane defined by `options.at` (origin) and `options.normal`.\n *\n * @param args - Resolved arguments (shape, mirror options).\n * @returns The mirrored shape as a `BrepHandle`.\n */\nexport function mirrorBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, options] = resolveArgs(args, MIRROR_PARAMS)\n const opts = (options ?? {}) as { normal?: Vec3; at?: Vec3 }\n const normal = opts.normal ?? [1, 0, 0]\n const at = opts.at ?? [0, 0, 0]\n const kernel = getBrepApi()\n try {\n return ok(kernel.mirror(brepHandleOf(shape), { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] }))\n } catch (e) {\n return err(\n kernelError(\n 'MIRROR_FAILED',\n `mirror: kernel mirror failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n\n// ---------------------------------------------------------------------------\n// rotate — 绕轴旋转(brepjs topology/api.js#rotate + transformFns.ts#rotate)// ---------------------------------------------------------------------------\n\nconst ROTATE_PARAMS = { name: 'rotate', params: ['shape', 'angle', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).\n *\n * @param args - Resolved arguments (shape, angle in degrees, axis options).\n * @returns The rotated shape as a `BrepHandle`.\n */\nexport function rotateBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, angle, options] = resolveArgs(args, ROTATE_PARAMS)\n const s = brepHandleOf(shape)\n const { at = [0, 0, 0], axis = [0, 0, 1] } = (options ?? {}) as { at?: Vec3; axis?: Vec3 }\n try {\n // GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose\n // STEP export crashes (\"memory access out of bounds\") — same family as\n // located/generalTransform. Rotation is affine, so build the Rodrigues\n // matrix and go through the STEP-safe `transform` (BRepBuilderAPI_Transform).\n // 2026-09-26: switched from getOcctKernel().transform to the L1 getBrepApi().transform\n // so the op is engine-neutral (brepkit transform = cloneAndTransform deep-copy,\n // same STEP-safe semantics) — see brepkit-batchA-fix.\n const [ax, ay, az] = axis as readonly [number, number, number]\n const alen = Math.hypot(ax, ay, az)\n if (alen < 1e-12) {\n return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`))\n }\n const nx = ax / alen, ny = ay / alen, nz = az / alen\n const theta = (Number(angle) * Math.PI) / 180\n const c = Math.cos(theta), sTheta = Math.sin(theta), t = 1 - c\n // R = cI + sK + t·(n⊗n) (Rodrigues)\n const r00 = t * nx * nx + c, r01 = t * nx * ny - nz * sTheta, r02 = t * nx * nz + ny * sTheta\n const r10 = t * nx * ny + nz * sTheta, r11 = t * ny * ny + c, r12 = t * ny * nz - nx * sTheta\n const r20 = t * nx * nz - ny * sTheta, r21 = t * ny * nz + nx * sTheta, r22 = t * nz * nz + c\n const [px, py, pz] = at as readonly [number, number, number]\n // Pivot-preserving translation: p' = R·(p − at) + at ⇒ tx = at − R·at\n const tx = px - (r00 * px + r01 * py + r02 * pz)\n const ty = py - (r10 * px + r11 * py + r12 * pz)\n const tz = pz - (r20 * px + r21 * py + r22 * pz)\n const m12 = [r00, r01, r02, tx, r10, r11, r12, ty, r20, r21, r22, tz]\n return ok(getBrepApi().transform(s, m12))\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('ROTATE_FAILED', `Rotate operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// shell — 去面掏空(brepjs topology/api.js#shell + modifierFns.ts#shell)// ---------------------------------------------------------------------------\n\nconst SHELL_PARAMS = { name: 'shell', params: ['shape', 'faces', 'thickness', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Shell — hollow the shape by removing faces (brepjs topology/api.js#shell + modifierFns.ts#shell).\n *\n * @param args - Resolved arguments (shape, faces, thickness, options).\n * @returns The shelled (hollowed) shape as a `BrepHandle`.\n */\nexport function shellBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, faces, thickness, options] = resolveArgs(args, SHELL_PARAMS)\n const kernel = getBrepApi()\n const s = brepHandleOf(shape)\n const t = Number(thickness)\n if (t <= 0) {\n return err(validationError('INVALID_THICKNESS', 'Shell thickness must be positive'))\n }\n if (!Array.isArray(faces) || faces.length === 0) {\n return err(validationError('NO_FACES', 'At least one face must be specified for shell'))\n }\n const faceHandles = (faces as unknown[]).map((f) => brepHandleOf(f))\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-3\n try {\n return ok(kernel.shell(s, faceHandles, t, tolerance))\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('SHELL_FAILED', `Shell operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// offset — 全表面偏移(brepjs topology/api.js#offset + modifierFns.ts#offset)// ---------------------------------------------------------------------------\n\nconst OFFSET_PARAMS = { name: 'offset', params: ['shape', 'distance', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).\n *\n * @param args - Resolved arguments (shape, distance, options).\n * @returns The offset shape as a `BrepHandle`.\n */\nexport function offsetBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, distance, options] = resolveArgs(args, OFFSET_PARAMS)\n const s = brepHandleOf(shape)\n const d = Number(distance)\n if (Math.abs(d) < 1e-10) {\n return err(validationError('ZERO_OFFSET', 'Offset distance cannot be zero'))\n }\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-6\n try {\n const h = getOcctKernel().offset(s as never, d, tolerance)\n return ok(h as unknown as BrepHandle)\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('OFFSET_FAILED', `Offset operation failed: ${raw}`, e))\n }\n}\n"]}
1
+ {"version":3,"file":"topologyFns.js","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Self-hosted compat-op implementations — topology transform family\n * (core-decouple Phase 3, §5.4).\n *\n * @platform occt\n *\n * Each export is a \"brep-shaped\" implementation consumed by the generated\n * compat-op projection (defineOp + D11 arg normalization). Inputs are the\n * normalized positional arguments of the op's params table; shapes arrive as\n * faijs Shapes (or raw handles) and results are returned as BREP handles\n * (wrapped by `wrapBrepOne` → `fromHandle`).\n *\n * Semantics mirror the early brepjs fns (`topology/transformFns.ts`,\n * `topology/shapeFns.ts`) with the brepjs object model (castResultShape,\n * metadata propagation, evolution tracking) dropped: occt-wasm handles only.\n */\n\nimport type { BrepEvolutionData, BrepHandle } from '../../brep/engine/types'\nimport {\n HASH_UPPER_BOUND,\n decodeEvolution,\n getFaceHashes,\n identityEvolution,\n mirrorWithHashEvolution,\n rotateWithHashEvolution,\n} from '../../brep/face-evolution'\nimport { hasNativeHistory } from '../../brep/engine/native-history'\nimport { getBrepApi } from '../../brep/handle-bridge'\nimport { ok, err, type Result } from '../../result/result'\nimport { kernelError, validationError } from '../../result/errors'\nimport type { FormClass } from '../internal/dual-form-args'\nimport { resolveArgs } from '../internal/dual-form-args'\nimport type { MatrixInput, Vec3 } from '../geom-types/types'\nimport { brepHandleOf, composeAffine, IDENTITY_3X4, rotationMatrix, translationMatrix } from './brepHelpers'\nimport { applyAffineBrep } from '../../brep/brep-ops'\nimport { getOcctKernel } from '../../occt-kernel/occtKernel'\n\nconst VALIDATION_FAILED = 'VALIDATION_FAILED'\n\n// ---------------------------------------------------------------------------\n// Matrix input parsing (brepjs `parseMatrixInput` / `det3x3`)\n// ---------------------------------------------------------------------------\n\ntype Linear3x3 = readonly [number, number, number, number, number, number, number, number, number]\n\nfunction parseMatrixInput(\n input: MatrixInput,\n): Result<{ linear: Linear3x3; translation: readonly [number, number, number] }> {\n if ('linear' in input) {\n return ok({ linear: input.linear, translation: input.translation })\n }\n const [r0, r1, r2, r3] = input\n const TOL = 1e-10\n if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) {\n return err(\n validationError(\n VALIDATION_FAILED,\n `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`,\n ),\n )\n }\n return ok({\n linear: [r0[0], r0[1], r0[2], r1[0], r1[1], r1[2], r2[0], r2[1], r2[2]],\n translation: [r0[3], r1[3], r2[3]],\n })\n}\n\nfunction det3x3(m: Linear3x3): number {\n return (\n m[0] * (m[4] * m[8] - m[5] * m[7]) -\n m[1] * (m[3] * m[8] - m[5] * m[6]) +\n m[2] * (m[3] * m[7] - m[4] * m[6])\n )\n}\n\n// ---------------------------------------------------------------------------\n// applyMatrix\n// ---------------------------------------------------------------------------\n\nconst APPLY_MATRIX_PARAMS = { name: 'applyMatrix', params: ['shape', 'matrix'], formClass: 'A' as FormClass }\n\n/**\n * Apply a 4×4 affine matrix (OpenSCAD `multmatrix` equivalent).\n *\n * The brepjs fn splits orthogonal (evolution-tracked) and non-orthogonal\n * (`gp_GTrsf`) paths; `applyMatrix` carries identity naming and needs no face\n * evolution, so the core path just needs the *right kernel path for the matrix\n * class* — that dispatch (and its two traps) lives in `applyAffineBrep`:\n *\n * GOTCHA (2026-09-25): occt-wasm's `located`/`generalTransform` return\n * TopLoc/GTrsf-referencing handles whose STEP export crashes (\"memory access\n * out of bounds\") — the affine `transform` (BRepBuilderAPI_Transform,\n * deep-copy) is the STEP-safe one.\n *\n * GOTCHA (2026-10-07, openscad example023 parity): routing a rigid rotation to\n * `generalTransform` silently corrupts the *tessellation* of an\n * already-meshed shape (top cap z 5 → 10, exact bbox unaffected). A rotation\n * printed to 7 decimals (`0.8660254`) used to be misclassified as\n * \"non-similar\" by an absolute 1e-9 tolerance and sent down that path.\n * Two independent fixes came out of it: (1) the classification now uses a\n * *relative* tolerance (`isSimilarityAffine`, engine-neutral); (2) occt's\n * residual GTrsf tessellation defect is absorbed in the occt **adapter**\n * (`occt-kernel/occt-primitives.ts#generalTransform`, copy-then-transform —\n * brepkit's GTrsf already clones internally, so it never had the defect).\n *\n * @param args - Resolved arguments (shape, matrix).\n * @returns The transformed shape as a `BrepHandle`.\n */\nexport function applyMatrixBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, matrix] = resolveArgs(args, APPLY_MATRIX_PARAMS)\n const parsed = parseMatrixInput(matrix as MatrixInput)\n if (!parsed.ok) return parsed\n const { linear, translation } = parsed.value\n if (Math.abs(det3x3(linear)) < 1e-12) {\n return err(\n validationError(\n VALIDATION_FAILED,\n 'applyMatrix: singular matrix (determinant ≈0). Cannot apply a non-invertible transform.',\n ),\n )\n }\n const kernel = getBrepApi()\n try {\n const m12 = [\n linear[0], linear[1], linear[2], translation[0],\n linear[3], linear[4], linear[5], translation[1],\n linear[6], linear[7], linear[8], translation[2],\n ]\n return ok(applyAffineBrep(kernel, brepHandleOf(shape), m12))\n } catch (e) {\n return err(\n kernelError(\n 'APPLY_MATRIX_FAILED',\n `applyMatrix: kernel transform failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// clone\n// ---------------------------------------------------------------------------\n\nconst CLONE_PARAMS = { name: 'clone', params: ['shape'], formClass: 'A' as FormClass }\n\n/**\n * Deep-copy a shape (`kernel.copyShape`).\n *\n * @param args - Resolved arguments (shape).\n * @returns The cloned shape as a `BrepHandle`.\n */\nexport function cloneBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape] = resolveArgs(args, CLONE_PARAMS)\n const kernel = getBrepApi()\n try {\n return ok(kernel.copyShape(brepHandleOf(shape)))\n } catch (e) {\n return err(\n kernelError(\n 'CLONE_FAILED',\n `clone: kernel copy failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// locate\n// ---------------------------------------------------------------------------\n\nconst LOCATE_PARAMS = { name: 'locate', params: ['shape', 'placement'], formClass: 'A' as FormClass }\n\ntype TransformOp =\n | { readonly type: 'translate'; readonly v: Vec3 }\n | { readonly type: 'rotate'; readonly angle: number; readonly axis?: Vec3; readonly center?: Vec3 }\n\nfunction opToMatrix(op: TransformOp): number[] {\n if (op.type === 'translate') return translationMatrix(op.v)\n const axis = op.axis ?? [0, 0, 1]\n const center = op.center ?? [0, 0, 0]\n return rotationMatrix(axis as Vec3, center as Vec3, op.angle)\n}\n\n/**\n * Placement-only rigid move (translate/rotate) via the kernel's cheap location\n * re-tag. Ops apply first-to-last (rotate then translate).\n *\n * @param args - Resolved arguments (shape, placement).\n * @returns The relocated shape as a `BrepHandle`.\n */\nexport function locateBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, placement] = resolveArgs(args, LOCATE_PARAMS)\n const ops: readonly TransformOp[] =\n placement !== null && typeof placement === 'object' && 'type' in (placement as object)\n ? [placement as TransformOp]\n : (placement as readonly TransformOp[])\n const kernel = getBrepApi()\n try {\n let acc: number[] = [...IDENTITY_3X4]\n for (const op of ops) acc = composeAffine(acc, opToMatrix(op))\n return ok(kernel.locate(brepHandleOf(shape), acc))\n } catch (e) {\n return err(\n kernelError(\n 'LOCATE_FAILED',\n `locate: kernel locate failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// mirror\n// ---------------------------------------------------------------------------\n\nconst MIRROR_PARAMS = { name: 'mirror', params: ['shape', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Mirror across a plane defined by `options.at` (origin) and `options.normal`.\n *\n * C5 实现面接入(静态双轨):occt 原生有 `mirrorWithHistory` → 走权威面演化;\n * brepkit 没有 → 显式回退裸 `mirror`(**不报错**),镜像保面序故挂恒等序号演化。\n *\n * @param args - Resolved arguments (shape, mirror options).\n * @returns The mirrored shape plus its face evolution.\n */\nexport function mirrorBrep(...args: unknown[]): Result<{ solid: BrepHandle; faceEvolution: Map<number, number[]> }> {\n const [shape, options] = resolveArgs(args, MIRROR_PARAMS)\n const opts = (options ?? {}) as { normal?: Vec3; at?: Vec3 }\n const normal = opts.normal ?? [1, 0, 0]\n const at = opts.at ?? [0, 0, 0]\n const kernel = getBrepApi()\n const s = brepHandleOf(shape)\n try {\n if (hasNativeHistory('mirrorWithHistory')) {\n const r = mirrorWithHashEvolution(kernel, s, at, normal)\n return ok({ solid: r.result, faceEvolution: r.faceEvolution })\n }\n const h = kernel.mirror(s, { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] })\n return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) })\n } catch (e) {\n return err(\n kernelError(\n 'MIRROR_FAILED',\n `mirror: kernel mirror failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n\n// ---------------------------------------------------------------------------\n// rotate — 绕轴旋转(brepjs topology/api.js#rotate + transformFns.ts#rotate)// ---------------------------------------------------------------------------\n\nconst ROTATE_PARAMS = { name: 'rotate', params: ['shape', 'angle', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).\n *\n * C5 实现面接入(静态双轨):occt 原生有 `rotateWithHistory` → 走权威面演化\n * (`rotateWithHistory` 产物 STEP 导出安全,与原生 `rotate` 的 GOTCHA 无关);\n * brepkit 没有 → 退回 Rodrigues 矩阵 + STEP-safe `transform`(**不报错**),\n * 挂恒等序号演化。\n *\n * @param args - Resolved arguments (shape, angle in degrees, axis options).\n * @returns The rotated shape plus its face evolution.\n */\nexport function rotateBrep(...args: unknown[]): Result<{ solid: BrepHandle; faceEvolution: Map<number, number[]> }> {\n const [shape, angle, options] = resolveArgs(args, ROTATE_PARAMS)\n const s = brepHandleOf(shape)\n const { at = [0, 0, 0], axis = [0, 0, 1] } = (options ?? {}) as { at?: Vec3; axis?: Vec3 }\n const kernel = getBrepApi()\n const [ax, ay, az] = axis as readonly [number, number, number]\n const alen = Math.hypot(ax, ay, az)\n if (alen < 1e-12) {\n return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`))\n }\n const nx = ax / alen, ny = ay / alen, nz = az / alen\n const theta = (Number(angle) * Math.PI) / 180\n try {\n if (hasNativeHistory('rotateWithHistory')) {\n const r = rotateWithHashEvolution(kernel, s, at, [nx, ny, nz], theta)\n return ok({ solid: r.result, faceEvolution: r.faceEvolution })\n }\n // GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose\n // STEP export crashes (\"memory access out of bounds\"). Rotation is affine,\n // so build the Rodrigues matrix and go through the STEP-safe `transform`.\n const c = Math.cos(theta), sTheta = Math.sin(theta), t = 1 - c\n const r00 = t * nx * nx + c, r01 = t * nx * ny - nz * sTheta, r02 = t * nx * nz + ny * sTheta\n const r10 = t * nx * ny + nz * sTheta, r11 = t * ny * ny + c, r12 = t * ny * nz - nx * sTheta\n const r20 = t * nx * nz - ny * sTheta, r21 = t * ny * nz + nx * sTheta, r22 = t * nz * nz + c\n const [px, py, pz] = at as readonly [number, number, number]\n const tx = px - (r00 * px + r01 * py + r02 * pz)\n const ty = py - (r10 * px + r11 * py + r12 * pz)\n const tz = pz - (r20 * px + r21 * py + r22 * pz)\n const m12 = [r00, r01, r02, tx, r10, r11, r12, ty, r20, r21, r22, tz]\n const h = kernel.transform(s, m12)\n return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) })\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('ROTATE_FAILED', `Rotate operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// shell — 去面掏空(brepjs topology/api.js#shell + modifierFns.ts#shell)// ---------------------------------------------------------------------------\n\nconst SHELL_PARAMS = { name: 'shell', params: ['shape', 'faces', 'thickness', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Shell — hollow the shape by removing faces (brepjs topology/api.js#shell + modifierFns.ts#shell).\n *\n * @param args - Resolved arguments (shape, faces, thickness, options).\n * @returns The shelled (hollowed) shape as a `BrepHandle`.\n */\nexport function shellBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, faces, thickness, options] = resolveArgs(args, SHELL_PARAMS)\n const kernel = getBrepApi()\n const s = brepHandleOf(shape)\n const t = Number(thickness)\n if (t <= 0) {\n return err(validationError('INVALID_THICKNESS', 'Shell thickness must be positive'))\n }\n if (!Array.isArray(faces) || faces.length === 0) {\n return err(validationError('NO_FACES', 'At least one face must be specified for shell'))\n }\n const faceHandles = (faces as unknown[]).map((f) => brepHandleOf(f))\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-3\n try {\n return ok(kernel.shell(s, faceHandles, t, tolerance))\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('SHELL_FAILED', `Shell operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// offset — 全表面偏移(brepjs topology/api.js#offset + modifierFns.ts#offset)// ---------------------------------------------------------------------------\n\nconst OFFSET_PARAMS = { name: 'offset', params: ['shape', 'distance', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).\n *\n * C5 实现面接入:occt 提供 `offsetWithHistory` ⇒ 用权威面演化,不用无历史 `offset`。\n * `offset` 是 occt-only 平台 op(arg-spec `engines:['occt']`),brepkit 侧本就不支持,\n * 不存在「有裸方法却因无 history 而报错」的回退分支。\n *\n * @param args - Resolved arguments (shape, distance, options).\n * @returns The offset shape plus its face evolution.\n */\nexport function offsetBrep(...args: unknown[]): Result<{ solid: BrepHandle; faceEvolution: Map<number, number[]> }> {\n const [shape, distance, options] = resolveArgs(args, OFFSET_PARAMS)\n const s = brepHandleOf(shape)\n const d = Number(distance)\n if (Math.abs(d) < 1e-10) {\n return err(validationError('ZERO_OFFSET', 'Offset distance cannot be zero'))\n }\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-6\n try {\n const kernel = getBrepApi()\n const inputHashes = getFaceHashes(kernel, s)\n const evo = getOcctKernel().offsetWithHistory(\n s as never,\n d,\n tolerance,\n inputHashes,\n HASH_UPPER_BOUND,\n ) as unknown as BrepEvolutionData\n const solid = evo.result\n const faceEvolution = decodeEvolution(kernel, evo, s, solid)\n return ok({ solid, faceEvolution })\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('OFFSET_FAILED', `Offset operation failed: ${raw}`, e))\n }\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * api chamfer — chamfer 倒角库函数(BREP-only,directEdit 能力)
2
+ * api chamfer — chamfer 倒角库函数(BREP-only,directEdit 族)
3
3
  *
4
4
  * 平台分层(2026-09-26 B 批降级):**中立 op**(不再声明 `engines:['occt']`)。
5
- * equal 分支按引擎能力**静态定轨**(与 intersect 同构,读 `dispatchPath` 同源的能力集):
6
- * - occt(声明 `chamferWithHistory`)→ `chamferWithRoleTable`(→ face-evolution.ts 的
5
+ * equal 分支按引擎事实**静态定轨**(与 intersect 同构,读 `hasNativeHistory`——
6
+ * 引擎身份是唯一判据,没有能力集可读):
7
+ * - occt(原生有 `chamferWithHistory`)→ `chamferWithRoleTable`(→ face-evolution.ts 的
7
8
  * occt 原生 `chamferWithHistory`,D3 面演化 + roleTable 传播)——历史路径,不回退;
8
- * - brepkit(无 chamferWithHistory,但裸 `kernel.chamfer` 是真实现)→ L1 裸
9
+ * - brepkit(无 `chamferWithHistory`,但裸 `kernel.chamfer` 是真实现)→ L1 裸
9
10
  * `kernel.chamfer(solid, edges, width)`:几何正确,**无面演化、无 roleTable 传播**
10
11
  * (如实降级,不伪造恒等映射)。
11
12
  * distanceAngle / twoDistances 分支本就走 L1 `kernel.chamferDistAngle`(brepkit 真实现,
@@ -1 +1 @@
1
- {"version":3,"file":"chamfer.d.ts","sourceRoot":"","sources":["../../src/api/chamfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAUxE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1C,IAAI,CA6CN;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAgBxC;AAsKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,OAAO;;CAclB,CAAA"}
1
+ {"version":3,"file":"chamfer.d.ts","sourceRoot":"","sources":["../../src/api/chamfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAUxE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1C,IAAI,CA6CN;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAgBxC;AAsKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,OAAO;;CAgBlB,CAAA"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * api chamfer — chamfer 倒角库函数(BREP-only,directEdit 能力)
2
+ * api chamfer — chamfer 倒角库函数(BREP-only,directEdit 族)
3
3
  *
4
4
  * 平台分层(2026-09-26 B 批降级):**中立 op**(不再声明 `engines:['occt']`)。
5
- * equal 分支按引擎能力**静态定轨**(与 intersect 同构,读 `dispatchPath` 同源的能力集):
6
- * - occt(声明 `chamferWithHistory`)→ `chamferWithRoleTable`(→ face-evolution.ts 的
5
+ * equal 分支按引擎事实**静态定轨**(与 intersect 同构,读 `hasNativeHistory`——
6
+ * 引擎身份是唯一判据,没有能力集可读):
7
+ * - occt(原生有 `chamferWithHistory`)→ `chamferWithRoleTable`(→ face-evolution.ts 的
7
8
  * occt 原生 `chamferWithHistory`,D3 面演化 + roleTable 传播)——历史路径,不回退;
8
- * - brepkit(无 chamferWithHistory,但裸 `kernel.chamfer` 是真实现)→ L1 裸
9
+ * - brepkit(无 `chamferWithHistory`,但裸 `kernel.chamfer` 是真实现)→ L1 裸
9
10
  * `kernel.chamfer(solid, edges, width)`:几何正确,**无面演化、无 roleTable 传播**
10
11
  * (如实降级,不伪造恒等映射)。
11
12
  * distanceAngle / twoDistances 分支本就走 L1 `kernel.chamferDistAngle`(brepkit 真实现,
@@ -24,8 +25,8 @@
24
25
  import { solidToShape } from '../brep/brep-ops.js';
25
26
  import { chamferWithRoleTable, identityEvolution } from '../brep/face-evolution.js';
26
27
  import { getBrepApi } from '../brep/handle-bridge.js';
27
- import { getBackends, getCurrentStmt } from '../runtime-state.js';
28
- import { engineCapabilitySet } from '../cad-runtime/backend-dispatch.js';
28
+ import { getCurrentStmt } from '../runtime-state.js';
29
+ import { hasNativeHistory } from '../brep/engine/native-history.js';
29
30
  import { fromBrep, brepOf, inputRoleTable } from '../shape.js';
30
31
  import { defineOp } from '../sdk.js';
31
32
  import { resolveTopoRef, facesForQualifier, TopoRefError } from '../topology/naming/index.js';
@@ -197,11 +198,11 @@ function chamferBrep(input, params) {
197
198
  // 输入 roleTable + outStmt(与 boolean.ts / fillet.ts 同构)。Phase 1.6:origin=StmtId。
198
199
  const inputTable = inputRoleTable(input);
199
200
  const outStmt = String(getCurrentStmt()?.id ?? '');
200
- // 静态定轨:当前引擎是否声明 chamferWithHistory 面演化核函数(读与 dispatchPath
201
- // 同源的能力集,非运行时探测)。occt 声明 → equal 走 chamferWithRoleTable 历史路径;
202
- // brepkit 未声明(裸 kernel.chamfer 真实现但无 *WithHistory)→ L1 裸调用,
201
+ // 静态定轨:当前引擎是否原生实现 chamferWithHistory 面演化核函数(引擎事实,非运行时
202
+ // 探测)。occt 有 → equal 走 chamferWithRoleTable 历史路径;brepkit 没有
203
+ // (裸 kernel.chamfer 是真实现,但无 *WithHistory)→ L1 裸调用,
203
204
  // 不伪造面演化/roleTable(与 intersect 降级同构)。
204
- const useHistory = engineCapabilitySet(getBackends().config.brepCapabilities).has('chamferWithHistory');
205
+ const useHistory = hasNativeHistory('chamferWithHistory');
205
206
  let resultSolid;
206
207
  let faceEvolution;
207
208
  let roleTable;
@@ -311,7 +312,7 @@ function chamferMeshSolid(input, params) {
311
312
  * const q = await cad.chamfer(meshPart, { edges: [3], type:'equal', width:1 })
312
313
  */
313
314
  export const chamfer = defineOp({
314
- // 中立 op(2026-09-26 B 批):不再声明 engines——equal 路径按引擎能力静态分派
315
+ // 中立 op(2026-09-26 B 批):不再声明 engines——equal 路径按引擎事实静态分派
315
316
  // (occt→chamferWithHistory 历史路径;brepkit→裸 kernel.chamfer 无演化降级)。
316
317
  // meshEngines:网格实体路径由 brepkit 网格后端提供(方案 2026-10-01 §3.4)。
317
318
  meshEngines: ['brepkit'],
@@ -324,5 +325,6 @@ export const chamfer = defineOp({
324
325
  return chamferBrep(input, params);
325
326
  },
326
327
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
328
+ paramDims: {},
327
329
  });
328
330
  //# sourceMappingURL=chamfer.js.map