@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":"brep-ops.js","sourceRoot":"","sources":["../../src/brep/brep-ops.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 核心 BREP 操作 — 使用 OCCT 精确实体运算\n *\n * @platform occt — 本文件 import occt-kernel:`extrudeBrep` 用原生 `section`\n * (BRepAlgoAPI_Section,occt-only,L1 只有 sectionByPlane)构造截面 → 守卫①\n * 要求平台 import 自证身份。本文件是内部工具面(非 op 文件),文件级标注即满足\n * 守卫;调用方 op 若经本文件触达 occt-only 能力,须在 defineOp 声明 engines\n * (extrudeBrep 的 section 仅 occt 路径可达,brepkit 下由调用方引擎声明拦截)。\n *\n * See docs/api-contract.md §8 (dual-path geometry contract: BREP / Mesh).\n *\n * 与 mesh 路径(transform.ts / boolean/ / drill.ts / split.ts / extrude.ts)对照:\n * - mesh 路径:消费 Shape(三角网格),走 manifold-3d(mesh-CSG)\n * - BREP 路径:消费 BrepHandle(OCCT 实体句柄),走 OCCT 精确布尔/变换\n *\n * 所有函数都是纯函数(可 import occtWasmKernel,不读 store)。\n * 输入输出均为 OCCT BrepHandle,调用方负责句柄生命周期。\n *\n * 坐标系:Z-up、毫米,与 mesh 路径一致。\n */\n\nimport * as THREE from 'three'\nimport type { BrepHandle, BrepMeshResult } from './engine/types'\nimport type { BrepEngineApi } from './engine/primitives'\nimport {\n getOcctKernel,\n importAssemblyFromStep,\n collectLeafParts,\n type ShapeHandle,\n type AssemblyPartNode,\n} from '../occt-kernel/occtKernel'\nimport { getSolidColorsOrdered } from '../occt-kernel/stepColorParser'\nimport type { Shape, Vec3 } from '../mesh/types'\nimport type { ImportAssemblyNode } from '../mesh/import-model'\nimport type { BrepChainState } from './brep-chain'\nimport type { PartName } from '../identity'\nimport { getSolidBoundingBox } from './brep-utils'\nimport { DEFAULT_LINEAR_DEFLECTION } from '../tolerance'\nimport { mm } from '../units'\n\n// ─── 通用工具 ───\n\n/**\n * 将 OCCT solid 三角化为 Shape(供显示用)。\n *\n * 如果传入 brepChain + stmtId,同时把完整 BrepMeshResult(含 faceGroups)缓存到\n * brepChain.meshShapeCache,供 buildBrepTopology 复用——确保拓扑 mesh 与显示 mesh\n * 完全一致(规则 1:拓扑数据生成所使用的 mesh,必须是当前用户看到的 mesh)。\n *\n * @param kernel the initialized OCCT kernel.\n * @param solid the CAD solid handle.\n * @param segments optional tessellation segment count (affects precision).\n * @param brepChain optional - caches the BrepMeshResult when provided.\n * @param partName optional - the part this solid belongs to, paired with brepChain as the cache key.\n * @returns the tessellated Shape.\n */\nexport function solidToShape(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n segments?: number,\n brepChain?: BrepChainState,\n partName?: PartName,\n): Shape {\n const angularDeflection = segments\n ? (2 * Math.PI) / Math.max(3, segments)\n : (2 * Math.PI) / 64 // 缺省 64 = brepjs standard 等效(§5.0/§5.1)\n const mesh: BrepMeshResult = kernel.meshShape(solid, {\n linearDeflection: DEFAULT_LINEAR_DEFLECTION.as(mm),\n angularDeflection,\n })\n\n // 规则 1:缓存完整 BrepMeshResult(含 faceGroups),供 buildBrepTopology 复用\n if (brepChain?.meshShapeCache && partName) {\n brepChain.meshShapeCache.set(partName, mesh)\n }\n\n return {\n positions: new Float32Array(mesh.positions),\n indices: new Uint32Array(mesh.indices),\n }\n}\n\n// ─── 变换操作 ───\n\n/**\n * BREP 平移:使用 OCCT translate(精确,不损失几何精度)。\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param offset 平移量 [dx, dy, dz]\n * @returns 新实体(调用方负责释放输入实体)\n */\nexport function translateBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n offset: Vec3,\n): BrepHandle {\n return kernel.translate(solid, offset[0], offset[1], offset[2])\n}\n\n/**\n * BREP 旋转:使用 OCCT transform(3x4 仿射矩阵)。\n *\n * 与 mesh 路径 rotate_euler(shape, angles, pivot?) 一致:\n * - angles 为 XYZ 欧拉角(角度制)\n * - pivot 为旋转中心(可选,默认原点)\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param angles XYZ 欧拉角(角度制)\n * @param pivot 旋转中心(可选)\n * @returns 新实体\n */\nexport function rotateBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n angles: Vec3,\n pivot?: Vec3,\n): BrepHandle {\n const euler = new THREE.Euler(\n (angles[0] * Math.PI) / 180,\n (angles[1] * Math.PI) / 180,\n (angles[2] * Math.PI) / 180,\n )\n const matrix = new THREE.Matrix4().makeRotationFromEuler(euler)\n if (pivot) {\n matrix.premultiply(new THREE.Matrix4().makeTranslation(pivot[0], pivot[1], pivot[2]))\n matrix.multiply(new THREE.Matrix4().makeTranslation(-pivot[0], -pivot[1], -pivot[2]))\n }\n return kernel.transform(solid, matrixToArray(matrix))\n}\n\n/**\n * 判定 3×4 行主序仿射矩阵的线性部分是否为**相似变换**(旋转/反射 × 等比缩放)——\n * 即 `gp_Trsf` 能精确承载、`kernel.transform`(BRepBuilderAPI_Transform)唯一\n * 正确处理的那一类。\n *\n * 判据必须用**相对**容差,不能像 2026-10-07 之前那样用绝对容差:\n * GOTCHA(2026-10-07,openscad example023 parity)——一个 60° 刚体旋转只要按\n * 7 位小数打印(`0.8660254`),行范数就是 `0.99999999645`(与 1 相差 3.6e-9)。\n * 绝对容差 1e-9 会判定 `|‖row2‖ − ‖row0‖| = 3.6e-9 > 1e-9` ⇒ 把这个**纯旋转**\n * 判成\"非相似\",从而错误地走进 `generalTransform`;而 occt 侧 `gp_GTrsf` 路径在\n * **已三角化**的形状上会重复计入被平移面的 TopLoc(顶盖 z 由 5 变 10,绕过在\n * `occt-kernel/occt-primitives.ts` 的 `generalTransform` 适配层,本层不感知)。\n * 相对容差 1e-6 覆盖 7 位小数打印精度,同时仍能区分真正的非等比缩放\n * (如 z×2.5 行范数相差 2.5 倍)。正交性同用 1e-6:7 位小数打印的旋转,行点积\n * 误差上界约 2e-7。\n *\n * @param m12 - 3×4 行主序矩阵(12 元素:`[r00,r01,r02,tx, r10,r11,r12,ty, r20,r21,r22,tz]`)。\n * @returns `true` 当且仅当线性部分可逆且为相似变换。\n */\nexport function isSimilarityAffine(m12: readonly number[]): boolean {\n const s0 = Math.hypot(m12[0]!, m12[1]!, m12[2]!)\n const s1 = Math.hypot(m12[4]!, m12[5]!, m12[6]!)\n const s2 = Math.hypot(m12[8]!, m12[9]!, m12[10]!)\n if (!(s0 > 1e-12) || !(s1 > 1e-12) || !(s2 > 1e-12)) return false\n const REL = 1e-6\n if (Math.abs(s1 - s0) > REL * s0 || Math.abs(s2 - s0) > REL * s0) return false\n const dot = (r: number, c: number): number =>\n m12[r * 4]! * m12[c * 4]! + m12[r * 4 + 1]! * m12[c * 4 + 1]! + m12[r * 4 + 2]! * m12[c * 4 + 2]!\n return (\n Math.abs(dot(0, 1)) <= REL * s0 * s1 &&\n Math.abs(dot(0, 2)) <= REL * s0 * s2 &&\n Math.abs(dot(1, 2)) <= REL * s1 * s2\n )\n}\n\n/**\n * 施加 3×4 行主序仿射矩阵,按矩阵类别选**唯一正确**的 OCCT 路径。\n *\n * 两条路径的差异是**正确性**而不只是性能:\n * - 相似(旋转/反射 × 等比缩放)→ `kernel.transform`(BRepBuilderAPI_Transform)。\n * - 其余(非等比缩放、错切)→ `kernel.generalTransform`(gp_GTrsf)。\n *\n * GOTCHA(2026-10-07):occt 的 `generalTransform` 在**已经三角化过**的形状上会\n * 重复计入被平移面的 TopLoc(精确 z∈[0,5],网格顶盖却落在 z=10;非等比 z×2.5 时\n * 12.5 vs 17.5)。该缺陷是 **occt 专属**(brepkit 的 GTrsf 路径干净),因此绕过\n * **不在本层**——本层是引擎中立分派,让每个引擎都为 occt 的毛病多付一次句柄分配\n * 是错的(还会扰动 brepkit 的 `cut` bbox,见 multi-engine-op-parity)。\n * 绕过落在 occt 适配层:`occt-kernel/occt-primitives.ts` 的 `generalTransform`\n * 先 `copy` 再变换。`kernel.transform` 无此问题,故相似矩阵不付这份深拷贝成本。\n *\n * 反向陷阱:把非相似矩阵交给 `kernel.transform` 是**静默错误**——OCCT 会按\n * `det^(1/3)` 取等比因子近似(实测 z×2.5 被当成 1.357 倍等比缩放)。所以分类\n * 判据既不能过严(把刚体旋转推给 GTrsf),也不能过宽(把非等比缩放塞给 Trsf)。\n *\n * @param kernel - L1 引擎句柄。\n * @param solid - 输入实体(不被消费、不被释放;调用方保留其所有权)。\n * @param m12 - 3×4 行主序矩阵(12 元素)。\n * @returns 变换后的新实体(调用方负责释放)。\n */\nexport function applyAffineBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n m12: readonly number[],\n): BrepHandle {\n if (isSimilarityAffine(m12)) return kernel.transform(solid, m12 as number[])\n return kernel.generalTransform(solid, m12 as number[])\n}\n\n/**\n * BREP 缩放:使用 OCCT transform(3x4 仿射矩阵)。\n *\n * 与 mesh 路径 scale(P6 §4.6)一致:\n * - factor 为 number(均匀缩放)或 Vec3 [sx, sy, sz](非均匀)\n * - center 为缩放不动点(p' = center + S·(p − center));缺省 [0,0,0](原点),\n * 与早期 brepjs `scale(shape, factor, { center? })` 的默认一致。\n *\n * 路径分派交给 {@link applyAffineBrep}:等比走 `transform`,非等比走\n * `generalTransform`(gp_Trsf 表达不了非等比)。注意判据是**数值**相似性而非\n * 因子逐分量相等——`[1, 1, 1+1e-9]` 这种数值上就是等比,归 `transform` 一侧。\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param factor 缩放因子\n * @param center 缩放不动点(可选,默认原点)\n * @returns 新实体\n */\nexport function scaleBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n factor: number | Vec3,\n center?: Vec3,\n): BrepHandle {\n const f = typeof factor === 'number' ? [factor, factor, factor] : factor\n const scale = new THREE.Matrix4().makeScale(f[0], f[1], f[2])\n // T(c)·S·T(−c):不动点为 center;缺省时退化为原点缩放(现状行为)。\n const matrix = center\n ? new THREE.Matrix4()\n .makeTranslation(center[0], center[1], center[2])\n .multiply(scale)\n .multiply(new THREE.Matrix4().makeTranslation(-center[0], -center[1], -center[2]))\n : scale\n return applyAffineBrep(kernel, solid, matrixToArray(matrix))\n}\n\n// ─── 装配变换 ───\n\n/**\n * BREP 版 applyTransform:与 mesh ops/assemble.ts 的 applyTransform 同语义(绕 pivot 旋转 + 平移)。\n *\n * 数学公式:p' = R·(p − pivot) + pivot + translation\n * 等价 Matrix4 = T(pivot) · R · T(−pivot) · T(translation)\n *\n * 用四元数而非欧拉角,是因为装配变换源是 api/assembly 的四元数;\n * 转欧拉会引入顺序/万向锁歧义。与 mesh applyTransform 顶点公式完全等价。\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param quaternion 旋转四元数 [x, y, z, w]\n * @param pivot 旋转中心\n * @param translation 平移量\n * @returns 新实体(调用方负责释放输入实体)\n */\nexport function applyTransformBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n quaternion: [number, number, number, number],\n pivot: [number, number, number],\n translation: [number, number, number],\n): BrepHandle {\n const rotation = new THREE.Matrix4().makeRotationFromQuaternion(\n new THREE.Quaternion(quaternion[0], quaternion[1], quaternion[2], quaternion[3]),\n )\n // T(translation) · T(pivot) · R · T(-pivot) = T(pivot+translation) · R · T(-pivot)\n // 先绕 pivot 旋转,再平移 translation(与 mesh 路径 applyTransform 一致)\n const matrix = new THREE.Matrix4()\n .makeTranslation(pivot[0] + translation[0], pivot[1] + translation[1], pivot[2] + translation[2])\n .multiply(rotation)\n .multiply(new THREE.Matrix4().makeTranslation(-pivot[0], -pivot[1], -pivot[2]))\n return kernel.transform(solid, matrixToArray(matrix))\n}\n\n// ─── 布尔操作 ───\n\n/**\n * BREP 布尔并集:使用 OCCT fuse(BRepAlgoAPI_Fuse)。\n *\n * @param kernel OCCT 内核\n * @param a 实体 A\n * @param b 实体 B\n * @returns 融合后的实体\n */\nexport function fuseBrep(\n kernel: BrepEngineApi,\n a: BrepHandle,\n b: BrepHandle,\n): BrepHandle {\n return kernel.fuse(a, b)\n}\n\n/**\n * BREP 布尔差集:使用 OCCT cut(BRepAlgoAPI_Cut)。\n *\n * @param kernel OCCT 内核\n * @param a 基体\n * @param b 工具(从基体中减去)\n * @returns 切割后的实体\n */\nexport function cutBrep(\n kernel: BrepEngineApi,\n a: BrepHandle,\n b: BrepHandle,\n): BrepHandle {\n return kernel.cut(a, b)\n}\n\n/**\n * BREP 布尔交集:使用 OCCT common(BRepAlgoAPI_Common)。\n *\n * @param kernel OCCT 内核\n * @param a 实体 A\n * @param b 实体 B\n * @returns 交集实体\n */\nexport function commonBrep(\n kernel: BrepEngineApi,\n a: BrepHandle,\n b: BrepHandle,\n): BrepHandle {\n return kernel.common(a, b)\n}\n\n// ─── 钻孔操作 ───\n\n/** drillBrep 的参数 */\nexport interface DrillBrepParams {\n /** 孔直径 */\n diameter: number\n /** 孔深度(0 = 通孔) */\n depth: number\n /** 孔位置(世界空间) */\n position: Vec3\n /** 钻孔方向(世界空间,指向材料内部) */\n direction: Vec3\n /** 面法向(世界空间) */\n faceNormal: Vec3\n /** 孔类型 */\n holeType?: 'simple' | 'screw'\n}\n\n/**\n * BREP 钻孔:创建圆柱工具实体并用 OCCT cut 减去。\n *\n * 仅支持圆柱孔(holeType='simple')。\n * 螺丝孔(holeType='screw')由调用方判断为 mesh-only,触发 BREP 链断裂。\n *\n * 通孔(depth=0):创建一个足够长的圆柱体穿透整个零件。\n * 盲孔(depth>0):创建指定深度的圆柱体。\n *\n * @param kernel OCCT 内核\n * @param solid 目标实体\n * @param params 钻孔参数\n * @returns 钻孔后的实体\n */\n/** 钻孔几何参数(由 `DrillBrepParams` 推导;roleTable 路径与 `drillBrep` 共用同一份几何,避免重复计算)。 */\nexport interface DrillGeometry {\n readonly radius: number\n readonly holeHeight: number\n readonly holeCenter: THREE.Vector3\n readonly direction: THREE.Vector3\n}\n\n/** 从 `DrillBrepParams` 推导钻孔几何(孔中心/高度/轴向)。供 `drillBrep` 与 role-table 路径共用。\n * @param kernel - BREP 引擎接口\n * @param solid - 待钻孔实体(用于 bbox 推导通孔高度)\n * @param params - 钻孔参数(直径/深度/位置/方向/面法向)\n * @returns 钻孔几何(半径/高度/中心/轴向)\n */\nexport function computeDrillGeometry(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: DrillBrepParams,\n): DrillGeometry {\n const radius = params.diameter / 2\n const direction = new THREE.Vector3(...params.direction).normalize()\n // 确保方向指向材料内部\n const faceNormal = new THREE.Vector3(...params.faceNormal)\n if (direction.dot(faceNormal) > 0) {\n direction.negate()\n }\n\n // 计算孔的高度和中心\n const bbox = getSolidBoundingBox(kernel, solid)\n const bboxSize = new THREE.Vector3(\n bbox.max[0] - bbox.min[0],\n bbox.max[1] - bbox.min[1],\n bbox.max[2] - bbox.min[2],\n )\n const bboxMax = Math.max(bboxSize.x, bboxSize.y, bboxSize.z)\n\n let holeHeight: number\n let holeCenter: THREE.Vector3\n const pos = new THREE.Vector3(...params.position)\n\n // 通孔:depth <= 0(契约:depth<=0 表示通孔,与 mesh 路径 `depth>0 ? 'blind':'through'` 一致)。\n // ⚠️ 只判 `=== 0` 会让 depth<0 落入盲孔分支 → safeDepth=0 → 零高圆柱 → OCCT transform 崩溃。\n if (params.depth <= 0) {\n const d = direction.clone().normalize()\n const bbMin = new THREE.Vector3(bbox.min[0], bbox.min[1], bbox.min[2])\n const bbMax = new THREE.Vector3(bbox.max[0], bbox.max[1], bbox.max[2])\n\n let tNear = -Infinity\n let tFar = Infinity\n const axes: Array<[number, number, number, number]> = [\n [0, d.x, bbMin.x, bbMax.x],\n [1, d.y, bbMin.y, bbMax.y],\n [2, d.z, bbMin.z, bbMax.z],\n ]\n const pArr = [pos.x, pos.y, pos.z]\n for (const [axis, di, lo, hi] of axes) {\n const pi = pArr[axis]\n if (Math.abs(di) > 1e-12) {\n const t1 = (lo - pi) / di\n const t2 = (hi - pi) / di\n tNear = Math.max(tNear, Math.min(t1, t2))\n tFar = Math.min(tFar, Math.max(t1, t2))\n } else if (pi < lo || pi > hi) {\n // 与 slab 平行且在外部 — 无交点(与 mesh 行为一致:几乎不钻孔)\n tNear = 0\n tFar = 0\n }\n }\n if (!isFinite(tNear) || !isFinite(tFar) || tFar < tNear) {\n // 不穿过 bbox:与 mesh 一致,只留 0.2mm 微小孔\n holeHeight = 0.2\n holeCenter = pos.clone()\n } else {\n holeHeight = tFar - tNear + 0.2\n holeCenter = pos.clone().add(direction.clone().normalize().multiplyScalar((tNear + tFar) / 2))\n }\n } else {\n // 盲孔:深度钳制到 bboxMax(与 mesh cad-core/drill.ts 一致)\n const safeDepth = Math.max(0, Math.min(params.depth, bboxMax))\n holeHeight = safeDepth\n holeCenter = pos.clone().add(direction.clone().normalize().multiplyScalar(safeDepth / 2))\n }\n\n return { radius, holeHeight, holeCenter, direction }\n}\n\n/** 由钻孔几何构造刀具实体(圆柱,旋转 + 平移到孔位)。调用方负责 release。\n * @param kernel - BREP 引擎接口\n * @param geom - 钻孔几何(半径/高度/中心/轴向)\n * @returns 刀具实体(BrepHandle,调用方负责 release)\n */\nexport function buildDrillToolSolid(kernel: BrepEngineApi, geom: DrillGeometry): BrepHandle {\n const cylinder = kernel.makeCylinder(geom.radius, geom.holeHeight)\n\n // 计算从 Z 轴到 direction 的旋转\n const zAxis = new THREE.Vector3(0, 0, 1)\n const quat = new THREE.Quaternion().setFromUnitVectors(zAxis, geom.direction)\n const rotMatrix = new THREE.Matrix4().makeRotationFromQuaternion(quat)\n\n // 平移矩阵:到孔中心,并减去 height/2(因为圆柱从 Z=0 开始)\n const transMatrix = new THREE.Matrix4().makeTranslation(\n geom.holeCenter.x,\n geom.holeCenter.y,\n geom.holeCenter.z,\n )\n // 组合:先旋转,再平移\n const finalMatrix = new THREE.Matrix4().multiplyMatrices(transMatrix, rotMatrix)\n // 还需要补偿圆柱的起始位置(从 Z=0 开始 → 需要先下移 height/2)\n const offsetMatrix = new THREE.Matrix4().makeTranslation(0, 0, -geom.holeHeight / 2)\n const fullMatrix = new THREE.Matrix4().multiplyMatrices(finalMatrix, offsetMatrix)\n\n const toolSolid = kernel.transform(cylinder, matrixToArray(fullMatrix))\n kernel.release(cylinder)\n return toolSolid\n}\n\n/** 在实体上钻一个孔:由参数推导几何、构造刀具实体并做布尔差。\n * @param kernel - BREP 引擎接口\n * @param solid - 待钻孔实体\n * @param params - 钻孔参数(直径/深度/位置/方向/面法向)\n * @returns 钻孔后的实体(BrepHandle)\n */\nexport function drillBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: DrillBrepParams,\n): BrepHandle {\n const geom = computeDrillGeometry(kernel, solid, params)\n const toolSolid = buildDrillToolSolid(kernel, geom)\n try {\n const result = kernel.cut(solid, toolSolid)\n kernel.release(toolSolid)\n return result\n } catch (err) {\n kernel.release(toolSolid)\n throw new Error(`[drillBrep] OCCT cut failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n}\n\n// ─── 分割操作 ───\n\n/** splitBrep 的参数 */\nexport interface SplitBrepParams {\n /** 切割平面法线 */\n normal: Vec3\n /**\n * 切割平面位置:世界系平面方程 d 值(n·x = planeDistance)。\n * 与 planeCenter 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeDistance?: number\n /**\n * 切割平面位置:世界坐标点(平面中心)。\n * 与 planeDistance 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeCenter?: Vec3\n}\n\n/** splitBrep 的结果 */\nexport interface SplitBrepResult {\n /** 法线正方向的半部分 */\n front: BrepHandle\n /** 法线负方向的半部分 */\n back: BrepHandle\n}\n\n/**\n * BREP 平面分割:使用 OCCT cut + common 实现平面分割。\n *\n * 仅支持平面分割(cutMode='plane')。\n * 燕尾/定位销/直榫等复杂分割由 joinery-brep.ts 处理。\n *\n * 实现方式:\n * 1. 创建一个大的半空间盒子(法线正方向一侧)\n * 2. common(solid, box) → 法线正方向的半部分\n * 3. cut(solid, box) → 法线负方向的半部分\n *\n * @param kernel OCCT 内核\n * @param solid 目标实体\n * @param params 分割参数\n * @returns 两个半部分\n */\nexport function splitBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: SplitBrepParams,\n): SplitBrepResult {\n const bbox = getSolidBoundingBox(kernel, solid)\n const bboxSize = new THREE.Vector3(\n bbox.max[0] - bbox.min[0],\n bbox.max[1] - bbox.min[1],\n bbox.max[2] - bbox.min[2],\n )\n const bboxMax = Math.max(bboxSize.x, bboxSize.y, bboxSize.z)\n\n // 创建一个大的盒子代表法线正方向的半空间\n const normal = new THREE.Vector3(...params.normal).normalize()\n const halfSize = bboxMax * 3 // 足够大\n\n // 先在局部坐标系(Z 轴 = 法线方向)创建盒子\n // 然后旋转到世界坐标系\n const zAxis = new THREE.Vector3(0, 0, 1)\n const quat = new THREE.Quaternion().setFromUnitVectors(zAxis, normal)\n const rotMatrix = new THREE.Matrix4().makeRotationFromQuaternion(quat)\n\n // 在局部坐标系中,盒子从 Z=0(切割平面)延伸到 Z=halfSize\n const localBox = kernel.makeBoxFromCorners(\n { x: -halfSize, y: -halfSize, z: 0 },\n { x: halfSize, y: halfSize, z: halfSize },\n )\n\n // 计算切割平面的世界坐标原点(planeCenter / planeDistance 二选一必填,\n // 都缺省直接报错,不隐式回退 bbox 中心)\n const planeOrigin = resolvePlaneOrigin(normal, params.planeCenter, params.planeDistance)\n\n const transMatrix = new THREE.Matrix4().makeTranslation(\n planeOrigin.x,\n planeOrigin.y,\n planeOrigin.z,\n )\n const finalMatrix = new THREE.Matrix4().multiplyMatrices(transMatrix, rotMatrix)\n\n const halfSpaceBox = kernel.transform(localBox, matrixToArray(finalMatrix))\n kernel.release(localBox)\n\n try {\n // P2(2026-10-06):规避 occt-wasm 在 Chrome worker 下 common 对\"平面退化 BOP\"\n // 挂死(common(solid, 半边盒) 不稳定;cut 稳定——drill 打孔 cut 在 worker 正常)。\n // 差集对偶:back(负侧)= solid - 正盒;front(正侧)= solid - 负盒。\n // 数学等价于 common/cut(盒覆盖 solid 全尺寸,边界同为切割平面),node 探针验证\n // 三角化结果与原实现一致。common 保留在 node/非 worker 环境的回退不可行——\n // 静态行为应一致,故统一走两 cut。\n const back = kernel.cut(solid, halfSpaceBox)\n // 负盒:local 系 z ∈ [-halfSize, 0],同 finalMatrix(平面沿 -normal 方向扩展)\n const localBoxNeg = kernel.makeBoxFromCorners(\n { x: -halfSize, y: -halfSize, z: -halfSize },\n { x: halfSize, y: halfSize, z: 0 },\n )\n const negBox = kernel.transform(localBoxNeg, matrixToArray(finalMatrix))\n kernel.release(localBoxNeg)\n const front = kernel.cut(solid, negBox)\n kernel.release(halfSpaceBox)\n kernel.release(negBox)\n return { front, back }\n } catch (err) {\n kernel.release(halfSpaceBox)\n throw new Error(`[splitBrep] OCCT split failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n}\n\n// ─── 拉伸操作 ───\n\n/** extrudeBrep 的参数 */\nexport interface ExtrudeBrepParams {\n /** 拉伸法线方向 */\n normal: Vec3\n /**\n * 切割平面位置:世界系平面方程 d 值(n·x = planeDistance)。\n * 与 planeCenter 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeDistance?: number\n /**\n * 切割平面位置:世界坐标点(平面中心)。\n * 与 planeDistance 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeCenter?: Vec3\n /** 拉伸长度 */\n length: number\n /** 拉伸模式 */\n mode?: 'centered' | 'forward' | 'backward'\n}\n\n/** 从 planeCenter / planeDistance 收敛出切割平面上的一个点(planeOrigin)。 */\nfunction resolvePlaneOrigin(\n normal: THREE.Vector3,\n planeCenter?: Vec3,\n planeDistance?: number,\n): THREE.Vector3 {\n if (planeCenter !== undefined) {\n return new THREE.Vector3(...planeCenter)\n }\n if (planeDistance !== undefined) {\n // 平面方程 n·x = d 上的点:取法线上距原点 d 处(n 为单位向量)\n return normal.clone().multiplyScalar(planeDistance)\n }\n throw new Error(\n '[extrudeBrep] plane location missing: provide planeCenter or planeDistance (implicit bbox-center fallback is forbidden)',\n )\n}\n\n/**\n * BREP 拉伸:在切割平面处将实体切开,中段沿法线拉伸 length,三段 fuse。\n *\n * 实现方式:\n * 1. 用平面分割得到 front + back\n * 2. 获取截面线(section edges → wire → face)\n * 3. 沿法线拉伸截面 face → 中段实体\n * 4. fuse(front, extruded, back)\n *\n * 如果截面无法构建 face(开放线框等),抛出错误由调用方处理为链断裂。\n *\n * @param kernel OCCT 内核\n * @param solid 目标实体\n * @param params 拉伸参数\n * @returns 拉伸后的实体\n */\nexport function extrudeBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: ExtrudeBrepParams,\n): BrepHandle {\n const mode = params.mode ?? 'centered'\n const normal = new THREE.Vector3(...params.normal).normalize()\n const length = params.length\n\n // 1. 确定切割平面位置(世界系,来源静态:planeCenter 或 planeDistance,\n // 都缺省直接报错,不隐式回退 bbox 中心)\n const planeOrigin = resolvePlaneOrigin(normal, params.planeCenter, params.planeDistance)\n\n // 2. 分割实体\n const splitResult = splitBrep(kernel, solid, {\n normal: [normal.x, normal.y, normal.z],\n planeCenter: [planeOrigin.x, planeOrigin.y, planeOrigin.z],\n })\n\n // 3. 获取截面\n // 使用 section 获取切割平面与实体的交线\n const bbox = getSolidBoundingBox(kernel, solid)\n const zAxis = new THREE.Vector3(0, 0, 1)\n const quat = new THREE.Quaternion().setFromUnitVectors(zAxis, normal)\n const rotMatrix = new THREE.Matrix4().makeRotationFromQuaternion(quat)\n const transMatrix = new THREE.Matrix4().makeTranslation(\n planeOrigin.x,\n planeOrigin.y,\n planeOrigin.z,\n )\n const planeMatrix = new THREE.Matrix4().multiplyMatrices(transMatrix, rotMatrix)\n\n // 创建一个大的矩形面作为切割平面\n const bboxSize = new THREE.Vector3(\n bbox.max[0] - bbox.min[0],\n bbox.max[1] - bbox.min[1],\n bbox.max[2] - bbox.min[2],\n )\n const planeSize = Math.max(bboxSize.x, bboxSize.y, bboxSize.z) * 3\n const planeRect = kernel.makeRectangle(planeSize, planeSize)\n // makeRectangle creates a face from [0,0] to [width,height] — center it at origin first\n const centerMatrix = new THREE.Matrix4().makeTranslation(-planeSize / 2, -planeSize / 2, 0)\n const centeredRect = kernel.transform(planeRect, matrixToArray(centerMatrix))\n kernel.release(planeRect)\n const planeFace = kernel.transform(centeredRect, matrixToArray(planeMatrix))\n kernel.release(centeredRect)\n\n // 获取截面边(occt-only 平台面,D3)。BrepHandle(branded number)与\n // occt-wasm ShapeHandle 运行时同构,品牌转换只发生在平台边界;转回 BrepHandle\n // 后继续用 L1 面(getSubShapes/makeWire/extrude)。\n const sectionEdges = getOcctKernel().section(\n solid as unknown as ShapeHandle,\n planeFace as unknown as ShapeHandle,\n ) as unknown as BrepHandle\n kernel.release(planeFace)\n\n // 4. 构建截面 wire → face → 拉伸\n let extrudedSolid: BrepHandle\n try {\n // 尝试从截面边构建 wire\n const subShapes = kernel.getSubShapes(sectionEdges, 'edge')\n if (subShapes.length === 0) {\n kernel.release(sectionEdges)\n kernel.release(splitResult.front)\n kernel.release(splitResult.back)\n throw new Error('no section edges from plane intersection')\n }\n\n const wire = kernel.makeWire(subShapes)\n const face = kernel.makeFace(wire)\n kernel.release(wire)\n\n // 计算拉伸向量\n let extrudeVec: THREE.Vector3\n if (mode === 'centered') {\n extrudeVec = normal.clone().multiplyScalar(length)\n } else if (mode === 'forward') {\n extrudeVec = normal.clone().multiplyScalar(length)\n } else {\n // backward\n extrudeVec = normal.clone().multiplyScalar(-length)\n }\n\n extrudedSolid = kernel.extrude(face, extrudeVec.x, extrudeVec.y, extrudeVec.z)\n kernel.release(face)\n kernel.release(sectionEdges)\n } catch {\n // 截面构建失败 — 释放资源并抛出\n if (sectionEdges) kernel.release(sectionEdges)\n kernel.release(splitResult.front)\n kernel.release(splitResult.back)\n throw new Error('[extrudeBrep] failed to build extrusion from section')\n }\n\n // 5. 中段落位补偿(修复 centered 模式中空 / 开壳)\n //\n // 切割平面位于 planeOrigin,splitBrep 产出的 front/back 其切面恰好在 planeOrigin。\n // - forward:front 偏移 +L、back 偏移 0 → 中段(从 planeOrigin 沿 +normal 拉伸 L,\n // 底面在 planeOrigin)的顶面(planeOrigin+L)正好接 front 底面,无需位移。\n // - backward:front 偏移 0、back 偏移 -L → 中段(沿 -normal 拉伸 L,顶在 planeOrigin)\n // 底面(planeOrigin-L)正好接 back 顶面,无需位移。\n // - centered:front 偏移 +L/2、back 偏移 -L/2,二者之间让出 L 的缝隙;但中段默认\n // 从 planeOrigin 沿 +normal 拉伸 L,落在 planeOrigin→planeOrigin+L,与 back 顶面\n // (planeOrigin-L/2) 和 front 底面 (planeOrigin+L/2) 各错开 L/2,形成两道 L/2 的缝隙\n // → fuse 后实体开壳 / 中空。必须对中段额外沿 -normal 位移 L/2,使其落在\n // planeOrigin-L/2 → planeOrigin+L/2,正好填补缝隙。\n const middleOffset = mode === 'centered' ? -length / 2 : 0\n if (middleOffset !== 0) {\n const translatedMiddle = kernel.translate(\n extrudedSolid,\n normal.x * middleOffset,\n normal.y * middleOffset,\n normal.z * middleOffset,\n )\n kernel.release(extrudedSolid)\n extrudedSolid = translatedMiddle\n }\n\n // 6. 计算各段位置\n let frontOffset: number\n let backOffset: number\n if (mode === 'centered') {\n frontOffset = length / 2\n backOffset = -length / 2\n } else if (mode === 'forward') {\n frontOffset = length\n backOffset = 0\n } else {\n frontOffset = 0\n backOffset = -length\n }\n\n // 平移 front 和 back\n const frontTranslated = kernel.translate(\n splitResult.front,\n normal.x * frontOffset,\n normal.y * frontOffset,\n normal.z * frontOffset,\n )\n kernel.release(splitResult.front)\n\n const backTranslated = kernel.translate(\n splitResult.back,\n normal.x * backOffset,\n normal.y * backOffset,\n normal.z * backOffset,\n )\n kernel.release(splitResult.back)\n\n // 7. Fuse 三段\n let result: BrepHandle\n try {\n const fused1 = kernel.fuse(frontTranslated, extrudedSolid)\n kernel.release(frontTranslated)\n kernel.release(extrudedSolid)\n result = kernel.fuse(fused1, backTranslated)\n kernel.release(fused1)\n kernel.release(backTranslated)\n } catch (err) {\n kernel.release(frontTranslated)\n kernel.release(extrudedSolid)\n kernel.release(backTranslated)\n throw new Error(`[extrudeBrep] fuse failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n\n return result\n}\n\n// ─── STEP/BREP 导入操作 ───\n\n/**\n * 单零件导入的 STEP 颜色挂载(P2,方案 §5 STEP 行)。\n *\n * `getSolidColorsOrdered`(stepColorParser)把 STYLED_ITEM → COLOUR_RGB 引用链\n * 解析为按 MANIFOLD_SOLID_BREP 文件序的颜色数组;该序与 OCCT\n * `getSubShapes(compound,'solid')` 一致(stepColorParser 注释),因此取 `[0]`\n * 即「loadBrep 单零件收敛取第一个 solid」的颜色,语义对齐。\n *\n * 宽容兼容外部数据:BREP(CASCADE Topology 文本)无颜色概念直接跳过;STEP\n * 文本无 `STYLED_ITEM` 早退(零额外开销);引用链缺失/未知预定义色返回 null,\n * 一律不挂外观、不抛错(AGENTS.md 全局铁律:不得以内部严格性拒收正常文件)。\n */\nfunction applyFirstStepColor(shape: Shape, buffer: ArrayBuffer): Shape {\n const head = new TextDecoder('utf-8').decode(buffer.slice(0, 64))\n if (head.includes('CASCADE Topology')) return shape\n const text = new TextDecoder('utf-8').decode(buffer)\n if (!text.includes('STYLED_ITEM')) return shape\n const c0 = getSolidColorsOrdered(text)[0]\n if (c0) shape.appearance = { color: [c0[0], c0[1], c0[2]] }\n return shape\n}\n\n/**\n * BREP-native STEP 导入:使用 OCCT kernel.importStep 导入 STEP 文件为精确实体。\n *\n * 与 mesh 路径(cad-core/io.ts importFile → loadFormat → meshes)对照:\n * - mesh 路径:STEP → 三角网格,丢弃 OCCT BrepHandle\n * - BREP 路径:STEP → kernel.importStep → 保留 BrepHandle,同时三角化为显示 mesh\n *\n * 导入的 solid 存入 brepChain.solidCache,后续操作(drillBrep/splitBrep 等)\n * 将其作为\"基座特征\"进行精确运算。\n *\n * **设计决策(I5 不准合并;fileid-container-and-nesting §5.4 单零件收敛)**:\n * - 单 solid STEP:`importStep` 返回 Compound 包裹(顶层是 `TopoDS_Compound`,\n * 内含 1 个 `TopoDS_Solid`)。此处**解包**返回真实 Solid(`solids[0]`),\n * 下游 `isValid`/编辑/导出都针对真实实体。\n * - 多 solid STEP:**只支持单零件**(§5.4)——降级取**第一个** solid 返回(单一\n * 非复合 Shape),并回传 `multiSolidCount`(≥2 表示本文件被降级取件,由 load op\n * 登记\"多零件降级\" pending,宿主据此弹警告 §5.4:166)。取件点唯一,逐 part 拆\n * 分只发生在 load op 内部,宿主不再发多条 load。\n * - **不调用 `kernel.isValid`**:`importStep` 对单 solid STEP 也返回 Compound 包裹,\n * `isValid(compound)` 返回 false(Compound 不是 Solid),这会误杀合法 STEP。\n * 合法性判据改为 `getSubShapes(top, 'solid').length >= 1`(含 ≥1 个 solid 即合法),\n * 与装配路径 `walkLabel` 一致。\n *\n * @param kernel the initialized OCCT kernel.\n * @param buffer the raw STEP file bytes (a text-encoded ArrayBuffer).\n * @param brepChain optional - caches the tessellated BrepMeshResult when provided.\n * @param stmtId optional - the part this solid belongs to, paired with brepChain as the cache key.\n * @param opts optional - `allowNonSolid` relaxes the solid requirement so\n * a frozen wireframe/surface asset (a Draft wire, a face, a\n * shell) can be imported as addressable geometry. Callers\n * must decide this STATICALLY from the asset itself (see\n * `brepTextHasSolid`), never by retrying after a failure.\n * @returns { solid: the OCCT solid handle, shape: the display tessellated mesh,\n * multiSolidCount: total solids declared when > 1 (single-part take-first) }\n */\nexport function loadBrep(\n kernel: BrepEngineApi,\n buffer: ArrayBuffer,\n brepChain?: BrepChainState,\n stmtId?: PartName,\n opts?: { allowNonSolid?: boolean },\n): { solid: BrepHandle; shape: Shape; multiSolidCount?: number } {\n // BREP 文件(CASCADE Topology 文本格式)必须用 kernel.fromBREP 解析;\n // 误用 STEP 解析器(importStep)读 BREP 会抛 \"failed to read STEP data\"。\n const decoder = new TextDecoder('utf-8')\n const head = decoder.decode(buffer.slice(0, 64))\n const top = head.includes('CASCADE Topology')\n ? kernel.fromBREP(decoder.decode(buffer))\n : kernel.importStep(buffer)\n\n // 校验:含至少一个 solid 子形即合法(不调用 isValid,见上文设计决策)\n const solids = kernel.getSubShapes(top, 'solid')\n if (solids.length < 1) {\n // 非实体导入(allowNonSolid):冻结资产是 wireframe/surface(Draft 线/面/壳)\n // 时仍可作为可寻址几何导入——顶点/边/线/面/壳都算有内容。此时返回 top 本身,\n // 它独立持有几何,不能释放。\n // 注意:这类 Shape 进不了布尔运算(OCCT fuse/cut 抛 \"boolean operation\n // failed\"),调用方必须自己保证它只流向变换/聚合。\n if (opts?.allowNonSolid && hasAnyTopology(kernel, top)) {\n const shape = solidToShape(kernel, top, undefined, brepChain, stmtId)\n return { solid: top, shape: applyFirstStepColor(shape, buffer) }\n }\n kernel.release(top)\n throw new Error(\n `[loadBrep] imported shape contains no solid sub-shapes ` +\n `(solidCount=0) — wireframe/surface/invalid shapes are not supported ` +\n `unless allowNonSolid is set`\n )\n }\n\n // 单 solid:解包返回真实 Solid(非 Compound 包裹)\n if (solids.length === 1) {\n const realSolid = solids[0]\n kernel.release(top) // 释放 Compound 包裹,realSolid 独立持有\n const shape = solidToShape(kernel, realSolid, undefined, brepChain, stmtId)\n return { solid: realSolid, shape: applyFirstStepColor(shape, buffer) }\n }\n\n // 多 solid(§5.4 单零件收敛):只支持单零件 —— 降级取**第一个** solid,\n // 返回单一非复合 Shape,并回传 multiSolidCount(≥2 表示本文件被降级取件,\n // 由 `cad.load` op 登记\"多零件降级\" pending,宿主据零件数弹警告 §5.4:166)。\n // 取件点唯一:多零件拆分只发生在 load op 内部,宿主不再逐 part 拆、不再发\n // 多条 load。`solids` 是 kernel.getSubShapes(top,'solid') 的内核枚举序;对同一\n // import 路径、同一 OCCT 版本,该序是确定性的,故\"第一个\"可复现(红线 7)。\n const first = solids[0]\n if (!first) {\n kernel.release(top)\n throw new Error(`[loadBrep] imported shape has 0 solid sub-shapes`)\n }\n // 释放其余多余子形句柄(first 独立持有几何,剩下的子是 top 的子引用)\n for (const s of solids.slice(1)) {\n try { kernel.release(s) } catch { /* already released */ }\n }\n kernel.release(top) // 释放 Compound 包裹,first 独立持有(同单 solid 模式)\n const shape = solidToShape(kernel, first, undefined, brepChain, stmtId)\n return { solid: first, shape: applyFirstStepColor(shape, buffer), multiSolidCount: solids.length }\n}\n\n/** Sub-shape kinds that make an imported shape \"addressable but not a solid\". */\nconst NON_SOLID_KINDS = ['vertex', 'edge', 'wire', 'face', 'shell'] as const\n\n/**\n * Does a freshly imported shape hold any sub-shape at all?\n *\n * Guards the `allowNonSolid` path: a file whose TShapes table is empty (or that\n * holds only a bare compound with nothing inside) is a broken asset, not a\n * wireframe one, and must still fail loudly.\n *\n * @param kernel - the initialized OCCT kernel.\n * @param top - the imported top-level shape handle.\n * @returns true when at least one non-solid sub-shape exists.\n */\nfunction hasAnyTopology(kernel: BrepEngineApi, top: BrepHandle): boolean {\n return NON_SOLID_KINDS.some((kind) => kernel.getSubShapes(top, kind).length > 0)\n}\n\n// ─── 多零件 STEP 装配导入(P0,方案 2026-10-06-step-3mf-multipart-import-plan.md §5.3)───\n\n/** 多零件 STEP 导入中的一个零件(几何 + solid 句柄 + 身份)。 */\nexport interface LoadBrepAssemblyPart {\n /** 零件序号(0 起,DFS 声明序)。 */\n index: number\n /** 零件名(XCAF label;无则回退 `imported:<index>`)。 */\n name: string\n /** 显示色 sRGB 0..1,无则 null。 */\n color: [number, number, number] | null\n /** 三角化显示 mesh。 */\n shape: Shape\n /** OCCT solid 句柄(已烘 location;生命周期归 brepChain,调用方经 fromBrep 绑定)。 */\n solid: BrepHandle\n}\n\n/**\n * BREP-native 多零件 STEP 导入(XCAF 装配树 → 逐零件 Shape + 装配层级)。\n *\n * 与 `loadBrep`(单零件收敛,§5.4 旧行为)对照:loadBrepAssembly 走\n * `importAssemblyFromStep`(XCAF),返回**全部**叶零件(DFS 声明序)与装配树。\n *\n * - 装配树叶子 = 零件;合成节点(syntheticGroup:单一产品含多 MANIFOLD_SOLID_BREP)\n * 如实表达为中间节点;\n * - 无装配结构的单叶文件 → 1 个零件、无 assembly(行为与现状单零件一致);\n * - 句柄互通(T0):`importAssemblyFromStep` 内部用 initOcctWasm() 全局单例内核,\n * 与注入的 `BrepEngineApi`(createOcctPrimitives 包装同一单例)句柄数值互通——\n * 探针见 test/brep/load-brep-assembly.test.ts;\n * - 释放:装配节点句柄已由 walkLabel 释放,叶句柄随返回 parts 交给调用方\n * (fromBrep 绑定后归 brepChain 管理,不在此释放)。\n *\n * @param kernel - the initialized OCCT kernel (L1 contract face).\n * @param buffer - the raw STEP file bytes (text-encoded ArrayBuffer; stpz\n * unzipping is the caller's job — faijs never unzips implicitly).\n * @returns 全部零件 + 装配层级(多叶时)+ 叶数(>1 时)。\n */\nexport async function loadBrepAssembly(\n kernel: BrepEngineApi,\n buffer: ArrayBuffer,\n): Promise<{ parts: LoadBrepAssemblyPart[]; assembly?: ImportAssemblyNode; multiSolidCount?: number }> {\n const nodes = await importAssemblyFromStep(buffer)\n const leaves = collectLeafParts(nodes)\n\n // DFS 声明序:leaf 序 = parts 序 = ImportModel.parts.index。\n // 实体校验(与 load op「要求导入物含实体」契约一致):leaf 必须持有实体\n // (自身是 solid,或 label 内含 solid);空 label / wireframe 零件跳过,\n // 全部跳过则报错(不静默回退)。parts 下标保持连续(0..N-1)。\n const leafIndex = new Map<AssemblyPartNode, number>()\n const parts: LoadBrepAssemblyPart[] = []\n for (const leaf of leaves) {\n if (!leaf.shapeHandle || !leafHasSolid(kernel, leaf.shapeHandle)) continue\n const idx = parts.length\n leafIndex.set(leaf, idx)\n const h = leaf.shapeHandle as unknown as BrepHandle\n parts.push({\n index: idx,\n name: leaf.name || `imported:${idx}`,\n color: leaf.color,\n shape: solidToShape(kernel, h),\n solid: h,\n })\n }\n\n // 无叶零件(空/异常/纯 wireframe 文件)→ 报错暴露(不静默回退)。\n if (parts.length === 0) {\n throw new Error('[loadBrepAssembly] imported STEP contains no solid leaf parts')\n }\n\n const assembly = toImportAssemblyNode(nodes, leafIndex)\n return {\n parts,\n ...(assembly ? { assembly } : {}),\n ...(parts.length > 1 ? { multiSolidCount: parts.length } : {}),\n }\n}\n\n/**\n * leaf 是否持有实体(loadBrepAssembly 实体校验):自身是 solid(syntheticGroup\n * 拆出的单个 solid 句柄),或 label compound 内含 solid。getSubShapes 的引用\n * 句柄须立即 release(walkLabel 只释放了它自己取的副本)。\n */\nfunction leafHasSolid(kernel: BrepEngineApi, h: ShapeHandle): boolean {\n const bh = h as unknown as BrepHandle\n if (kernel.isSolid(bh)) return true\n const solids = kernel.getSubShapes(bh, 'solid')\n const n = solids.length\n for (const s of solids) kernel.release(s)\n return n > 0\n}\n\n/**\n * XCAF 装配树 → ImportAssemblyNode(DFS 序与 parts 一致)。\n *\n * - 单根且根为叶(无装配结构)→ undefined(单零件路径,与现状一致);\n * - 单根装配 → 该根;\n * - 多根 → 合成虚拟根 `{ name: 'imported' }`(确定性结构名,非零件身份)。\n */\nfunction toImportAssemblyNode(\n nodes: AssemblyPartNode[],\n leafIndex: Map<AssemblyPartNode, number>,\n): ImportAssemblyNode | undefined {\n if (nodes.length === 0) return undefined\n const convert = (node: AssemblyPartNode): ImportAssemblyNode => {\n if (node.children.length === 0) {\n const idx = leafIndex.get(node)\n return { name: node.name, ...(idx !== undefined ? { partIndex: idx } : {}) }\n }\n return { name: node.name, children: node.children.map(convert) }\n }\n if (nodes.length === 1) {\n const root = convert(nodes[0])\n // 单根且根为叶(无装配结构)→ 不表达装配层级\n if (root.partIndex !== undefined) return undefined\n return root\n }\n return { name: 'imported', children: nodes.map(convert) }\n}\n\n// ─── 辅助函数 ───\n\n/**\n * Convert a THREE.Matrix4 into the 3x4 row-major array (12 doubles) the OCCT\n * transform expects.\n *\n * OCCT transform accepts [r00,r01,r02,tx, r10,r11,r12,ty, r20,r21,r22,tz].\n * @param matrix - the source matrix to convert.\n * @returns the 3x4 row-major array of 12 doubles.\n */\nexport function matrixToArray(matrix: THREE.Matrix4): number[] {\n const e = matrix.elements\n // THREE.Matrix4 是 column-major,OCCT 需要 row-major 3x4\n return [\n e[0], e[4], e[8], e[12],\n e[1], e[5], e[9], e[13],\n e[2], e[6], e[10], e[14],\n ]\n}\n"]}
1
+ {"version":3,"file":"brep-ops.js","sourceRoot":"","sources":["../../src/brep/brep-ops.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 核心 BREP 操作 — 使用 OCCT 精确实体运算\n *\n * @platform occt — 本文件 import occt-kernel:`extrudeBrep` 用原生 `section`\n * (BRepAlgoAPI_Section,occt-only,L1 只有 sectionByPlane)构造截面 → 守卫①\n * 要求平台 import 自证身份。本文件是内部工具面(非 op 文件),文件级标注即满足\n * 守卫;调用方 op 若经本文件触达 occt-only 能力,须在 defineOp 声明 engines\n * (extrudeBrep 的 section 仅 occt 路径可达,brepkit 下由调用方引擎声明拦截)。\n *\n * See docs/api-contract.md §8 (dual-path geometry contract: BREP / Mesh).\n *\n * 与 mesh 路径(transform.ts / boolean/ / drill.ts / split.ts / extrude.ts)对照:\n * - mesh 路径:消费 Shape(三角网格),走 manifold-3d(mesh-CSG)\n * - BREP 路径:消费 BrepHandle(OCCT 实体句柄),走 OCCT 精确布尔/变换\n *\n * 所有函数都是纯函数(可 import occtWasmKernel,不读 store)。\n * 输入输出均为 OCCT BrepHandle,调用方负责句柄生命周期。\n *\n * 坐标系:Z-up、毫米,与 mesh 路径一致。\n */\n\nimport { Vec3 as Vec3C, Mat4, Euler, Quat } from '../math3d'\nimport type { BrepHandle, BrepMeshResult } from './engine/types'\nimport type { BrepEngineApi } from './engine/primitives'\nimport {\n getOcctKernel,\n importAssemblyFromStep,\n collectLeafParts,\n type ShapeHandle,\n type AssemblyPartNode,\n} from '../occt-kernel/occtKernel'\nimport { getSolidColorsOrdered } from '../occt-kernel/stepColorParser'\nimport type { Shape, Vec3 } from '../mesh/types'\nimport type { ImportAssemblyNode } from '../mesh/import-model'\nimport type { BrepChainState } from './brep-chain'\nimport type { PartName } from '../identity'\nimport { getSolidBoundingBox } from './brep-utils'\nimport { getTessellation, type TessellationDensity } from '../runtime-state'\n\n// ─── 通用工具 ───\n\n/**\n * 将 OCCT solid 三角化为 Shape(供显示用)。\n *\n * 如果传入 brepChain + stmtId,同时把完整 BrepMeshResult(含 faceGroups)缓存到\n * brepChain.meshShapeCache,供 buildBrepTopology 复用——确保拓扑 mesh 与显示 mesh\n * 完全一致(规则 1:拓扑数据生成所使用的 mesh,必须是当前用户看到的 mesh)。\n *\n * @param kernel the initialized OCCT kernel.\n * @param solid the CAD solid handle.\n * @param segments optional tessellation segment count (affects precision).\n * @param brepChain optional - caches the BrepMeshResult when provided.\n * @param partName optional - the part this solid belongs to, paired with brepChain as the cache key.\n * @param defaultDeflection optional - per-call deflection fallback when `segments` is absent\n * (wins over the global tessellation knob; explicit `segments` still wins over both).\n * @returns the tessellated Shape.\n */\nexport function solidToShape(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n segments?: number,\n brepChain?: BrepChainState,\n partName?: PartName,\n defaultDeflection?: TessellationDensity,\n): Shape {\n // Deflection precedence: explicit segments > per-call defaultDeflection > global\n // tessellation (host-tunable via createRuntime, proposal 2026-10-07).\n const fallback = defaultDeflection ?? getTessellation()\n const angularDeflection = segments\n ? (2 * Math.PI) / Math.max(3, segments)\n : fallback.angularDeflection\n const mesh: BrepMeshResult = kernel.meshShape(solid, {\n linearDeflection: fallback.linearDeflection,\n angularDeflection,\n })\n\n // 规则 1:缓存完整 BrepMeshResult(含 faceGroups),供 buildBrepTopology 复用\n if (brepChain?.meshShapeCache && partName) {\n brepChain.meshShapeCache.set(partName, mesh)\n }\n\n return {\n positions: new Float32Array(mesh.positions),\n indices: new Uint32Array(mesh.indices),\n }\n}\n\n// ─── 变换操作 ───\n\n/**\n * BREP 平移:使用 OCCT translate(精确,不损失几何精度)。\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param offset 平移量 [dx, dy, dz]\n * @returns 新实体(调用方负责释放输入实体)\n */\nexport function translateBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n offset: Vec3,\n): BrepHandle {\n return kernel.translate(solid, offset[0], offset[1], offset[2])\n}\n\n/**\n * BREP 旋转:使用 OCCT transform(3x4 仿射矩阵)。\n *\n * 与 mesh 路径 rotate_euler(shape, angles, pivot?) 一致:\n * - angles 为 XYZ 欧拉角(角度制)\n * - pivot 为旋转中心(可选,默认原点)\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param angles XYZ 欧拉角(角度制)\n * @param pivot 旋转中心(可选)\n * @returns 新实体\n */\nexport function rotateBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n angles: Vec3,\n pivot?: Vec3,\n): BrepHandle {\n const euler = new Euler(\n (angles[0] * Math.PI) / 180,\n (angles[1] * Math.PI) / 180,\n (angles[2] * Math.PI) / 180,\n )\n const matrix = new Mat4().makeRotationFromEuler(euler)\n if (pivot) {\n matrix.premultiply(new Mat4().makeTranslation(pivot[0], pivot[1], pivot[2]))\n matrix.multiply(new Mat4().makeTranslation(-pivot[0], -pivot[1], -pivot[2]))\n }\n return kernel.transform(solid, matrixToArray(matrix))\n}\n\n/**\n * 判定 3×4 行主序仿射矩阵的线性部分是否为**相似变换**(旋转/反射 × 等比缩放)——\n * 即 `gp_Trsf` 能精确承载、`kernel.transform`(BRepBuilderAPI_Transform)唯一\n * 正确处理的那一类。\n *\n * 判据必须用**相对**容差,不能像 2026-10-07 之前那样用绝对容差:\n * GOTCHA(2026-10-07,openscad example023 parity)——一个 60° 刚体旋转只要按\n * 7 位小数打印(`0.8660254`),行范数就是 `0.99999999645`(与 1 相差 3.6e-9)。\n * 绝对容差 1e-9 会判定 `|‖row2‖ − ‖row0‖| = 3.6e-9 > 1e-9` ⇒ 把这个**纯旋转**\n * 判成\"非相似\",从而错误地走进 `generalTransform`;而 occt 侧 `gp_GTrsf` 路径在\n * **已三角化**的形状上会重复计入被平移面的 TopLoc(顶盖 z 由 5 变 10,绕过在\n * `occt-kernel/occt-primitives.ts` 的 `generalTransform` 适配层,本层不感知)。\n * 相对容差 1e-6 覆盖 7 位小数打印精度,同时仍能区分真正的非等比缩放\n * (如 z×2.5 行范数相差 2.5 倍)。正交性同用 1e-6:7 位小数打印的旋转,行点积\n * 误差上界约 2e-7。\n *\n * @param m12 - 3×4 行主序矩阵(12 元素:`[r00,r01,r02,tx, r10,r11,r12,ty, r20,r21,r22,tz]`)。\n * @returns `true` 当且仅当线性部分可逆且为相似变换。\n */\nexport function isSimilarityAffine(m12: readonly number[]): boolean {\n const s0 = Math.hypot(m12[0]!, m12[1]!, m12[2]!)\n const s1 = Math.hypot(m12[4]!, m12[5]!, m12[6]!)\n const s2 = Math.hypot(m12[8]!, m12[9]!, m12[10]!)\n if (!(s0 > 1e-12) || !(s1 > 1e-12) || !(s2 > 1e-12)) return false\n const REL = 1e-6\n if (Math.abs(s1 - s0) > REL * s0 || Math.abs(s2 - s0) > REL * s0) return false\n const dot = (r: number, c: number): number =>\n m12[r * 4]! * m12[c * 4]! + m12[r * 4 + 1]! * m12[c * 4 + 1]! + m12[r * 4 + 2]! * m12[c * 4 + 2]!\n return (\n Math.abs(dot(0, 1)) <= REL * s0 * s1 &&\n Math.abs(dot(0, 2)) <= REL * s0 * s2 &&\n Math.abs(dot(1, 2)) <= REL * s1 * s2\n )\n}\n\n/**\n * 施加 3×4 行主序仿射矩阵,按矩阵类别选**唯一正确**的 OCCT 路径。\n *\n * 两条路径的差异是**正确性**而不只是性能:\n * - 相似(旋转/反射 × 等比缩放)→ `kernel.transform`(BRepBuilderAPI_Transform)。\n * - 其余(非等比缩放、错切)→ `kernel.generalTransform`(gp_GTrsf)。\n *\n * GOTCHA(2026-10-07):occt 的 `generalTransform` 在**已经三角化过**的形状上会\n * 重复计入被平移面的 TopLoc(精确 z∈[0,5],网格顶盖却落在 z=10;非等比 z×2.5 时\n * 12.5 vs 17.5)。该缺陷是 **occt 专属**(brepkit 的 GTrsf 路径干净),因此绕过\n * **不在本层**——本层是引擎中立分派,让每个引擎都为 occt 的毛病多付一次句柄分配\n * 是错的(还会扰动 brepkit 的 `cut` bbox,见 multi-engine-op-parity)。\n * 绕过落在 occt 适配层:`occt-kernel/occt-primitives.ts` 的 `generalTransform`\n * 先 `copy` 再变换。`kernel.transform` 无此问题,故相似矩阵不付这份深拷贝成本。\n *\n * 反向陷阱:把非相似矩阵交给 `kernel.transform` 是**静默错误**——OCCT 会按\n * `det^(1/3)` 取等比因子近似(实测 z×2.5 被当成 1.357 倍等比缩放)。所以分类\n * 判据既不能过严(把刚体旋转推给 GTrsf),也不能过宽(把非等比缩放塞给 Trsf)。\n *\n * @param kernel - L1 引擎句柄。\n * @param solid - 输入实体(不被消费、不被释放;调用方保留其所有权)。\n * @param m12 - 3×4 行主序矩阵(12 元素)。\n * @returns 变换后的新实体(调用方负责释放)。\n */\nexport function applyAffineBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n m12: readonly number[],\n): BrepHandle {\n if (isSimilarityAffine(m12)) return kernel.transform(solid, m12 as number[])\n return kernel.generalTransform(solid, m12 as number[])\n}\n\n/**\n * BREP 缩放:使用 OCCT transform(3x4 仿射矩阵)。\n *\n * 与 mesh 路径 scale(P6 §4.6)一致:\n * - factor 为 number(均匀缩放)或 Vec3 [sx, sy, sz](非均匀)\n * - center 为缩放不动点(p' = center + S·(p − center));缺省 [0,0,0](原点),\n * 与早期 brepjs `scale(shape, factor, { center? })` 的默认一致。\n *\n * 路径分派交给 {@link applyAffineBrep}:等比走 `transform`,非等比走\n * `generalTransform`(gp_Trsf 表达不了非等比)。注意判据是**数值**相似性而非\n * 因子逐分量相等——`[1, 1, 1+1e-9]` 这种数值上就是等比,归 `transform` 一侧。\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param factor 缩放因子\n * @param center 缩放不动点(可选,默认原点)\n * @returns 新实体\n */\nexport function scaleBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n factor: number | Vec3,\n center?: Vec3,\n): BrepHandle {\n const f = typeof factor === 'number' ? [factor, factor, factor] : factor\n const scale = new Mat4().makeScale(f[0], f[1], f[2])\n // T(c)·S·T(−c):不动点为 center;缺省时退化为原点缩放(现状行为)。\n const matrix = center\n ? new Mat4()\n .makeTranslation(center[0], center[1], center[2])\n .multiply(scale)\n .multiply(new Mat4().makeTranslation(-center[0], -center[1], -center[2]))\n : scale\n return applyAffineBrep(kernel, solid, matrixToArray(matrix))\n}\n\n// ─── 装配变换 ───\n\n/**\n * BREP 版 applyTransform:与 mesh ops/assemble.ts 的 applyTransform 同语义(绕 pivot 旋转 + 平移)。\n *\n * 数学公式:p' = R·(p − pivot) + pivot + translation\n * 等价 Matrix4 = T(pivot) · R · T(−pivot) · T(translation)\n *\n * 用四元数而非欧拉角,是因为装配变换源是 api/assembly 的四元数;\n * 转欧拉会引入顺序/万向锁歧义。与 mesh applyTransform 顶点公式完全等价。\n *\n * @param kernel OCCT 内核\n * @param solid 输入实体\n * @param quaternion 旋转四元数 [x, y, z, w]\n * @param pivot 旋转中心\n * @param translation 平移量\n * @returns 新实体(调用方负责释放输入实体)\n */\nexport function applyTransformBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n quaternion: [number, number, number, number],\n pivot: [number, number, number],\n translation: [number, number, number],\n): BrepHandle {\n const rotation = new Mat4().makeRotationFromQuaternion(\n new Quat(quaternion[0], quaternion[1], quaternion[2], quaternion[3]),\n )\n // T(translation) · T(pivot) · R · T(-pivot) = T(pivot+translation) · R · T(-pivot)\n // 先绕 pivot 旋转,再平移 translation(与 mesh 路径 applyTransform 一致)\n const matrix = new Mat4()\n .makeTranslation(pivot[0] + translation[0], pivot[1] + translation[1], pivot[2] + translation[2])\n .multiply(rotation)\n .multiply(new Mat4().makeTranslation(-pivot[0], -pivot[1], -pivot[2]))\n return kernel.transform(solid, matrixToArray(matrix))\n}\n\n// ─── 布尔操作 ───\n\n/**\n * BREP 布尔并集:使用 OCCT fuse(BRepAlgoAPI_Fuse)。\n *\n * @param kernel OCCT 内核\n * @param a 实体 A\n * @param b 实体 B\n * @returns 融合后的实体\n */\nexport function fuseBrep(\n kernel: BrepEngineApi,\n a: BrepHandle,\n b: BrepHandle,\n): BrepHandle {\n return kernel.fuse(a, b)\n}\n\n/**\n * BREP 布尔差集:使用 OCCT cut(BRepAlgoAPI_Cut)。\n *\n * @param kernel OCCT 内核\n * @param a 基体\n * @param b 工具(从基体中减去)\n * @returns 切割后的实体\n */\nexport function cutBrep(\n kernel: BrepEngineApi,\n a: BrepHandle,\n b: BrepHandle,\n): BrepHandle {\n return kernel.cut(a, b)\n}\n\n/**\n * BREP 布尔交集:使用 OCCT common(BRepAlgoAPI_Common)。\n *\n * @param kernel OCCT 内核\n * @param a 实体 A\n * @param b 实体 B\n * @returns 交集实体\n */\nexport function commonBrep(\n kernel: BrepEngineApi,\n a: BrepHandle,\n b: BrepHandle,\n): BrepHandle {\n return kernel.common(a, b)\n}\n\n// ─── 钻孔操作 ───\n\n/** drillBrep 的参数 */\nexport interface DrillBrepParams {\n /** 孔直径 */\n diameter: number\n /** 孔深度(0 = 通孔) */\n depth: number\n /** 孔位置(世界空间) */\n position: Vec3\n /** 钻孔方向(世界空间,指向材料内部) */\n direction: Vec3\n /** 面法向(世界空间) */\n faceNormal: Vec3\n /** 孔类型 */\n holeType?: 'simple' | 'screw'\n}\n\n/**\n * BREP 钻孔:创建圆柱工具实体并用 OCCT cut 减去。\n *\n * 仅支持圆柱孔(holeType='simple')。\n * 螺丝孔(holeType='screw')由调用方判断为 mesh-only,触发 BREP 链断裂。\n *\n * 通孔(depth=0):创建一个足够长的圆柱体穿透整个零件。\n * 盲孔(depth>0):创建指定深度的圆柱体。\n *\n * @param kernel OCCT 内核\n * @param solid 目标实体\n * @param params 钻孔参数\n * @returns 钻孔后的实体\n */\n/** 钻孔几何参数(由 `DrillBrepParams` 推导;roleTable 路径与 `drillBrep` 共用同一份几何,避免重复计算)。 */\nexport interface DrillGeometry {\n readonly radius: number\n readonly holeHeight: number\n readonly holeCenter: Vec3C\n readonly direction: Vec3C\n}\n\n/** 从 `DrillBrepParams` 推导钻孔几何(孔中心/高度/轴向)。供 `drillBrep` 与 role-table 路径共用。\n * @param kernel - BREP 引擎接口\n * @param solid - 待钻孔实体(用于 bbox 推导通孔高度)\n * @param params - 钻孔参数(直径/深度/位置/方向/面法向)\n * @returns 钻孔几何(半径/高度/中心/轴向)\n */\nexport function computeDrillGeometry(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: DrillBrepParams,\n): DrillGeometry {\n const radius = params.diameter / 2\n const direction = new Vec3C(...params.direction).normalize()\n // 确保方向指向材料内部\n const faceNormal = new Vec3C(...params.faceNormal)\n if (direction.dot(faceNormal) > 0) {\n direction.negate()\n }\n\n // 计算孔的高度和中心\n const bbox = getSolidBoundingBox(kernel, solid)\n const bboxSize = new Vec3C(\n bbox.max[0] - bbox.min[0],\n bbox.max[1] - bbox.min[1],\n bbox.max[2] - bbox.min[2],\n )\n const bboxMax = Math.max(bboxSize.x, bboxSize.y, bboxSize.z)\n\n let holeHeight: number\n let holeCenter: Vec3C\n const pos = new Vec3C(...params.position)\n\n // 通孔:depth <= 0(契约:depth<=0 表示通孔,与 mesh 路径 `depth>0 ? 'blind':'through'` 一致)。\n // ⚠️ 只判 `=== 0` 会让 depth<0 落入盲孔分支 → safeDepth=0 → 零高圆柱 → OCCT transform 崩溃。\n if (params.depth <= 0) {\n const d = direction.clone().normalize()\n const bbMin = new Vec3C(bbox.min[0], bbox.min[1], bbox.min[2])\n const bbMax = new Vec3C(bbox.max[0], bbox.max[1], bbox.max[2])\n\n let tNear = -Infinity\n let tFar = Infinity\n const axes: Array<[number, number, number, number]> = [\n [0, d.x, bbMin.x, bbMax.x],\n [1, d.y, bbMin.y, bbMax.y],\n [2, d.z, bbMin.z, bbMax.z],\n ]\n const pArr = [pos.x, pos.y, pos.z]\n for (const [axis, di, lo, hi] of axes) {\n const pi = pArr[axis]\n if (Math.abs(di) > 1e-12) {\n const t1 = (lo - pi) / di\n const t2 = (hi - pi) / di\n tNear = Math.max(tNear, Math.min(t1, t2))\n tFar = Math.min(tFar, Math.max(t1, t2))\n } else if (pi < lo || pi > hi) {\n // 与 slab 平行且在外部 — 无交点(与 mesh 行为一致:几乎不钻孔)\n tNear = 0\n tFar = 0\n }\n }\n if (!isFinite(tNear) || !isFinite(tFar) || tFar < tNear) {\n // 不穿过 bbox:与 mesh 一致,只留 0.2mm 微小孔\n holeHeight = 0.2\n holeCenter = pos.clone()\n } else {\n holeHeight = tFar - tNear + 0.2\n holeCenter = pos.clone().add(direction.clone().normalize().multiplyScalar((tNear + tFar) / 2))\n }\n } else {\n // 盲孔:深度钳制到 bboxMax(与 mesh cad-core/drill.ts 一致)\n const safeDepth = Math.max(0, Math.min(params.depth, bboxMax))\n holeHeight = safeDepth\n holeCenter = pos.clone().add(direction.clone().normalize().multiplyScalar(safeDepth / 2))\n }\n\n return { radius, holeHeight, holeCenter, direction }\n}\n\n/** 由钻孔几何构造刀具实体(圆柱,旋转 + 平移到孔位)。调用方负责 release。\n * @param kernel - BREP 引擎接口\n * @param geom - 钻孔几何(半径/高度/中心/轴向)\n * @returns 刀具实体(BrepHandle,调用方负责 release)\n */\nexport function buildDrillToolSolid(kernel: BrepEngineApi, geom: DrillGeometry): BrepHandle {\n const cylinder = kernel.makeCylinder(geom.radius, geom.holeHeight)\n\n // 计算从 Z 轴到 direction 的旋转\n const zAxis = new Vec3C(0, 0, 1)\n const quat = new Quat().setFromUnitVectors(zAxis, geom.direction)\n const rotMatrix = new Mat4().makeRotationFromQuaternion(quat)\n\n // 平移矩阵:到孔中心,并减去 height/2(因为圆柱从 Z=0 开始)\n const transMatrix = new Mat4().makeTranslation(\n geom.holeCenter.x,\n geom.holeCenter.y,\n geom.holeCenter.z,\n )\n // 组合:先旋转,再平移\n const finalMatrix = new Mat4().multiplyMatrices(transMatrix, rotMatrix)\n // 还需要补偿圆柱的起始位置(从 Z=0 开始 → 需要先下移 height/2)\n const offsetMatrix = new Mat4().makeTranslation(0, 0, -geom.holeHeight / 2)\n const fullMatrix = new Mat4().multiplyMatrices(finalMatrix, offsetMatrix)\n\n const toolSolid = kernel.transform(cylinder, matrixToArray(fullMatrix))\n kernel.release(cylinder)\n return toolSolid\n}\n\n/** 在实体上钻一个孔:由参数推导几何、构造刀具实体并做布尔差。\n * @param kernel - BREP 引擎接口\n * @param solid - 待钻孔实体\n * @param params - 钻孔参数(直径/深度/位置/方向/面法向)\n * @returns 钻孔后的实体(BrepHandle)\n */\nexport function drillBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: DrillBrepParams,\n): BrepHandle {\n const geom = computeDrillGeometry(kernel, solid, params)\n const toolSolid = buildDrillToolSolid(kernel, geom)\n try {\n const result = kernel.cut(solid, toolSolid)\n kernel.release(toolSolid)\n return result\n } catch (err) {\n kernel.release(toolSolid)\n throw new Error(`[drillBrep] OCCT cut failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n}\n\n// ─── 分割操作 ───\n\n/** splitBrep 的参数 */\nexport interface SplitBrepParams {\n /** 切割平面法线 */\n normal: Vec3\n /**\n * 切割平面位置:世界系平面方程 d 值(n·x = planeDistance)。\n * 与 planeCenter 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeDistance?: number\n /**\n * 切割平面位置:世界坐标点(平面中心)。\n * 与 planeDistance 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeCenter?: Vec3\n}\n\n/** splitBrep 的结果 */\nexport interface SplitBrepResult {\n /** 法线正方向的半部分 */\n front: BrepHandle\n /** 法线负方向的半部分 */\n back: BrepHandle\n}\n\n/**\n * BREP 平面分割:使用 OCCT cut + common 实现平面分割。\n *\n * 仅支持平面分割(cutMode='plane')。\n * 燕尾/定位销/直榫等复杂分割由 joinery-brep.ts 处理。\n *\n * 实现方式:\n * 1. 创建一个大的半空间盒子(法线正方向一侧)\n * 2. common(solid, box) → 法线正方向的半部分\n * 3. cut(solid, box) → 法线负方向的半部分\n *\n * @param kernel OCCT 内核\n * @param solid 目标实体\n * @param params 分割参数\n * @returns 两个半部分\n */\nexport function splitBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: SplitBrepParams,\n): SplitBrepResult {\n const bbox = getSolidBoundingBox(kernel, solid)\n const bboxSize = new Vec3C(\n bbox.max[0] - bbox.min[0],\n bbox.max[1] - bbox.min[1],\n bbox.max[2] - bbox.min[2],\n )\n const bboxMax = Math.max(bboxSize.x, bboxSize.y, bboxSize.z)\n\n // 创建一个大的盒子代表法线正方向的半空间\n const normal = new Vec3C(...params.normal).normalize()\n const halfSize = bboxMax * 3 // 足够大\n\n // 先在局部坐标系(Z 轴 = 法线方向)创建盒子\n // 然后旋转到世界坐标系\n const zAxis = new Vec3C(0, 0, 1)\n const quat = new Quat().setFromUnitVectors(zAxis, normal)\n const rotMatrix = new Mat4().makeRotationFromQuaternion(quat)\n\n // 在局部坐标系中,盒子从 Z=0(切割平面)延伸到 Z=halfSize\n const localBox = kernel.makeBoxFromCorners(\n { x: -halfSize, y: -halfSize, z: 0 },\n { x: halfSize, y: halfSize, z: halfSize },\n )\n\n // 计算切割平面的世界坐标原点(planeCenter / planeDistance 二选一必填,\n // 都缺省直接报错,不隐式回退 bbox 中心)\n const planeOrigin = resolvePlaneOrigin(normal, params.planeCenter, params.planeDistance)\n\n const transMatrix = new Mat4().makeTranslation(\n planeOrigin.x,\n planeOrigin.y,\n planeOrigin.z,\n )\n const finalMatrix = new Mat4().multiplyMatrices(transMatrix, rotMatrix)\n\n const halfSpaceBox = kernel.transform(localBox, matrixToArray(finalMatrix))\n kernel.release(localBox)\n\n try {\n // P2(2026-10-06):规避 occt-wasm 在 Chrome worker 下 common 对\"平面退化 BOP\"\n // 挂死(common(solid, 半边盒) 不稳定;cut 稳定——drill 打孔 cut 在 worker 正常)。\n // 差集对偶:back(负侧)= solid - 正盒;front(正侧)= solid - 负盒。\n // 数学等价于 common/cut(盒覆盖 solid 全尺寸,边界同为切割平面),node 探针验证\n // 三角化结果与原实现一致。common 保留在 node/非 worker 环境的回退不可行——\n // 静态行为应一致,故统一走两 cut。\n const back = kernel.cut(solid, halfSpaceBox)\n // 负盒:local 系 z ∈ [-halfSize, 0],同 finalMatrix(平面沿 -normal 方向扩展)\n const localBoxNeg = kernel.makeBoxFromCorners(\n { x: -halfSize, y: -halfSize, z: -halfSize },\n { x: halfSize, y: halfSize, z: 0 },\n )\n const negBox = kernel.transform(localBoxNeg, matrixToArray(finalMatrix))\n kernel.release(localBoxNeg)\n const front = kernel.cut(solid, negBox)\n kernel.release(halfSpaceBox)\n kernel.release(negBox)\n return { front, back }\n } catch (err) {\n kernel.release(halfSpaceBox)\n throw new Error(`[splitBrep] OCCT split failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n}\n\n// ─── 拉伸操作 ───\n\n/** extrudeBrep 的参数 */\nexport interface ExtrudeBrepParams {\n /** 拉伸法线方向 */\n normal: Vec3\n /**\n * 切割平面位置:世界系平面方程 d 值(n·x = planeDistance)。\n * 与 planeCenter 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeDistance?: number\n /**\n * 切割平面位置:世界坐标点(平面中心)。\n * 与 planeDistance 二选一必填;都缺省时抛错,不隐式回退。\n */\n planeCenter?: Vec3\n /** 拉伸长度 */\n length: number\n /** 拉伸模式 */\n mode?: 'centered' | 'forward' | 'backward'\n}\n\n/** 从 planeCenter / planeDistance 收敛出切割平面上的一个点(planeOrigin)。 */\nfunction resolvePlaneOrigin(\n normal: Vec3C,\n planeCenter?: Vec3,\n planeDistance?: number,\n): Vec3C {\n if (planeCenter !== undefined) {\n return new Vec3C(...planeCenter)\n }\n if (planeDistance !== undefined) {\n // 平面方程 n·x = d 上的点:取法线上距原点 d 处(n 为单位向量)\n return normal.clone().multiplyScalar(planeDistance)\n }\n throw new Error(\n '[extrudeBrep] plane location missing: provide planeCenter or planeDistance (implicit bbox-center fallback is forbidden)',\n )\n}\n\n/**\n * BREP 拉伸:在切割平面处将实体切开,中段沿法线拉伸 length,三段 fuse。\n *\n * 实现方式:\n * 1. 用平面分割得到 front + back\n * 2. 获取截面线(section edges → wire → face)\n * 3. 沿法线拉伸截面 face → 中段实体\n * 4. fuse(front, extruded, back)\n *\n * 如果截面无法构建 face(开放线框等),抛出错误由调用方处理为链断裂。\n *\n * @param kernel OCCT 内核\n * @param solid 目标实体\n * @param params 拉伸参数\n * @returns 拉伸后的实体\n */\nexport function extrudeBrep(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n params: ExtrudeBrepParams,\n): BrepHandle {\n const mode = params.mode ?? 'centered'\n const normal = new Vec3C(...params.normal).normalize()\n const length = params.length\n\n // 1. 确定切割平面位置(世界系,来源静态:planeCenter 或 planeDistance,\n // 都缺省直接报错,不隐式回退 bbox 中心)\n const planeOrigin = resolvePlaneOrigin(normal, params.planeCenter, params.planeDistance)\n\n // 2. 分割实体\n const splitResult = splitBrep(kernel, solid, {\n normal: [normal.x, normal.y, normal.z],\n planeCenter: [planeOrigin.x, planeOrigin.y, planeOrigin.z],\n })\n\n // 3. 获取截面\n // 使用 section 获取切割平面与实体的交线\n const bbox = getSolidBoundingBox(kernel, solid)\n const zAxis = new Vec3C(0, 0, 1)\n const quat = new Quat().setFromUnitVectors(zAxis, normal)\n const rotMatrix = new Mat4().makeRotationFromQuaternion(quat)\n const transMatrix = new Mat4().makeTranslation(\n planeOrigin.x,\n planeOrigin.y,\n planeOrigin.z,\n )\n const planeMatrix = new Mat4().multiplyMatrices(transMatrix, rotMatrix)\n\n // 创建一个大的矩形面作为切割平面\n const bboxSize = new Vec3C(\n bbox.max[0] - bbox.min[0],\n bbox.max[1] - bbox.min[1],\n bbox.max[2] - bbox.min[2],\n )\n const planeSize = Math.max(bboxSize.x, bboxSize.y, bboxSize.z) * 3\n const planeRect = kernel.makeRectangle(planeSize, planeSize)\n // makeRectangle creates a face from [0,0] to [width,height] — center it at origin first\n const centerMatrix = new Mat4().makeTranslation(-planeSize / 2, -planeSize / 2, 0)\n const centeredRect = kernel.transform(planeRect, matrixToArray(centerMatrix))\n kernel.release(planeRect)\n const planeFace = kernel.transform(centeredRect, matrixToArray(planeMatrix))\n kernel.release(centeredRect)\n\n // 获取截面边(occt-only 平台面,D3)。BrepHandle(branded number)与\n // occt-wasm ShapeHandle 运行时同构,品牌转换只发生在平台边界;转回 BrepHandle\n // 后继续用 L1 面(getSubShapes/makeWire/extrude)。\n const sectionEdges = getOcctKernel().section(\n solid as unknown as ShapeHandle,\n planeFace as unknown as ShapeHandle,\n ) as unknown as BrepHandle\n kernel.release(planeFace)\n\n // 4. 构建截面 wire → face → 拉伸\n let extrudedSolid: BrepHandle\n try {\n // 尝试从截面边构建 wire\n const subShapes = kernel.getSubShapes(sectionEdges, 'edge')\n if (subShapes.length === 0) {\n kernel.release(sectionEdges)\n kernel.release(splitResult.front)\n kernel.release(splitResult.back)\n throw new Error('no section edges from plane intersection')\n }\n\n const wire = kernel.makeWire(subShapes)\n const face = kernel.makeFace(wire)\n kernel.release(wire)\n\n // 计算拉伸向量\n let extrudeVec: Vec3C\n if (mode === 'centered') {\n extrudeVec = normal.clone().multiplyScalar(length)\n } else if (mode === 'forward') {\n extrudeVec = normal.clone().multiplyScalar(length)\n } else {\n // backward\n extrudeVec = normal.clone().multiplyScalar(-length)\n }\n\n extrudedSolid = kernel.extrude(face, extrudeVec.x, extrudeVec.y, extrudeVec.z)\n kernel.release(face)\n kernel.release(sectionEdges)\n } catch {\n // 截面构建失败 — 释放资源并抛出\n if (sectionEdges) kernel.release(sectionEdges)\n kernel.release(splitResult.front)\n kernel.release(splitResult.back)\n throw new Error('[extrudeBrep] failed to build extrusion from section')\n }\n\n // 5. 中段落位补偿(修复 centered 模式中空 / 开壳)\n //\n // 切割平面位于 planeOrigin,splitBrep 产出的 front/back 其切面恰好在 planeOrigin。\n // - forward:front 偏移 +L、back 偏移 0 → 中段(从 planeOrigin 沿 +normal 拉伸 L,\n // 底面在 planeOrigin)的顶面(planeOrigin+L)正好接 front 底面,无需位移。\n // - backward:front 偏移 0、back 偏移 -L → 中段(沿 -normal 拉伸 L,顶在 planeOrigin)\n // 底面(planeOrigin-L)正好接 back 顶面,无需位移。\n // - centered:front 偏移 +L/2、back 偏移 -L/2,二者之间让出 L 的缝隙;但中段默认\n // 从 planeOrigin 沿 +normal 拉伸 L,落在 planeOrigin→planeOrigin+L,与 back 顶面\n // (planeOrigin-L/2) 和 front 底面 (planeOrigin+L/2) 各错开 L/2,形成两道 L/2 的缝隙\n // → fuse 后实体开壳 / 中空。必须对中段额外沿 -normal 位移 L/2,使其落在\n // planeOrigin-L/2 → planeOrigin+L/2,正好填补缝隙。\n const middleOffset = mode === 'centered' ? -length / 2 : 0\n if (middleOffset !== 0) {\n const translatedMiddle = kernel.translate(\n extrudedSolid,\n normal.x * middleOffset,\n normal.y * middleOffset,\n normal.z * middleOffset,\n )\n kernel.release(extrudedSolid)\n extrudedSolid = translatedMiddle\n }\n\n // 6. 计算各段位置\n let frontOffset: number\n let backOffset: number\n if (mode === 'centered') {\n frontOffset = length / 2\n backOffset = -length / 2\n } else if (mode === 'forward') {\n frontOffset = length\n backOffset = 0\n } else {\n frontOffset = 0\n backOffset = -length\n }\n\n // 平移 front 和 back\n const frontTranslated = kernel.translate(\n splitResult.front,\n normal.x * frontOffset,\n normal.y * frontOffset,\n normal.z * frontOffset,\n )\n kernel.release(splitResult.front)\n\n const backTranslated = kernel.translate(\n splitResult.back,\n normal.x * backOffset,\n normal.y * backOffset,\n normal.z * backOffset,\n )\n kernel.release(splitResult.back)\n\n // 7. Fuse 三段\n let result: BrepHandle\n try {\n const fused1 = kernel.fuse(frontTranslated, extrudedSolid)\n kernel.release(frontTranslated)\n kernel.release(extrudedSolid)\n result = kernel.fuse(fused1, backTranslated)\n kernel.release(fused1)\n kernel.release(backTranslated)\n } catch (err) {\n kernel.release(frontTranslated)\n kernel.release(extrudedSolid)\n kernel.release(backTranslated)\n throw new Error(`[extrudeBrep] fuse failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err })\n }\n\n return result\n}\n\n// ─── STEP/BREP 导入操作 ───\n\n/**\n * 单零件导入的 STEP 颜色挂载(P2,方案 §5 STEP 行)。\n *\n * `getSolidColorsOrdered`(stepColorParser)把 STYLED_ITEM → COLOUR_RGB 引用链\n * 解析为按 MANIFOLD_SOLID_BREP 文件序的颜色数组;该序与 OCCT\n * `getSubShapes(compound,'solid')` 一致(stepColorParser 注释),因此取 `[0]`\n * 即「loadBrep 单零件收敛取第一个 solid」的颜色,语义对齐。\n *\n * 宽容兼容外部数据:BREP(CASCADE Topology 文本)无颜色概念直接跳过;STEP\n * 文本无 `STYLED_ITEM` 早退(零额外开销);引用链缺失/未知预定义色返回 null,\n * 一律不挂外观、不抛错(AGENTS.md 全局铁律:不得以内部严格性拒收正常文件)。\n */\nfunction applyFirstStepColor(shape: Shape, buffer: ArrayBuffer): Shape {\n const head = new TextDecoder('utf-8').decode(buffer.slice(0, 64))\n if (head.includes('CASCADE Topology')) return shape\n const text = new TextDecoder('utf-8').decode(buffer)\n if (!text.includes('STYLED_ITEM')) return shape\n const c0 = getSolidColorsOrdered(text)[0]\n if (c0) shape.appearance = { color: [c0[0], c0[1], c0[2]] }\n return shape\n}\n\n/**\n * BREP-native STEP 导入:使用 OCCT kernel.importStep 导入 STEP 文件为精确实体。\n *\n * 与 mesh 路径(cad-core/io.ts importFile → loadFormat → meshes)对照:\n * - mesh 路径:STEP → 三角网格,丢弃 OCCT BrepHandle\n * - BREP 路径:STEP → kernel.importStep → 保留 BrepHandle,同时三角化为显示 mesh\n *\n * 导入的 solid 存入 brepChain.solidCache,后续操作(drillBrep/splitBrep 等)\n * 将其作为\"基座特征\"进行精确运算。\n *\n * **设计决策(I5 不准合并;fileid-container-and-nesting §5.4 单零件收敛)**:\n * - 单 solid STEP:`importStep` 返回 Compound 包裹(顶层是 `TopoDS_Compound`,\n * 内含 1 个 `TopoDS_Solid`)。此处**解包**返回真实 Solid(`solids[0]`),\n * 下游 `isValid`/编辑/导出都针对真实实体。\n * - 多 solid STEP:**只支持单零件**(§5.4)——降级取**第一个** solid 返回(单一\n * 非复合 Shape),并回传 `multiSolidCount`(≥2 表示本文件被降级取件,由 load op\n * 登记\"多零件降级\" pending,宿主据此弹警告 §5.4:166)。取件点唯一,逐 part 拆\n * 分只发生在 load op 内部,宿主不再发多条 load。\n * - **不调用 `kernel.isValid`**:`importStep` 对单 solid STEP 也返回 Compound 包裹,\n * `isValid(compound)` 返回 false(Compound 不是 Solid),这会误杀合法 STEP。\n * 合法性判据改为 `getSubShapes(top, 'solid').length >= 1`(含 ≥1 个 solid 即合法),\n * 与装配路径 `walkLabel` 一致。\n *\n * @param kernel the initialized OCCT kernel.\n * @param buffer the raw STEP file bytes (a text-encoded ArrayBuffer).\n * @param brepChain optional - caches the tessellated BrepMeshResult when provided.\n * @param stmtId optional - the part this solid belongs to, paired with brepChain as the cache key.\n * @param opts optional - `allowNonSolid` relaxes the solid requirement so\n * a frozen wireframe/surface asset (a Draft wire, a face, a\n * shell) can be imported as addressable geometry. Callers\n * must decide this STATICALLY from the asset itself (see\n * `brepTextHasSolid`), never by retrying after a failure.\n * @returns { solid: the OCCT solid handle, shape: the display tessellated mesh,\n * multiSolidCount: total solids declared when > 1 (single-part take-first) }\n */\nexport function loadBrep(\n kernel: BrepEngineApi,\n buffer: ArrayBuffer,\n brepChain?: BrepChainState,\n stmtId?: PartName,\n opts?: { allowNonSolid?: boolean },\n): { solid: BrepHandle; shape: Shape; multiSolidCount?: number } {\n // BREP 文件(CASCADE Topology 文本格式)必须用 kernel.fromBREP 解析;\n // 误用 STEP 解析器(importStep)读 BREP 会抛 \"failed to read STEP data\"。\n const decoder = new TextDecoder('utf-8')\n const head = decoder.decode(buffer.slice(0, 64))\n const top = head.includes('CASCADE Topology')\n ? kernel.fromBREP(decoder.decode(buffer))\n : kernel.importStep(buffer)\n\n // 校验:含至少一个 solid 子形即合法(不调用 isValid,见上文设计决策)\n const solids = kernel.getSubShapes(top, 'solid')\n if (solids.length < 1) {\n // 非实体导入(allowNonSolid):冻结资产是 wireframe/surface(Draft 线/面/壳)\n // 时仍可作为可寻址几何导入——顶点/边/线/面/壳都算有内容。此时返回 top 本身,\n // 它独立持有几何,不能释放。\n // 注意:这类 Shape 进不了布尔运算(OCCT fuse/cut 抛 \"boolean operation\n // failed\"),调用方必须自己保证它只流向变换/聚合。\n if (opts?.allowNonSolid && hasAnyTopology(kernel, top)) {\n const shape = solidToShape(kernel, top, undefined, brepChain, stmtId)\n return { solid: top, shape: applyFirstStepColor(shape, buffer) }\n }\n kernel.release(top)\n throw new Error(\n `[loadBrep] imported shape contains no solid sub-shapes ` +\n `(solidCount=0) — wireframe/surface/invalid shapes are not supported ` +\n `unless allowNonSolid is set`\n )\n }\n\n // 单 solid:解包返回真实 Solid(非 Compound 包裹)\n if (solids.length === 1) {\n const realSolid = solids[0]\n kernel.release(top) // 释放 Compound 包裹,realSolid 独立持有\n const shape = solidToShape(kernel, realSolid, undefined, brepChain, stmtId)\n return { solid: realSolid, shape: applyFirstStepColor(shape, buffer) }\n }\n\n // 多 solid(§5.4 单零件收敛):只支持单零件 —— 降级取**第一个** solid,\n // 返回单一非复合 Shape,并回传 multiSolidCount(≥2 表示本文件被降级取件,\n // 由 `cad.load` op 登记\"多零件降级\" pending,宿主据零件数弹警告 §5.4:166)。\n // 取件点唯一:多零件拆分只发生在 load op 内部,宿主不再逐 part 拆、不再发\n // 多条 load。`solids` 是 kernel.getSubShapes(top,'solid') 的内核枚举序;对同一\n // import 路径、同一 OCCT 版本,该序是确定性的,故\"第一个\"可复现(红线 7)。\n const first = solids[0]\n if (!first) {\n kernel.release(top)\n throw new Error(`[loadBrep] imported shape has 0 solid sub-shapes`)\n }\n // 释放其余多余子形句柄(first 独立持有几何,剩下的子是 top 的子引用)\n for (const s of solids.slice(1)) {\n try { kernel.release(s) } catch { /* already released */ }\n }\n kernel.release(top) // 释放 Compound 包裹,first 独立持有(同单 solid 模式)\n const shape = solidToShape(kernel, first, undefined, brepChain, stmtId)\n return { solid: first, shape: applyFirstStepColor(shape, buffer), multiSolidCount: solids.length }\n}\n\n/** Sub-shape kinds that make an imported shape \"addressable but not a solid\". */\nconst NON_SOLID_KINDS = ['vertex', 'edge', 'wire', 'face', 'shell'] as const\n\n/**\n * Does a freshly imported shape hold any sub-shape at all?\n *\n * Guards the `allowNonSolid` path: a file whose TShapes table is empty (or that\n * holds only a bare compound with nothing inside) is a broken asset, not a\n * wireframe one, and must still fail loudly.\n *\n * @param kernel - the initialized OCCT kernel.\n * @param top - the imported top-level shape handle.\n * @returns true when at least one non-solid sub-shape exists.\n */\nfunction hasAnyTopology(kernel: BrepEngineApi, top: BrepHandle): boolean {\n return NON_SOLID_KINDS.some((kind) => kernel.getSubShapes(top, kind).length > 0)\n}\n\n// ─── 多零件 STEP 装配导入(P0,方案 2026-10-06-step-3mf-multipart-import-plan.md §5.3)───\n\n/** 多零件 STEP 导入中的一个零件(几何 + solid 句柄 + 身份)。 */\nexport interface LoadBrepAssemblyPart {\n /** 零件序号(0 起,DFS 声明序)。 */\n index: number\n /** 零件名(XCAF label;无则回退 `imported:<index>`)。 */\n name: string\n /** 显示色 sRGB 0..1,无则 null。 */\n color: [number, number, number] | null\n /** 三角化显示 mesh。 */\n shape: Shape\n /** OCCT solid 句柄(已烘 location;生命周期归 brepChain,调用方经 fromBrep 绑定)。 */\n solid: BrepHandle\n}\n\n/**\n * BREP-native 多零件 STEP 导入(XCAF 装配树 → 逐零件 Shape + 装配层级)。\n *\n * 与 `loadBrep`(单零件收敛,§5.4 旧行为)对照:loadBrepAssembly 走\n * `importAssemblyFromStep`(XCAF),返回**全部**叶零件(DFS 声明序)与装配树。\n *\n * - 装配树叶子 = 零件;合成节点(syntheticGroup:单一产品含多 MANIFOLD_SOLID_BREP)\n * 如实表达为中间节点;\n * - 无装配结构的单叶文件 → 1 个零件、无 assembly(行为与现状单零件一致);\n * - 句柄互通(T0):`importAssemblyFromStep` 内部用 initOcctWasm() 全局单例内核,\n * 与注入的 `BrepEngineApi`(createOcctPrimitives 包装同一单例)句柄数值互通——\n * 探针见 test/brep/load-brep-assembly.test.ts;\n * - 释放:装配节点句柄已由 walkLabel 释放,叶句柄随返回 parts 交给调用方\n * (fromBrep 绑定后归 brepChain 管理,不在此释放)。\n *\n * @param kernel - the initialized OCCT kernel (L1 contract face).\n * @param buffer - the raw STEP file bytes (text-encoded ArrayBuffer; stpz\n * unzipping is the caller's job — faijs never unzips implicitly).\n * @returns 全部零件 + 装配层级(多叶时)+ 叶数(>1 时)。\n */\nexport async function loadBrepAssembly(\n kernel: BrepEngineApi,\n buffer: ArrayBuffer,\n): Promise<{ parts: LoadBrepAssemblyPart[]; assembly?: ImportAssemblyNode; multiSolidCount?: number }> {\n const nodes = await importAssemblyFromStep(buffer)\n const leaves = collectLeafParts(nodes)\n\n // DFS 声明序:leaf 序 = parts 序 = ImportModel.parts.index。\n // 实体校验(与 load op「要求导入物含实体」契约一致):leaf 必须持有实体\n // (自身是 solid,或 label 内含 solid);空 label / wireframe 零件跳过,\n // 全部跳过则报错(不静默回退)。parts 下标保持连续(0..N-1)。\n const leafIndex = new Map<AssemblyPartNode, number>()\n const parts: LoadBrepAssemblyPart[] = []\n for (const leaf of leaves) {\n if (!leaf.shapeHandle || !leafHasSolid(kernel, leaf.shapeHandle)) continue\n const idx = parts.length\n leafIndex.set(leaf, idx)\n const h = leaf.shapeHandle as unknown as BrepHandle\n parts.push({\n index: idx,\n name: leaf.name || `imported:${idx}`,\n color: leaf.color,\n shape: solidToShape(kernel, h),\n solid: h,\n })\n }\n\n // 无叶零件(空/异常/纯 wireframe 文件)→ 报错暴露(不静默回退)。\n if (parts.length === 0) {\n throw new Error('[loadBrepAssembly] imported STEP contains no solid leaf parts')\n }\n\n const assembly = toImportAssemblyNode(nodes, leafIndex)\n return {\n parts,\n ...(assembly ? { assembly } : {}),\n ...(parts.length > 1 ? { multiSolidCount: parts.length } : {}),\n }\n}\n\n/**\n * leaf 是否持有实体(loadBrepAssembly 实体校验):自身是 solid(syntheticGroup\n * 拆出的单个 solid 句柄),或 label compound 内含 solid。getSubShapes 的引用\n * 句柄须立即 release(walkLabel 只释放了它自己取的副本)。\n */\nfunction leafHasSolid(kernel: BrepEngineApi, h: ShapeHandle): boolean {\n const bh = h as unknown as BrepHandle\n if (kernel.isSolid(bh)) return true\n const solids = kernel.getSubShapes(bh, 'solid')\n const n = solids.length\n for (const s of solids) kernel.release(s)\n return n > 0\n}\n\n/**\n * XCAF 装配树 → ImportAssemblyNode(DFS 序与 parts 一致)。\n *\n * - 单根且根为叶(无装配结构)→ undefined(单零件路径,与现状一致);\n * - 单根装配 → 该根;\n * - 多根 → 合成虚拟根 `{ name: 'imported' }`(确定性结构名,非零件身份)。\n */\nfunction toImportAssemblyNode(\n nodes: AssemblyPartNode[],\n leafIndex: Map<AssemblyPartNode, number>,\n): ImportAssemblyNode | undefined {\n if (nodes.length === 0) return undefined\n const convert = (node: AssemblyPartNode): ImportAssemblyNode => {\n if (node.children.length === 0) {\n const idx = leafIndex.get(node)\n return { name: node.name, ...(idx !== undefined ? { partIndex: idx } : {}) }\n }\n return { name: node.name, children: node.children.map(convert) }\n }\n if (nodes.length === 1) {\n const root = convert(nodes[0])\n // 单根且根为叶(无装配结构)→ 不表达装配层级\n if (root.partIndex !== undefined) return undefined\n return root\n }\n return { name: 'imported', children: nodes.map(convert) }\n}\n\n// ─── 辅助函数 ───\n\n/**\n * Convert a Mat4 into the 3x4 row-major array (12 doubles) the OCCT\n * transform expects.\n *\n * OCCT transform accepts [r00,r01,r02,tx, r10,r11,r12,ty, r20,r21,r22,tz].\n * @param matrix - the source matrix to convert.\n * @returns the 3x4 row-major array of 12 doubles.\n */\nexport function matrixToArray(matrix: Mat4): number[] {\n const e = matrix.elements\n // Mat4 是 column-major,OCCT 需要 row-major 3x4\n return [\n e[0], e[4], e[8], e[12],\n e[1], e[5], e[9], e[13],\n e[2], e[6], e[10], e[14],\n ]\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"brep-mock.d.ts","sourceRoot":"","sources":["../../../../src/brep/engine/adapters/brep-mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,KAAK,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAA;AAEhF,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAoC9C;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAkYjD;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,IAAI,IAAI,CAQ7C"}
1
+ {"version":3,"file":"brep-mock.d.ts","sourceRoot":"","sources":["../../../../src/brep/engine/adapters/brep-mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,KAAK,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAA;AAEhF,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAoC9C;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAyZjD;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
@@ -98,6 +98,30 @@ export function createBrepMockApi() {
98
98
  tag: `revolveVec(${s.tag},a=${angleDeg})`,
99
99
  });
100
100
  },
101
+ sweep: (profile, spine) => {
102
+ // Mock approximation: the swept body spans the profile and the spine's
103
+ // bbox (signature-level coverage only, like extrude/revolveVec above).
104
+ const p = need(profile, 'sweep');
105
+ const sp = need(spine, 'sweep');
106
+ return alloc({
107
+ kind: 'solid',
108
+ bbox: mergeBbox({ ...p.bbox }, sp.bbox),
109
+ tag: `sweep(${p.tag},${sp.tag})`,
110
+ });
111
+ },
112
+ loft: (sections, ruled, endPoint) => {
113
+ let bbox = null;
114
+ for (const h of sections) {
115
+ const rec = need(h, 'loft');
116
+ bbox = bbox ? mergeBbox(bbox, rec.bbox) : { ...rec.bbox };
117
+ }
118
+ if (bbox === null)
119
+ return unsupported('loft: empty sections');
120
+ if (endPoint !== undefined) {
121
+ bbox = mergeBbox(bbox, { xmin: endPoint.x, ymin: endPoint.y, zmin: endPoint.z, xmax: endPoint.x, ymax: endPoint.y, zmax: endPoint.z });
122
+ }
123
+ return alloc({ kind: 'solid', bbox, tag: `loft(n=${sections.length},ruled=${ruled})` });
124
+ },
101
125
  sew: (shapesIn, _tolerance) => {
102
126
  // Mock approximation: merge the parts' bboxes into one shell-ish solid.
103
127
  let bbox = null;
@@ -408,9 +432,6 @@ export function registerBrepMockEngine() {
408
432
  registerBrepEngine(BREP_MOCK_ENGINE_ID, async () => ({
409
433
  id: BREP_MOCK_ENGINE_ID,
410
434
  primitives: createBrepMockApi(),
411
- capabilities: {
412
- // brep-mock lacks evolution/heal/assembly — missing capabilities are exposed (§7.5).
413
- },
414
435
  }));
415
436
  }
416
437
  //# sourceMappingURL=brep-mock.js.map