@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":"replicate.js","sourceRoot":"","sources":["../../src/api/replicate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * replicate — handwritten overrides for the copy-family ops (keep semantics +\n * replica[k] role tables).\n *\n * @platform occt — 本文件 import occt-kernel(mirrorJoin 走 `mirrorWithHistory`\n * 平台面,D3)。文件级标注满足守卫①(平台 import 自证身份);文件内的**中立 op**\n * (circularPattern/gridPattern/rectangularPattern/clone 只用 L1 核心面)不声明\n * engines,运行时不拦截——标注只约束平台 import,不改变函数级中立性\n * (与 face-evolution.ts 同口径)。\n *\n * All 9 copy-like ops must NOT consume their input (same as `copy`): each brep\n * body declares `keep(input)` (function-body keep → KeepRegistry → live-shapes),\n * so the source stays a live terminal in both runtime and UI.\n *\n * Two groups:\n * - Multi-replica patterns (circularPattern / gridPattern / rectangularPattern /\n * mirrorJoin): promoted from generated compatOps to handwritten defineOps that\n * also build `replica[*]/<inner>` role tables (same treatment as linearPattern,\n * via the shared buildReplicaRoleTable helper).\n * - Single-copy ops (mirror / clone / transformCopy): thin overrides that keep\n * the input and delegate to the generated compatOp (adopt/capabilities/\n * naming preserved).\n *\n * The generated files stay untouched; overrides win via api-namespace spread\n * (same precedent as cut / split / linearPattern).\n *\n * 平台分层(narrowing plan Phase 5,D11):\n * - mirrorJoin / mirror:平台 op(依赖 occt-only `mirrorWithHistory`)→\n * `engines: ['occt']`,不声明 capabilities(能力由平台身份本身界定)。\n * - circularPattern / gridPattern / rectangularPattern / clone:中立 op(实现\n * 只用 L1 核心面)→ capabilities 收窄到真实 L1 名(删除 isNull/iterShapes/\n * section/translateWithHistory 等 occt-only 虚名,capability-map 实证实现不依赖)。\n */\n\nimport type { Shape, Vec3 } from '../mesh/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { getCurrentStmt, keep, keepHidden } from '../runtime-state'\nimport { fromBrep, brepOf } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\nimport type { BrepHandle, BrepVec3 } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport { buildReplicaRoleTable, type ReplicaTransform } from './internal/replica-role-table'\nimport {\n meshKernelFailure,\n meshPatternProduct,\n meshSolidBasicEntry,\n meshSolidProduct,\n} from './internal/mesh-solid-op'\n// Generated compatOps (delegation targets for the thin single-copy overrides).\n// NOTE: transformCopy is NOT a script-face op (arg-spec skip: ComposedTransform\n// is not constructible in .fai.js); it stays a TS-library-only re-export.\nimport {\n mirror as generatedMirror,\n clone as generatedClone,\n} from './generated/topology'\n/** 镜像面参数(与旧 MirrorOptions 同形;G5 去外部依赖后本地自持)。 */\ninterface MirrorOptions {\n /** 镜像面法向。默认 [0,0,1]。 */\n normal?: readonly [number, number, number] | { x: number; y: number; z: number }\n /** 镜像面过点。默认 [0,0,0]。 */\n at?: readonly [number, number, number] | { x: number; y: number; z: number }\n}\n\n/** Normalize a vector (zero vector → [0,0,1] fallback, same as pattern.ts). */\nfunction norm(v: Vec3): Vec3 {\n const len = Math.hypot(v[0], v[1], v[2])\n if (len < 1e-9) return [0, 0, 1]\n return [v[0] / len, v[1] / len, v[2] / len]\n}\n\nfunction toBrepVec(v: Vec3): BrepVec3 {\n return { x: v[0], y: v[1], z: v[2] }\n}\n\n/**\n * `MirrorOptions` 的宽松向量形态(只读元组或 `{x,y,z}`)→ `Vec3`。\n *\n * 生成的 compatOp 自己吃得下这两种形态,网格路径要自己换算,故收在一处。\n *\n * @param v - the loosely typed vector from the op's options.\n * @param fallback - the default vector.\n * @returns the vector as a plain tuple.\n */\nfunction optionVec(\n v: readonly [number, number, number] | { x: number; y: number; z: number } | undefined,\n fallback: Vec3,\n): Vec3 {\n if (!v) return fallback\n if (Array.isArray(v)) return [v[0] as number, v[1] as number, v[2] as number]\n const o = v as { x: number; y: number; z: number }\n return [o.x, o.y, o.z]\n}\n\n/** Shared prelude: L1 kernel(getBrepApi,D12)+ BREP input handle + output statement id. */\nfunction prelude(input: Shape, tag: string): { kernel: BrepEngineApi; solid: BrepHandle; outStmt: string } {\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error(`[api/${tag}] input is not BREP`)\n return { kernel, solid, outStmt: String(getCurrentStmt()?.id ?? '') }\n}\n\n/** Rotate point p around the axis line (point `center`, unit direction `u`) by theta radians. */\nfunction rotateAroundAxis(p: BrepVec3, center: BrepVec3, u: Vec3, theta: number): BrepVec3 {\n const vx = p.x - center.x\n const vy = p.y - center.y\n const vz = p.z - center.z\n const cos = Math.cos(theta)\n const sin = Math.sin(theta)\n const dot = vx * u[0] + vy * u[1] + vz * u[2]\n // u × v\n const cx = u[1] * vz - u[2] * vy\n const cy = u[2] * vx - u[0] * vz\n const cz = u[0] * vy - u[1] * vx\n return {\n x: center.x + vx * cos + cx * sin + u[0] * dot * (1 - cos),\n y: center.y + vy * cos + cy * sin + u[1] * dot * (1 - cos),\n z: center.z + vz * cos + cz * sin + u[2] * dot * (1 - cos),\n }\n}\n\n/** Reflect point p across the plane (point `o`, unit normal `n`). Self-inverse. */\nfunction reflectAcrossPlane(p: BrepVec3, o: BrepVec3, n: Vec3): BrepVec3 {\n const d = (p.x - o.x) * n[0] + (p.y - o.y) * n[1] + (p.z - o.z) * n[2]\n return { x: p.x - 2 * d * n[0], y: p.y - 2 * d * n[1], z: p.z - 2 * d * n[2] }\n}\n\n// ── circularPattern ─────────────────────────────────────────────────────────\n\n/**\n * 环形阵列:绕 axis 均分 fullAngle(度,缺省 360)复制 count 份(含原位置)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name circularPattern\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[k]/<inner>`。\n * @returns Shape 所有副本 fused 后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param axis - 旋转轴方向。type:[x,y,z] required:true\n * @param count - 副本总数(含原位置)。type:number required:true\n * @param fullAngle - 总角度(度,缺省 360)。type:number required:false\n * @param center - 旋转轴上一点(缺省原点)。type:[x,y,z] required:false\n * @example\n * const p = await cad.circularPattern(part0, [0, 0, 1], 6)\n */\nexport const circularPattern = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, axis: Vec3, count: number, fullAngle: number = 360, center: Vec3 = [0, 0, 0]) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'circularPattern')\n const u = norm(axis)\n const step = fullAngle / count\n // 网格链:内核返回 count 份副本(含原位置),融合成一个网格零件;近似拓扑没有\n // role 层,故不产 `replica[k]/<inner>` 命名(如实缺席)。\n return meshPatternProduct(entry, 'circularPattern', 'E_PATTERN_FAILED', () =>\n entry.kernel.circularPattern(entry.solid, toBrepVec(center), toBrepVec(u), step, count),\n )\n },\n brep(input: Shape, axis: Vec3, count: number, fullAngle: number = 360, center: Vec3 = [0, 0, 0]) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'circularPattern')\n const u = norm(axis)\n const step = fullAngle / count\n const raw = kernel.circularPattern(solid, toBrepVec(center), toBrepVec(u), step, count)\n\n let resultSolid: BrepHandle\n try {\n resultSolid = kernel.fuseAll(raw)\n } finally {\n for (const c of raw) kernel.release(c)\n }\n\n const replicas: ReplicaTransform[] = []\n for (let k = 0; k < count; k++) {\n const theta = (-k * step * Math.PI) / 180\n replicas.push({\n label: `replica[${k}]`,\n inverse: (c) => rotateAroundAxis(c, toBrepVec(center), u, theta),\n })\n }\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n },\n // 中立 op(D11):capabilities 收窄到实现真实调用的 L1 名(删除 isNull/iterShapes/\n // section 等 occt-only 虚名——实现只调 kernel.circularPattern/fuseAll)。\n capabilities: [\n 'circularPattern',\n 'dispose',\n 'fuseAll',\n 'hashCode',\n 'surfaceCenterOfMass',\n 'surfaceNormal',\n 'surfaceType',\n 'uvBounds',\n ],\n naming: { kind: 'replicate', k: 0 } as Provenance,\n})\n\n// ── gridPattern ─────────────────────────────────────────────────────────────\n\n/**\n * 二维栅格阵列:沿 directionX × directionY 复制 countX×countY 份(含原位置)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name gridPattern\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[ix_iy]/<inner>`。\n * @returns Shape 全部副本的 compound。\n * @param input - 目标几何。type:Shape required:true\n * @param directionX - 第一方向。type:[x,y,z] required:true\n * @param directionY - 第二方向。type:[x,y,z] required:true\n * @param countX - X 向副本数。type:number required:true\n * @param countY - Y 向副本数。type:number required:true\n * @param spacingX - X 向间距。type:number required:true\n * @param spacingY - Y 向间距。type:number required:true\n * @example\n * const p = await cad.gridPattern(part0, [1, 0, 0], [0, 1, 0], 3, 2, 20, 20)\n */\nexport const gridPattern = defineOp({\n meshEngines: ['brepkit'],\n mesh(\n input: Shape,\n directionX: Vec3,\n directionY: Vec3,\n countX: number,\n countY: number,\n spacingX: number,\n spacingY: number,\n ) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'gridPattern')\n const dx = norm(directionX)\n const dy = norm(directionY)\n // 网格链走\"逐份平移 + fuseAll\"(与 rectangularPattern 同口径),不用内核的\n // `gridPattern`——那支返回**单个 compound 句柄**,近似拓扑无法把 compound 讲成\n // 一个网格零件;逐份平移则得到与线性/环形阵列同形的单一融合实体。\n return meshPatternProduct(entry, 'gridPattern', 'E_PATTERN_FAILED', () => {\n const copies: BrepHandle[] = []\n for (let ix = 0; ix < countX; ix++) {\n for (let iy = 0; iy < countY; iy++) {\n const ox = ix * spacingX\n const oy = iy * spacingY\n copies.push(entry.kernel.translate(\n entry.solid,\n ox * dx[0] + oy * dy[0],\n ox * dx[1] + oy * dy[1],\n ox * dx[2] + oy * dy[2],\n ))\n }\n }\n return copies\n })\n },\n brep(\n input: Shape,\n directionX: Vec3,\n directionY: Vec3,\n countX: number,\n countY: number,\n spacingX: number,\n spacingY: number,\n ) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'gridPattern')\n const dx = norm(directionX)\n const dy = norm(directionY)\n // kernel.gridPattern 返回 compound 单句柄(含全部副本),无需 fuse。\n const resultSolid = kernel.gridPattern(\n solid,\n toBrepVec(dx),\n toBrepVec(dy),\n spacingX,\n spacingY,\n countX,\n countY,\n )\n\n const replicas: ReplicaTransform[] = []\n for (let ix = 0; ix < countX; ix++) {\n for (let iy = 0; iy < countY; iy++) {\n const ox = ix * spacingX\n const oy = iy * spacingY\n replicas.push({\n label: `replica[${ix}_${iy}]`,\n inverse: (c) => ({\n x: c.x - (ox * dx[0] + oy * dy[0]),\n y: c.y - (ox * dx[1] + oy * dy[1]),\n z: c.z - (ox * dx[2] + oy * dy[2]),\n }),\n })\n }\n }\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n },\n capabilities: [\n 'dispose',\n 'fuseAll',\n 'gridPattern',\n 'hashCode',\n 'linearPattern',\n 'surfaceCenterOfMass',\n 'surfaceNormal',\n 'surfaceType',\n 'uvBounds',\n ],\n naming: { kind: 'replicate', k: 0 } as Provenance,\n})\n\n// ── rectangularPattern ──────────────────────────────────────────────────────\n\ninterface RectangularPatternOptions {\n xDir: Vec3\n xCount: number\n xSpacing: number\n yDir: Vec3\n yCount: number\n ySpacing: number\n}\n\n/**\n * 矩形阵列:按 options(xDir/xCount/xSpacing/yDir/yCount/ySpacing)复制并 fuse。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name rectangularPattern\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[ix_iy]/<inner>`。\n * @returns Shape 所有副本 fused 后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param options - 阵列参数。type:RectangularPatternOptions required:true\n * @example\n * const p = await cad.rectangularPattern(part0, { xDir: [1,0,0], xCount: 3, xSpacing: 20, yDir: [0,1,0], yCount: 2, ySpacing: 15 })\n */\nexport const rectangularPattern = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, options: RectangularPatternOptions) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'rectangularPattern')\n const { xDir, xCount, xSpacing, yDir, yCount, ySpacing } = options\n const dx = norm(xDir)\n const dy = norm(yDir)\n // 与 BREP 路径同一手法(逐份 translate 再 fuseAll),只是句柄来自网格后端。\n return meshPatternProduct(entry, 'rectangularPattern', 'E_PATTERN_FAILED', () => {\n const copies: BrepHandle[] = []\n for (let ix = 0; ix < xCount; ix++) {\n for (let iy = 0; iy < yCount; iy++) {\n const ox = ix * xSpacing\n const oy = iy * ySpacing\n copies.push(entry.kernel.translate(\n entry.solid,\n ox * dx[0] + oy * dy[0],\n ox * dx[1] + oy * dy[1],\n ox * dx[2] + oy * dy[2],\n ))\n }\n }\n return copies\n })\n },\n brep(input: Shape, options: RectangularPatternOptions) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'rectangularPattern')\n const { xDir, xCount, xSpacing, yDir, yCount, ySpacing } = options\n const dx = norm(xDir)\n const dy = norm(yDir)\n// 旧 rectangularPattern 是纯 JS 组合(translate + fuseAll),内核不声明\n// 该方法——与旧版同口径:逐份 translate 再 fuseAll。\n const copies: BrepHandle[] = []\n try {\n for (let ix = 0; ix < xCount; ix++) {\n for (let iy = 0; iy < yCount; iy++) {\n const ox = ix * xSpacing\n const oy = iy * ySpacing\n copies.push(kernel.translate(solid, ox * dx[0] + oy * dy[0], ox * dx[1] + oy * dy[1], ox * dx[2] + oy * dy[2]))\n }\n }\n const resultSolid = kernel.fuseAll(copies)\n\n const replicas: ReplicaTransform[] = []\n for (let ix = 0; ix < xCount; ix++) {\n for (let iy = 0; iy < yCount; iy++) {\n const ox = ix * xSpacing\n const oy = iy * ySpacing\n replicas.push({\n label: `replica[${ix}_${iy}]`,\n inverse: (c) => ({\n x: c.x - (ox * dx[0] + oy * dy[0]),\n y: c.y - (ox * dx[1] + oy * dy[1]),\n z: c.z - (ox * dx[2] + oy * dy[2]),\n }),\n })\n }\n }\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n } finally {\n for (const c of copies) kernel.release(c)\n }\n },\n capabilities: [\n 'dispose',\n 'fuse',\n 'fuseAll',\n 'fuseWithHistory',\n 'hashCode',\n 'surfaceCenterOfMass',\n 'surfaceNormal',\n 'surfaceType',\n 'uvBounds',\n ],\n naming: { kind: 'replicate', k: 0 } as Provenance,\n})\n\n// ── mirrorJoin ──────────────────────────────────────────────────────────────\n\ninterface MirrorJoinOptions {\n normal?: Vec3\n at?: Vec3\n}\n\n/**\n * 镜像并融合:原物(replica[0])+ 沿平面镜像(replica[1])fuse 成一体。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name mirrorJoin\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[0|1]/<inner>`。\n * @returns Shape fuse 后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param options - { normal?, at? } 镜像面法向与面上一点。type:MirrorJoinOptions required:false\n * @example\n * const p = await cad.mirrorJoin(part0, { normal: [1, 0, 0] })\n */\nexport const mirrorJoin = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, options?: MirrorJoinOptions) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'mirrorJoin')\n const n = norm(optionVec(options?.normal, [1, 0, 0]))\n const o = toBrepVec(optionVec(options?.at, [0, 0, 0]))\n // 输入句柄**不释放**(keep 语义);只释放本次自造的镜像副本。\n let mirrored: BrepHandle\n try {\n mirrored = entry.kernel.mirror(entry.solid, o, toBrepVec(n))\n } catch (cause) {\n throw meshKernelFailure('mirrorJoin', 'E_MIRROR_FAILED', `mirror across normal [${n.join(', ')}]`, cause)\n }\n try {\n return meshSolidProduct(entry, entry.kernel.fuse(entry.solid, mirrored))\n } catch (cause) {\n throw meshKernelFailure('mirrorJoin', 'E_MIRROR_FAILED', 'fusing the mirrored copy', cause)\n } finally {\n entry.backend.release(mirrored)\n }\n },\n brep(input: Shape, options?: MirrorJoinOptions) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'mirrorJoin')\n const n = norm(options?.normal ?? [1, 0, 0])\n const o = toBrepVec(options?.at ?? [0, 0, 0])\n // 2026-09-26 C 批降级:原实现直调 getOcctKernel().mirrorWithHistory(occt-only history\n // 镜像,返回 modified/newFaces 供细粒度 roleTable)。按用户指示「有没有历史 withhistory\n // 并不重要」,降级为 L1 kernel.mirror(brepkit 已声明 mirror 能力)——几何结果一致,\n // roleTable 仍由 buildReplicaRoleTable 经质心聚类重建(引擎无关),仅丢失 history 级\n // modified 面映射(不影响几何与产物有效性)。\n const mirrored = kernel.mirror(solid, o, toBrepVec(n))\n try {\n const resultSolid = kernel.fuse(solid, mirrored)\n\n const replicas: ReplicaTransform[] = [\n { label: 'replica[0]', inverse: (c) => ({ x: c.x, y: c.y, z: c.z }) },\n { label: 'replica[1]', inverse: (c) => reflectAcrossPlane(c, o, n) },\n ]\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n } finally {\n kernel.release(mirrored)\n }\n },\n // 2026-09-26 C 批:从 engines:[occt] 降级为 capabilities:['mirror','fuse'](L1 中立面,\n // brepkit 已声明二者)。history 语义丢失(见上注释),几何不回退。\n capabilities: ['mirror', 'fuse'],\n naming: { kind: 'replicate', k: 2 } as Provenance,\n})\n\n// ── single-copy thin overrides(keep + 委托生成 op)─────────────────────────\n\n/**\n * 镜像:返回镜像后的新 Shape(源保留)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name mirror\n * @note BREP-only。keep 语义:不消费输入(薄 override 委托生成 op,行为不变)。\n * @returns Shape 镜像后的新几何。\n * @param input - 目标几何。type:Shape required:true\n * @param options - { normal?, at? } 镜像面。type:MirrorOptions required:false\n * @example\n * const p = await cad.mirror(part0, { normal: [1, 0, 0] })\n */\nexport const mirror = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, options?: MirrorOptions) {\n keep(input)\n const entry = meshSolidBasicEntry(input, 'mirror')\n const n = norm(optionVec(options?.normal, [1, 0, 0]))\n const o = toBrepVec(optionVec(options?.at, [0, 0, 0]))\n let result: BrepHandle\n try {\n result = entry.kernel.mirror(entry.solid, o, toBrepVec(n))\n } catch (cause) {\n throw meshKernelFailure('mirror', 'E_MIRROR_FAILED', `mirror across normal [${n.join(', ')}]`, cause)\n }\n return meshSolidProduct(entry, result)\n },\n async brep(input: Shape, options?: MirrorOptions) {\n keep(input)\n return (await generatedMirror(input, options)) as Shape\n },\n // 2026-09-26 B 批:generatedMirror 已降级为 L1 kernel.mirror(brepkit 已声明 mirror\n // 能力),薄 override 同步从 engines:[occt] 降级为 capabilities:['mirror']——\n // 与 clone 薄 override 同模式(外层门不拦 brepkit,内层 generatedMirror 已按能力路由)。\n capabilities: ['mirror'],\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n})\n\n/**\n * 深拷贝句柄:返回独立副本(源保留)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name clone\n * @note BREP-only。keep 语义:不消费输入(薄 override 委托生成 op,行为不变)。\n * @returns Shape 克隆的新几何。\n * @param input - 目标几何。type:Shape required:true\n * @example\n * const p = await cad.clone(part0)\n */\nexport const clone = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape) {\n keep(input)\n const entry = meshSolidBasicEntry(input, 'clone')\n let result: BrepHandle\n try {\n result = entry.kernel.copyShape(entry.solid)\n } catch (cause) {\n throw meshKernelFailure('clone', 'E_CLONE_FAILED', 'copying the mesh solid handle', cause)\n }\n return meshSolidProduct(entry, result)\n },\n async brep(input: Shape) {\n keep(input)\n return (await generatedClone(input)) as Shape\n },\n capabilities: ['copyShape', 'dispose'],\n naming: { kind: 'identity' } as Provenance,\n})\n"]}
1
+ {"version":3,"file":"replicate.js","sourceRoot":"","sources":["../../src/api/replicate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * replicate — handwritten overrides for the copy-family ops (keep semantics +\n * replica[k] role tables).\n *\n * @platform occt — 本文件 import occt-kernel(mirrorJoin 走 `mirrorWithHistory`\n * 平台面,D3)。文件级标注满足守卫①(平台 import 自证身份);文件内的**中立 op**\n * (circularPattern/gridPattern/rectangularPattern/clone 只用 L1 核心面)不声明\n * engines,运行时不拦截——标注只约束平台 import,不改变函数级中立性\n * (与 face-evolution.ts 同口径)。\n *\n * All 9 copy-like ops must NOT consume their input (same as `copy`): each brep\n * body declares `keep(input)` (function-body keep → KeepRegistry → live-shapes),\n * so the source stays a live terminal in both runtime and UI.\n *\n * Two groups:\n * - Multi-replica patterns (circularPattern / gridPattern / rectangularPattern /\n * mirrorJoin): promoted from generated compatOps to handwritten defineOps that\n * also build `replica[*]/<inner>` role tables (same treatment as linearPattern,\n * via the shared buildReplicaRoleTable helper).\n * - Single-copy ops (mirror / clone / transformCopy): thin overrides that keep\n * the input and delegate to the generated compatOp (adopt/engines/naming\n * preserved).\n *\n * The generated files stay untouched; overrides win via api-namespace spread\n * (same precedent as cut / split / linearPattern).\n *\n * 平台分层(narrowing plan Phase 5,D11):\n * - mirrorJoin / mirror / circularPattern / gridPattern / rectangularPattern /\n * clone:中立 op(实现只用 L1 核心面)→ 无 engines、无能力声明;\n * 面演化轨由 `hasNativeHistory` 在 mirrorBrep 内部按引擎事实静态分叉。\n */\n\nimport type { Shape, Vec3 } from '../mesh/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { getCurrentStmt, keep, keepHidden } from '../runtime-state'\nimport { fromBrep, brepOf } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\nimport type { BrepHandle, BrepVec3 } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport { buildReplicaRoleTable, type ReplicaTransform } from './internal/replica-role-table'\nimport {\n meshKernelFailure,\n meshPatternProduct,\n meshSolidBasicEntry,\n meshSolidProduct,\n} from './internal/mesh-solid-op'\n// Generated compatOps (delegation targets for the thin single-copy overrides).\n// NOTE: transformCopy is NOT a script-face op (arg-spec skip: ComposedTransform\n// is not constructible in .fai.js); it stays a TS-library-only re-export.\nimport {\n mirror as generatedMirror,\n clone as generatedClone,\n} from './generated/topology'\n/** 镜像面参数(与旧 MirrorOptions 同形;G5 去外部依赖后本地自持)。 */\ninterface MirrorOptions {\n /** 镜像面法向。默认 [0,0,1]。 */\n normal?: readonly [number, number, number] | { x: number; y: number; z: number }\n /** 镜像面过点。默认 [0,0,0]。 */\n at?: readonly [number, number, number] | { x: number; y: number; z: number }\n}\n\n/** Normalize a vector (zero vector → [0,0,1] fallback, same as pattern.ts). */\nfunction norm(v: Vec3): Vec3 {\n const len = Math.hypot(v[0], v[1], v[2])\n if (len < 1e-9) return [0, 0, 1]\n return [v[0] / len, v[1] / len, v[2] / len]\n}\n\nfunction toBrepVec(v: Vec3): BrepVec3 {\n return { x: v[0], y: v[1], z: v[2] }\n}\n\n/**\n * `MirrorOptions` 的宽松向量形态(只读元组或 `{x,y,z}`)→ `Vec3`。\n *\n * 生成的 compatOp 自己吃得下这两种形态,网格路径要自己换算,故收在一处。\n *\n * @param v - the loosely typed vector from the op's options.\n * @param fallback - the default vector.\n * @returns the vector as a plain tuple.\n */\nfunction optionVec(\n v: readonly [number, number, number] | { x: number; y: number; z: number } | undefined,\n fallback: Vec3,\n): Vec3 {\n if (!v) return fallback\n if (Array.isArray(v)) return [v[0] as number, v[1] as number, v[2] as number]\n const o = v as { x: number; y: number; z: number }\n return [o.x, o.y, o.z]\n}\n\n/** Shared prelude: L1 kernel(getBrepApi,D12)+ BREP input handle + output statement id. */\nfunction prelude(input: Shape, tag: string): { kernel: BrepEngineApi; solid: BrepHandle; outStmt: string } {\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error(`[api/${tag}] input is not BREP`)\n return { kernel, solid, outStmt: String(getCurrentStmt()?.id ?? '') }\n}\n\n/** Rotate point p around the axis line (point `center`, unit direction `u`) by theta radians. */\nfunction rotateAroundAxis(p: BrepVec3, center: BrepVec3, u: Vec3, theta: number): BrepVec3 {\n const vx = p.x - center.x\n const vy = p.y - center.y\n const vz = p.z - center.z\n const cos = Math.cos(theta)\n const sin = Math.sin(theta)\n const dot = vx * u[0] + vy * u[1] + vz * u[2]\n // u × v\n const cx = u[1] * vz - u[2] * vy\n const cy = u[2] * vx - u[0] * vz\n const cz = u[0] * vy - u[1] * vx\n return {\n x: center.x + vx * cos + cx * sin + u[0] * dot * (1 - cos),\n y: center.y + vy * cos + cy * sin + u[1] * dot * (1 - cos),\n z: center.z + vz * cos + cz * sin + u[2] * dot * (1 - cos),\n }\n}\n\n/** Reflect point p across the plane (point `o`, unit normal `n`). Self-inverse. */\nfunction reflectAcrossPlane(p: BrepVec3, o: BrepVec3, n: Vec3): BrepVec3 {\n const d = (p.x - o.x) * n[0] + (p.y - o.y) * n[1] + (p.z - o.z) * n[2]\n return { x: p.x - 2 * d * n[0], y: p.y - 2 * d * n[1], z: p.z - 2 * d * n[2] }\n}\n\n// ── circularPattern ─────────────────────────────────────────────────────────\n\n/**\n * 环形阵列:绕 axis 均分 fullAngle(度,缺省 360)复制 count 份(含原位置)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name circularPattern\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[k]/<inner>`。\n * @returns Shape 所有副本 fused 后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param axis - 旋转轴方向。type:[x,y,z] required:true\n * @param count - 副本总数(含原位置)。type:number required:true\n * @param fullAngle - 总角度(度,缺省 360)。type:number required:false\n * @param center - 旋转轴上一点(缺省原点)。type:[x,y,z] required:false\n * @example\n * const p = await cad.circularPattern(part0, [0, 0, 1], 6)\n */\nexport const circularPattern = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, axis: Vec3, count: number, fullAngle: number = 360, center: Vec3 = [0, 0, 0]) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'circularPattern')\n const u = norm(axis)\n const step = fullAngle / count\n // 网格链:内核返回 count 份副本(含原位置),融合成一个网格零件;近似拓扑没有\n // role 层,故不产 `replica[k]/<inner>` 命名(如实缺席)。\n return meshPatternProduct(entry, 'circularPattern', 'E_PATTERN_FAILED', () =>\n entry.kernel.circularPattern(entry.solid, toBrepVec(center), toBrepVec(u), step, count),\n )\n },\n brep(input: Shape, axis: Vec3, count: number, fullAngle: number = 360, center: Vec3 = [0, 0, 0]) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'circularPattern')\n const u = norm(axis)\n const step = fullAngle / count\n const raw = kernel.circularPattern(solid, toBrepVec(center), toBrepVec(u), step, count)\n\n let resultSolid: BrepHandle\n try {\n resultSolid = kernel.fuseAll(raw)\n } finally {\n for (const c of raw) kernel.release(c)\n }\n\n const replicas: ReplicaTransform[] = []\n for (let k = 0; k < count; k++) {\n const theta = (-k * step * Math.PI) / 180\n replicas.push({\n label: `replica[${k}]`,\n inverse: (c) => rotateAroundAxis(c, toBrepVec(center), u, theta),\n })\n }\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n },\n // 中立 op(D11):实现只用 L1 核心面(kernel.circularPattern/fuseAll)。\n naming: { kind: 'replicate', k: 0 } as Provenance,\n\n paramDims: {},\n})\n\n// ── gridPattern ─────────────────────────────────────────────────────────────\n\n/**\n * 二维栅格阵列:沿 directionX × directionY 复制 countX×countY 份(含原位置)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name gridPattern\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[ix_iy]/<inner>`。\n * @returns Shape 全部副本的 compound。\n * @param input - 目标几何。type:Shape required:true\n * @param directionX - 第一方向。type:[x,y,z] required:true\n * @param directionY - 第二方向。type:[x,y,z] required:true\n * @param countX - X 向副本数。type:number required:true\n * @param countY - Y 向副本数。type:number required:true\n * @param spacingX - X 向间距。type:number required:true\n * @param spacingY - Y 向间距。type:number required:true\n * @example\n * const p = await cad.gridPattern(part0, [1, 0, 0], [0, 1, 0], 3, 2, 20, 20)\n */\nexport const gridPattern = defineOp({\n meshEngines: ['brepkit'],\n mesh(\n input: Shape,\n directionX: Vec3,\n directionY: Vec3,\n countX: number,\n countY: number,\n spacingX: number,\n spacingY: number,\n ) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'gridPattern')\n const dx = norm(directionX)\n const dy = norm(directionY)\n // 网格链走\"逐份平移 + fuseAll\"(与 rectangularPattern 同口径),不用内核的\n // `gridPattern`——那支返回**单个 compound 句柄**,近似拓扑无法把 compound 讲成\n // 一个网格零件;逐份平移则得到与线性/环形阵列同形的单一融合实体。\n return meshPatternProduct(entry, 'gridPattern', 'E_PATTERN_FAILED', () => {\n const copies: BrepHandle[] = []\n for (let ix = 0; ix < countX; ix++) {\n for (let iy = 0; iy < countY; iy++) {\n const ox = ix * spacingX\n const oy = iy * spacingY\n copies.push(entry.kernel.translate(\n entry.solid,\n ox * dx[0] + oy * dy[0],\n ox * dx[1] + oy * dy[1],\n ox * dx[2] + oy * dy[2],\n ))\n }\n }\n return copies\n })\n },\n brep(\n input: Shape,\n directionX: Vec3,\n directionY: Vec3,\n countX: number,\n countY: number,\n spacingX: number,\n spacingY: number,\n ) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'gridPattern')\n const dx = norm(directionX)\n const dy = norm(directionY)\n // kernel.gridPattern 返回 compound 单句柄(含全部副本),无需 fuse。\n const resultSolid = kernel.gridPattern(\n solid,\n toBrepVec(dx),\n toBrepVec(dy),\n spacingX,\n spacingY,\n countX,\n countY,\n )\n\n const replicas: ReplicaTransform[] = []\n for (let ix = 0; ix < countX; ix++) {\n for (let iy = 0; iy < countY; iy++) {\n const ox = ix * spacingX\n const oy = iy * spacingY\n replicas.push({\n label: `replica[${ix}_${iy}]`,\n inverse: (c) => ({\n x: c.x - (ox * dx[0] + oy * dy[0]),\n y: c.y - (ox * dx[1] + oy * dy[1]),\n z: c.z - (ox * dx[2] + oy * dy[2]),\n }),\n })\n }\n }\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n },\n // 中立 op(D11):实现只用 L1 核心面(kernel.gridPattern/translate/fuseAll)。\n naming: { kind: 'replicate', k: 0 } as Provenance,\n\n paramDims: {},\n})\n// ── rectangularPattern ──────────────────────────────────────────────────────\n\ninterface RectangularPatternOptions {\n xDir: Vec3\n xCount: number\n xSpacing: number\n yDir: Vec3\n yCount: number\n ySpacing: number\n}\n\n/**\n * 矩形阵列:按 options(xDir/xCount/xSpacing/yDir/yCount/ySpacing)复制并 fuse。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name rectangularPattern\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[ix_iy]/<inner>`。\n * @returns Shape 所有副本 fused 后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param options - 阵列参数。type:RectangularPatternOptions required:true\n * @example\n * const p = await cad.rectangularPattern(part0, { xDir: [1,0,0], xCount: 3, xSpacing: 20, yDir: [0,1,0], yCount: 2, ySpacing: 15 })\n */\nexport const rectangularPattern = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, options: RectangularPatternOptions) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'rectangularPattern')\n const { xDir, xCount, xSpacing, yDir, yCount, ySpacing } = options\n const dx = norm(xDir)\n const dy = norm(yDir)\n // 与 BREP 路径同一手法(逐份 translate 再 fuseAll),只是句柄来自网格后端。\n return meshPatternProduct(entry, 'rectangularPattern', 'E_PATTERN_FAILED', () => {\n const copies: BrepHandle[] = []\n for (let ix = 0; ix < xCount; ix++) {\n for (let iy = 0; iy < yCount; iy++) {\n const ox = ix * xSpacing\n const oy = iy * ySpacing\n copies.push(entry.kernel.translate(\n entry.solid,\n ox * dx[0] + oy * dy[0],\n ox * dx[1] + oy * dy[1],\n ox * dx[2] + oy * dy[2],\n ))\n }\n }\n return copies\n })\n },\n brep(input: Shape, options: RectangularPatternOptions) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'rectangularPattern')\n const { xDir, xCount, xSpacing, yDir, yCount, ySpacing } = options\n const dx = norm(xDir)\n const dy = norm(yDir)\n // 实现为纯 JS 组合:逐份 translate 再 fuseAll,不依赖内核的 rectangularPattern 方法。\n const copies: BrepHandle[] = []\n try {\n for (let ix = 0; ix < xCount; ix++) {\n for (let iy = 0; iy < yCount; iy++) {\n const ox = ix * xSpacing\n const oy = iy * ySpacing\n copies.push(kernel.translate(solid, ox * dx[0] + oy * dy[0], ox * dx[1] + oy * dy[1], ox * dx[2] + oy * dy[2]))\n }\n }\n const resultSolid = kernel.fuseAll(copies)\n\n const replicas: ReplicaTransform[] = []\n for (let ix = 0; ix < xCount; ix++) {\n for (let iy = 0; iy < yCount; iy++) {\n const ox = ix * xSpacing\n const oy = iy * ySpacing\n replicas.push({\n label: `replica[${ix}_${iy}]`,\n inverse: (c) => ({\n x: c.x - (ox * dx[0] + oy * dy[0]),\n y: c.y - (ox * dx[1] + oy * dy[1]),\n z: c.z - (ox * dx[2] + oy * dy[2]),\n }),\n })\n }\n }\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n } finally {\n for (const c of copies) kernel.release(c)\n }\n },\n // 中立 op(D11):实现只用 L1 核心面(kernel.translate/fuseAll)。\n naming: { kind: 'replicate', k: 0 } as Provenance,\n\n paramDims: {},\n})\n\n// ── mirrorJoin ──────────────────────────────────────────────────────────────\n\ninterface MirrorJoinOptions {\n normal?: Vec3\n at?: Vec3\n}\n\n/**\n * 镜像并融合:原物(replica[0])+ 沿平面镜像(replica[1])fuse 成一体。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name mirrorJoin\n * @note BREP-only。keep 语义:不消费输入。结果面回投输入面角色,产出 `replica[0|1]/<inner>`。\n * @returns Shape fuse 后的几何。\n * @param input - 目标几何。type:Shape required:true\n * @param options - { normal?, at? } 镜像面法向与面上一点。type:MirrorJoinOptions required:false\n * @example\n * const p = await cad.mirrorJoin(part0, { normal: [1, 0, 0] })\n */\nexport const mirrorJoin = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, options?: MirrorJoinOptions) {\n keepHidden(input)\n const entry = meshSolidBasicEntry(input, 'mirrorJoin')\n const n = norm(optionVec(options?.normal, [1, 0, 0]))\n const o = toBrepVec(optionVec(options?.at, [0, 0, 0]))\n // 输入句柄**不释放**(keep 语义);只释放本次自造的镜像副本。\n let mirrored: BrepHandle\n try {\n mirrored = entry.kernel.mirror(entry.solid, o, toBrepVec(n))\n } catch (cause) {\n throw meshKernelFailure('mirrorJoin', 'E_MIRROR_FAILED', `mirror across normal [${n.join(', ')}]`, cause)\n }\n try {\n return meshSolidProduct(entry, entry.kernel.fuse(entry.solid, mirrored))\n } catch (cause) {\n throw meshKernelFailure('mirrorJoin', 'E_MIRROR_FAILED', 'fusing the mirrored copy', cause)\n } finally {\n entry.backend.release(mirrored)\n }\n },\n brep(input: Shape, options?: MirrorJoinOptions) {\n keepHidden(input)\n const { kernel, solid, outStmt } = prelude(input, 'mirrorJoin')\n const n = norm(options?.normal ?? [1, 0, 0])\n const o = toBrepVec(options?.at ?? [0, 0, 0])\n // replicate 的 role table 经质心聚类重建(引擎无关),mirror history 对\n // role table 无增量收益,故走 L1 kernel.mirror(两引擎的 L1 契约面均提供\n // `mirror`;`mirrorWithHistory` 不参与本 op,与引擎身份无关)。\n // 面演化由 mirrorBrep(topologyFns.ts)双轨接入,replicate 不重复消费。\n const mirrored = kernel.mirror(solid, o, toBrepVec(n))\n try {\n const resultSolid = kernel.fuse(solid, mirrored)\n\n const replicas: ReplicaTransform[] = [\n { label: 'replica[0]', inverse: (c) => ({ x: c.x, y: c.y, z: c.z }) },\n { label: 'replica[1]', inverse: (c) => reflectAcrossPlane(c, o, n) },\n ]\n const roleTable = buildReplicaRoleTable(kernel, input, resultSolid, replicas, outStmt)\n return fromBrep(solidToShape(kernel, resultSolid), { solid: resultSolid, roleTable })\n } finally {\n kernel.release(mirrored)\n }\n },\n // 中立 op(D11):实现只用 L1 核心面(kernel.mirror/fuse)。replicate 的\n // role table 不消费 mirror history(见上注释),面演化由 mirrorBrep 双轨接入。\n naming: { kind: 'replicate', k: 2 } as Provenance,\n\n paramDims: {},\n})\n\n// ── single-copy thin overrides(keep + 委托生成 op)─────────────────────────\n\n/**\n * 镜像:返回镜像后的新 Shape(源保留)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name mirror\n * @note BREP-only。keep 语义:不消费输入(薄 override 委托生成 op,行为不变)。\n * @returns Shape 镜像后的新几何。\n * @param input - 目标几何。type:Shape required:true\n * @param options - { normal?, at? } 镜像面。type:MirrorOptions required:false\n * @example\n * const p = await cad.mirror(part0, { normal: [1, 0, 0] })\n */\nexport const mirror = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, options?: MirrorOptions) {\n keep(input)\n const entry = meshSolidBasicEntry(input, 'mirror')\n const n = norm(optionVec(options?.normal, [1, 0, 0]))\n const o = toBrepVec(optionVec(options?.at, [0, 0, 0]))\n let result: BrepHandle\n try {\n result = entry.kernel.mirror(entry.solid, o, toBrepVec(n))\n } catch (cause) {\n throw meshKernelFailure('mirror', 'E_MIRROR_FAILED', `mirror across normal [${n.join(', ')}]`, cause)\n }\n return meshSolidProduct(entry, result)\n },\n async brep(input: Shape, options?: MirrorOptions) {\n keep(input)\n return (await generatedMirror(input, options)) as Shape\n },\n // 薄 override:generatedMirror 走 L1 kernel.mirror,与 clone 薄 override 同模式\n // (无能力门,内层实现自行按引擎事实分叉)。面演化由 mirrorBrep 双轨接入。\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n\n paramDims: {},\n})\n\n/**\n * 深拷贝句柄:返回独立副本(源保留)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name clone\n * @note BREP-only。keep 语义:不消费输入(薄 override 委托生成 op,行为不变)。\n * @returns Shape 克隆的新几何。\n * @param input - 目标几何。type:Shape required:true\n * @example\n * const p = await cad.clone(part0)\n */\nexport const clone = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape) {\n keep(input)\n const entry = meshSolidBasicEntry(input, 'clone')\n let result: BrepHandle\n try {\n result = entry.kernel.copyShape(entry.solid)\n } catch (cause) {\n throw meshKernelFailure('clone', 'E_CLONE_FAILED', 'copying the mesh solid handle', cause)\n }\n return meshSolidProduct(entry, result)\n },\n async brep(input: Shape) {\n keep(input)\n return (await generatedClone(input)) as Shape\n },\n // 中立 op(D11):实现只用 L1 核心面(kernel.copyShape)。\n naming: { kind: 'identity' } as Provenance,\n\n paramDims: {},\n})\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"revolve.d.ts","sourceRoot":"","sources":["../../src/api/revolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAkG1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO;WAC2B,OAAO;;;CAwCpD,CAAA"}
1
+ {"version":3,"file":"revolve.d.ts","sourceRoot":"","sources":["../../src/api/revolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAkG1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO;WAC2B,OAAO;;;CA0CpD,CAAA"}
@@ -162,5 +162,6 @@ export const revolve = defineOp({
162
162
  ],
163
163
  },
164
164
  },
165
+ paramDims: { face: 'plain' },
165
166
  });
166
167
  //# sourceMappingURL=revolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"revolve.js","sourceRoot":"","sources":["../../src/api/revolve.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * revolve — 手写平台 op(E3 / Q13 路线①的 revolve 实例)\n *\n * 生成投影(`api/generated/operations.ts` 的 revolve)是 compat op:几何由\n * 早期 brepjs 承载,但**没有可挂面命名的代码位置**,产物不带 roleTable,\n * 下游 `cad.edgeRef` 抛 \"nameless shape\"(ModelFromV021 缺陷)。\n *\n * 本文件按 `cut` 覆盖生成投影的同一先例(`api-namespace.ts`),用 defineOp 包住\n * 投影调用,并在产物登记处建链根 roleTable(origin = 语句 StmtId,与\n * `extrude.ts` / `import-brep.ts` 同源机制)。\n *\n * 词汇表沿用生成 spec 的 construct 声明:`bottom` / `top`(旋转轴两端的平面\n * 端面)+ `wall:<i>`(其余侧面,按枚举序)。判定口径与 extrude 相同——现场\n * 几何是唯一真值:平面法向与轴 |cos| ≈ 1 → 端面,按中心沿轴坐标分 bottom/top;\n * 其余(含圆柱等曲面侧面)→ wall:i。无法分类的面不进表(缺身份是显式状态)。\n */\n\nimport type { Shape } from '../mesh/types'\nimport { defineOp } from '../sdk'\nimport { getCurrentStmt } from '../runtime-state'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrep } from '../shape'\nimport { solidToShape } from '../brep/brep-ops'\nimport { runtimeLineage } from '../topology/naming/lineage'\nimport { formatRoleName, semantic, wall } from '../topology/naming/role-name'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport type { BrepHandle } from '../brep/engine/types'\n\n/**\n * revolve 的 construct 词汇表:`bottom` / `top`(旋转轴两端的平面端面)+ `wall:<i>`。\n * 判定口径见 {@link revolveConstructRoles}。\n */\n\n/** options.axis 的宽松形态(数组或 {x,y,z})。 */\nfunction axisVec(v: unknown): readonly [number, number, number] {\n if (Array.isArray(v) && v.length >= 3 && v.every((n) => typeof n === 'number')) {\n return [v[0]!, v[1]!, v[2]!]\n }\n if (typeof v === 'object' && v !== null && 'x' in (v as object)) {\n const o = v as { x: number; y: number; z: number }\n return [o.x, o.y, o.z]\n }\n return [0, 0, 1]\n}\n\n/**\n * revolve 的 construct 词汇枚举器(与 `extrudeConstructRoles` 同口径,轴来源不同:\n * extrude 从端面法向对差反推,revolve 直接用调用点声明的旋转轴)。\n *\n * @param kernel - the OCCT kernel.\n * @param solid - the revolved solid.\n * @param axis - the revolution axis (call-site declared; default [0,0,1]).\n * @returns role(线格式串)→ hash 子表。\n */\nfunction revolveConstructRoles(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n axisOpt: unknown,\n): Map<string, number[]> {\n const roles = new Map<string, number[]>()\n const faceHandles = kernel.getSubShapes(solid, 'face')\n try {\n const hashes = kernel.subShapeHashes(solid, 'face', 2147483647)\n const [ax0, ax1, ax2] = axisVec(axisOpt)\n const axLen = Math.hypot(ax0, ax1, ax2)\n if (axLen < 1e-9) return roles\n const ax: readonly [number, number, number] = [ax0 / axLen, ax1 / axLen, ax2 / axLen]\n\n const caps: { idx: number; t: number }[] = []\n const isPlaneCap: boolean[] = faceHandles.map((f) => {\n if (kernel.surfaceType(f) !== 'plane') return false\n const uv = kernel.uvBounds(f)\n const n = kernel.surfaceNormal(f, (uv.uMin + uv.uMax) / 2, (uv.vMin + uv.vMax) / 2)\n const len = Math.hypot(n.x, n.y, n.z) || 1\n const cos = Math.abs(n.x * ax[0]! + n.y * ax[1]! + n.z * ax[2]!) / len\n return cos > 0.999\n })\n for (let i = 0; i < faceHandles.length; i++) {\n if (hashes[i] === undefined) continue\n if (isPlaneCap[i]) {\n const c = kernel.surfaceCenterOfMass(faceHandles[i]!)\n caps.push({ idx: i, t: c.x * ax[0]! + c.y * ax[1]! + c.z * ax[2]! })\n }\n }\n if (caps.length >= 2) {\n // 常规旋转体:轴两端平面端面 = bottom/top,其余面(含曲面侧面)wall:<i>\n let wallIdx = 0\n for (let i = 0; i < faceHandles.length; i++) {\n const hash = hashes[i]\n if (hash === undefined || isPlaneCap[i]) continue\n roles.set(formatRoleName(wall(wallIdx)), [hash])\n wallIdx++\n }\n caps.sort((p, q) => p.t - q.t)\n roles.set(formatRoleName(semantic('bottom')), [hashes[caps[0]!.idx]!])\n roles.set(formatRoleName(semantic('top')), [hashes[caps[caps.length - 1]!.idx]!])\n } else {\n // GOTCHA(退化形态,2026-09-23):轮廓面在轴平面内(如 XY 草图绕 Z 转)\n // 时产物的面法向全部 ∥ 轴 → caps 判不出两端。此时退化为按枚举序\n // wall:<i> 命名全部面——身份是能力,退化形态不给名字就会重演 nameless\n // shape 缺陷;枚举序稳定(同 extrude 的 wall 序依据)。\n for (let i = 0; i < faceHandles.length; i++) {\n const hash = hashes[i]\n if (hash === undefined) continue\n roles.set(formatRoleName(wall(i)), [hash])\n }\n }\n return roles\n } finally {\n for (const h of faceHandles) {\n try { kernel.release(h) } catch { /* 已释放 */ }\n }\n }\n}\n\n/**\n * 旋转成形:把平面轮廓绕轴旋转(兼容生成投影签名)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name revolve\n * @param face - 平面轮廓。type:Shape required:true\n * @param options - 旋转轴/点/角度(透传 compat 语义)。type:RevolveOptions\n * @returns Shape 旋转体(带链根 roleTable:bottom/top/wall:i)。\n * @example\n * const p1 = await cad.revolve(part0, { axis: [0, 0, 1], at: [0, 0, 0], angle: 6.283185307179586 })\n */\nexport const revolve = defineOp({\n brep: async (face: Shape, options?: { axis?: unknown }) => {\n // compat 语义经 l3-bridge 三步桥接(与 compatOp 的 adapter 相同步骤,\n // 但在这里执行以便在**同一处**收编产物并建链根 roleTable——compatOp 的\n // 自动 adoptOut 会先登记一次,二次 fromBrep 会让 edgeRef 读到残缺表)。\n const kernel = getBrepApi()\n const handle = brepOf(face) as BrepHandle\n if (!handle) throw new Error('[revolve] input is not BREP')\n const { at = [0, 0, 0], axis = [0, 0, 1], angle = 2 * Math.PI } = (options ?? {}) as {\n at?: [number, number, number]\n axis?: [number, number, number]\n angle?: number\n }\n const revolved = kernel.revolveVec(handle, { x: at[0], y: at[1], z: at[2] }, { x: axis[0], y: axis[1], z: axis[2] }, (angle * 180) / Math.PI)\n const s = fromBrep(solidToShape(kernel, revolved), { solid: revolved }) as Shape\n if (!getBrepApi()) return s\n // E3(Q13 路线①):链根建 roleTable,origin = 语句 StmtId(Phase 1.6 口径)。\n // GOTCHA(2026-09-23):不能对 adoptEntity 的产物再走一次 fromBrep——同语句的\n // registeredStmtId 去重会让第二次登记被吞(探针实测:outputTables 里没有本\n // 语句键)。直接经 runtimeLineage.recordOutput 落语句键表;define-op 包装层\n // 会在 impl 返回后把它传播到 part 键权威位(edgeRef 的读口)。\n const origin = String(getCurrentStmt()?.id ?? '')\n const table = new Map([[origin, revolveConstructRoles(kernel, revolved, options?.axis)]])\n // GOTCHA:recordOutput 必须带第 4 参 part——part 键表(outputTablesByPart)\n // 是 op 实现与 edgeRef 解析的权威读口,只落语句键表时 part 键会保持\n // adoptEntity 时登记的空表(探针实测),下游仍报 no role lineage。\n const part = getCurrentStmt()?.outputs?.[0]\n runtimeLineage.recordOutput(origin as never, table, revolved, part as never)\n return s\n },\n naming: {\n kind: 'construct',\n newFaces: {\n via: 'explicit',\n vocab: [\n { kind: 'semantic', name: 'top' },\n { kind: 'semantic', name: 'bottom' },\n { kind: 'wall', index: 0 },\n ],\n },\n } as never,\n})\n"]}
1
+ {"version":3,"file":"revolve.js","sourceRoot":"","sources":["../../src/api/revolve.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * revolve — 手写平台 op(E3 / Q13 路线①的 revolve 实例)\n *\n * 生成投影(`api/generated/operations.ts` 的 revolve)是 compat op:几何由\n * 早期 brepjs 承载,但**没有可挂面命名的代码位置**,产物不带 roleTable,\n * 下游 `cad.edgeRef` 抛 \"nameless shape\"(ModelFromV021 缺陷)。\n *\n * 本文件按 `cut` 覆盖生成投影的同一先例(`api-namespace.ts`),用 defineOp 包住\n * 投影调用,并在产物登记处建链根 roleTable(origin = 语句 StmtId,与\n * `extrude.ts` / `import-brep.ts` 同源机制)。\n *\n * 词汇表沿用生成 spec 的 construct 声明:`bottom` / `top`(旋转轴两端的平面\n * 端面)+ `wall:<i>`(其余侧面,按枚举序)。判定口径与 extrude 相同——现场\n * 几何是唯一真值:平面法向与轴 |cos| ≈ 1 → 端面,按中心沿轴坐标分 bottom/top;\n * 其余(含圆柱等曲面侧面)→ wall:i。无法分类的面不进表(缺身份是显式状态)。\n */\n\nimport type { Shape } from '../mesh/types'\nimport { defineOp } from '../sdk'\nimport { getCurrentStmt } from '../runtime-state'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrep } from '../shape'\nimport { solidToShape } from '../brep/brep-ops'\nimport { runtimeLineage } from '../topology/naming/lineage'\nimport { formatRoleName, semantic, wall } from '../topology/naming/role-name'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\nimport type { BrepHandle } from '../brep/engine/types'\n\n/**\n * revolve 的 construct 词汇表:`bottom` / `top`(旋转轴两端的平面端面)+ `wall:<i>`。\n * 判定口径见 {@link revolveConstructRoles}。\n */\n\n/** options.axis 的宽松形态(数组或 {x,y,z})。 */\nfunction axisVec(v: unknown): readonly [number, number, number] {\n if (Array.isArray(v) && v.length >= 3 && v.every((n) => typeof n === 'number')) {\n return [v[0]!, v[1]!, v[2]!]\n }\n if (typeof v === 'object' && v !== null && 'x' in (v as object)) {\n const o = v as { x: number; y: number; z: number }\n return [o.x, o.y, o.z]\n }\n return [0, 0, 1]\n}\n\n/**\n * revolve 的 construct 词汇枚举器(与 `extrudeConstructRoles` 同口径,轴来源不同:\n * extrude 从端面法向对差反推,revolve 直接用调用点声明的旋转轴)。\n *\n * @param kernel - the OCCT kernel.\n * @param solid - the revolved solid.\n * @param axis - the revolution axis (call-site declared; default [0,0,1]).\n * @returns role(线格式串)→ hash 子表。\n */\nfunction revolveConstructRoles(\n kernel: BrepEngineApi,\n solid: BrepHandle,\n axisOpt: unknown,\n): Map<string, number[]> {\n const roles = new Map<string, number[]>()\n const faceHandles = kernel.getSubShapes(solid, 'face')\n try {\n const hashes = kernel.subShapeHashes(solid, 'face', 2147483647)\n const [ax0, ax1, ax2] = axisVec(axisOpt)\n const axLen = Math.hypot(ax0, ax1, ax2)\n if (axLen < 1e-9) return roles\n const ax: readonly [number, number, number] = [ax0 / axLen, ax1 / axLen, ax2 / axLen]\n\n const caps: { idx: number; t: number }[] = []\n const isPlaneCap: boolean[] = faceHandles.map((f) => {\n if (kernel.surfaceType(f) !== 'plane') return false\n const uv = kernel.uvBounds(f)\n const n = kernel.surfaceNormal(f, (uv.uMin + uv.uMax) / 2, (uv.vMin + uv.vMax) / 2)\n const len = Math.hypot(n.x, n.y, n.z) || 1\n const cos = Math.abs(n.x * ax[0]! + n.y * ax[1]! + n.z * ax[2]!) / len\n return cos > 0.999\n })\n for (let i = 0; i < faceHandles.length; i++) {\n if (hashes[i] === undefined) continue\n if (isPlaneCap[i]) {\n const c = kernel.surfaceCenterOfMass(faceHandles[i]!)\n caps.push({ idx: i, t: c.x * ax[0]! + c.y * ax[1]! + c.z * ax[2]! })\n }\n }\n if (caps.length >= 2) {\n // 常规旋转体:轴两端平面端面 = bottom/top,其余面(含曲面侧面)wall:<i>\n let wallIdx = 0\n for (let i = 0; i < faceHandles.length; i++) {\n const hash = hashes[i]\n if (hash === undefined || isPlaneCap[i]) continue\n roles.set(formatRoleName(wall(wallIdx)), [hash])\n wallIdx++\n }\n caps.sort((p, q) => p.t - q.t)\n roles.set(formatRoleName(semantic('bottom')), [hashes[caps[0]!.idx]!])\n roles.set(formatRoleName(semantic('top')), [hashes[caps[caps.length - 1]!.idx]!])\n } else {\n // GOTCHA(退化形态,2026-09-23):轮廓面在轴平面内(如 XY 草图绕 Z 转)\n // 时产物的面法向全部 ∥ 轴 → caps 判不出两端。此时退化为按枚举序\n // wall:<i> 命名全部面——身份是能力,退化形态不给名字就会重演 nameless\n // shape 缺陷;枚举序稳定(同 extrude 的 wall 序依据)。\n for (let i = 0; i < faceHandles.length; i++) {\n const hash = hashes[i]\n if (hash === undefined) continue\n roles.set(formatRoleName(wall(i)), [hash])\n }\n }\n return roles\n } finally {\n for (const h of faceHandles) {\n try { kernel.release(h) } catch { /* 已释放 */ }\n }\n }\n}\n\n/**\n * 旋转成形:把平面轮廓绕轴旋转(兼容生成投影签名)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name revolve\n * @param face - 平面轮廓。type:Shape required:true\n * @param options - 旋转轴/点/角度(透传 compat 语义)。type:RevolveOptions\n * @returns Shape 旋转体(带链根 roleTable:bottom/top/wall:i)。\n * @example\n * const p1 = await cad.revolve(part0, { axis: [0, 0, 1], at: [0, 0, 0], angle: 6.283185307179586 })\n */\nexport const revolve = defineOp({\n brep: async (face: Shape, options?: { axis?: unknown }) => {\n // compat 语义经 l3-bridge 三步桥接(与 compatOp 的 adapter 相同步骤,\n // 但在这里执行以便在**同一处**收编产物并建链根 roleTable——compatOp 的\n // 自动 adoptOut 会先登记一次,二次 fromBrep 会让 edgeRef 读到残缺表)。\n const kernel = getBrepApi()\n const handle = brepOf(face) as BrepHandle\n if (!handle) throw new Error('[revolve] input is not BREP')\n const { at = [0, 0, 0], axis = [0, 0, 1], angle = 2 * Math.PI } = (options ?? {}) as {\n at?: [number, number, number]\n axis?: [number, number, number]\n angle?: number\n }\n const revolved = kernel.revolveVec(handle, { x: at[0], y: at[1], z: at[2] }, { x: axis[0], y: axis[1], z: axis[2] }, (angle * 180) / Math.PI)\n const s = fromBrep(solidToShape(kernel, revolved), { solid: revolved }) as Shape\n if (!getBrepApi()) return s\n // E3(Q13 路线①):链根建 roleTable,origin = 语句 StmtId(Phase 1.6 口径)。\n // GOTCHA(2026-09-23):不能对 adoptEntity 的产物再走一次 fromBrep——同语句的\n // registeredStmtId 去重会让第二次登记被吞(探针实测:outputTables 里没有本\n // 语句键)。直接经 runtimeLineage.recordOutput 落语句键表;define-op 包装层\n // 会在 impl 返回后把它传播到 part 键权威位(edgeRef 的读口)。\n const origin = String(getCurrentStmt()?.id ?? '')\n const table = new Map([[origin, revolveConstructRoles(kernel, revolved, options?.axis)]])\n // GOTCHA:recordOutput 必须带第 4 参 part——part 键表(outputTablesByPart)\n // 是 op 实现与 edgeRef 解析的权威读口,只落语句键表时 part 键会保持\n // adoptEntity 时登记的空表(探针实测),下游仍报 no role lineage。\n const part = getCurrentStmt()?.outputs?.[0]\n runtimeLineage.recordOutput(origin as never, table, revolved, part as never)\n return s\n },\n naming: {\n kind: 'construct',\n newFaces: {\n via: 'explicit',\n vocab: [\n { kind: 'semantic', name: 'top' },\n { kind: 'semantic', name: 'bottom' },\n { kind: 'wall', index: 0 },\n ],\n },\n } as never,\n\n paramDims: { face: 'plain' },\n})\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"screw.d.ts","sourceRoot":"","sources":["../../src/api/screw.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AA2H1C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CASvE;AAED;;;;;;;;;;;;;;;;;;;;IAoBI;AACJ,eAAO,MAAM,KAAK;;CAoBhB,CAAA"}
1
+ {"version":3,"file":"screw.d.ts","sourceRoot":"","sources":["../../src/api/screw.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AA2H1C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CASvE;AAED;;;;;;;;;;;;;;;;;;;;IAoBI;AACJ,eAAO,MAAM,KAAK;;CAsBhB,CAAA"}
package/dist/api/screw.js CHANGED
@@ -163,5 +163,6 @@ export const screw = defineOp({
163
163
  // 平台 op(D11):螺纹 loft 是 occt-only(threadFns.ts,D3)→ engines 声明。
164
164
  engines: ['occt'],
165
165
  naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [] } },
166
+ paramDims: {},
166
167
  });
167
168
  //# sourceMappingURL=screw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screw.js","sourceRoot":"","sources":["../../src/api/screw.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * api screw — 螺丝创建库函数(creator 函数,无输入)\n *\n * 平台分层(narrowing plan Phase 5,D11):**平台 op(occt)**——BREP 路径的\n * 螺纹经 `threadBrep`(brep-operations/threadFns.ts)走 occt-only `loft`(D3)→\n * `engines: ['occt']`。mesh 路径(cad.screw)在 auto 模式下正常降级。\n *\n * dispatchPath 静态判定 brep/mesh,产物经 solid()/fromBrep() 构造器创建。\n */\n\nimport type { Shape } from '../mesh/types'\n// B3 correction (2026-10-06): no library-face cad aggregate — import the impl from its own module.\nimport * as meshPrimitives from '../mesh/primitives'\nimport { solidToShape } from '../brep/brep-ops'\nimport { threadBrep } from './brep-operations/threadFns'\nimport { getScrewSpec, threadToPitchMm, SCREW_HEAD_DIMS } from '../primitives/screw/screw-db'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { fromBrep } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\n\n/** BREP 路径:threadBrep + fuse 构造精确螺纹螺钉 + 三角化 + fromBrep 登记。 */\nasync function screwBrep(params: Record<string, unknown>): Promise<Shape> {\n // L1 面(D12):makeCylinder/translate/fuse/makeCone 等全是 L1;螺纹 loft 在\n // threadFns 内部走 occt 平台面。\n const kernel = getBrepApi()\n\n const system = params.system as 'metric' | 'imperial'\n const specIdx = params.specIdx as number\n const spec = getScrewSpec(system, specIdx)\n const length = params.length as number\n const head = params.head as 'hex' | 'chc' | 'none'\n const thread = params.thread as 'coarse' | 'fine' | 'custom' | 'none'\n const pitchCustom = params.pitchCustom as number | undefined\n\n // 1. 螺杆(圆柱体,居中)\n const shank = kernel.makeCylinder(spec.dia / 2, length)\n const centeredShank = kernel.translate(shank, 0, 0, -length / 2)\n kernel.release(shank)\n\n let result = centeredShank\n\n // 2. 螺纹(外螺纹)\n if (thread !== 'none') {\n const pitch = threadToPitchMm(system, spec, thread, pitchCustom)\n if (pitch > 0) {\n const threadSolid = threadBrep(kernel, {\n radius: spec.dia / 2,\n pitch,\n height: length,\n })\n // threadBrep creates thread from Z=0 to Z=height; center it to match shank\n const centeredThread = kernel.translate(threadSolid, 0, 0, -length / 2)\n kernel.release(threadSolid)\n const fused = kernel.fuse(result, centeredThread)\n kernel.release(result)\n kernel.release(centeredThread)\n result = fused\n }\n }\n\n // 3. 螺钉头\n if (head === 'hex') {\n // 六棱柱头\n const headHeight = spec.dia * SCREW_HEAD_DIMS.hex.heightFactor\n const headRadius = spec.dia * SCREW_HEAD_DIMS.hex.radiusFactor\n const headSolid = makeHexPrismBrep(kernel, headRadius, headHeight, length / 2)\n const fused = kernel.fuse(result, headSolid)\n kernel.release(result)\n kernel.release(headSolid)\n result = fused\n } else if (head === 'chc') {\n // 沉头(圆锥)\n const headHeight = spec.dia * SCREW_HEAD_DIMS.chc.heightFactor\n const headRadius = spec.dia * SCREW_HEAD_DIMS.chc.radiusFactor\n const cone = kernel.makeCone(headRadius, 0, headHeight)\n const positioned = kernel.translate(cone, 0, 0, length / 2)\n kernel.release(cone)\n const fused = kernel.fuse(result, positioned)\n kernel.release(result)\n kernel.release(positioned)\n result = fused\n }\n\n return fromBrep(solidToShape(kernel, result), { solid: result })\n}\n\n/**\n * 构造六棱柱 BREP solid\n */\nfunction makeHexPrismBrep(\n kernel: BrepEngineApi,\n radius: number,\n height: number,\n zOffset: number,\n): BrepHandle {\n // 六边形顶点\n const pts: { x: number; y: number; z: number }[] = []\n for (let i = 0; i < 6; i++) {\n const angle = (i * 2 * Math.PI) / 6\n pts.push({\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n z: 0,\n })\n }\n\n // 构建边\n const edges: BrepHandle[] = []\n for (let i = 0; i < 6; i++) {\n const edge = kernel.makeLineEdge(pts[i], pts[(i + 1) % 6])\n edges.push(edge)\n }\n\n // 构建 wire → face → extrude\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n const extruded = kernel.extrude(face, 0, 0, height)\n\n // 平移到 zOffset\n const positioned = kernel.translate(extruded, 0, 0, zOffset)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n kernel.release(extruded)\n\n return positioned\n}\n\n/**\n * Validate screw parameters: `system` and `specIdx` are required, and `length`\n * must be a finite number.\n * @param params - the raw screw operation parameters.\n */\nexport function assertScrewParams(params: Record<string, unknown>): void {\n if (typeof params.system !== 'string' || typeof params.specIdx !== 'number') {\n throw new Error(\n `[api/screw] system (string) and specIdx (number) are required, got system=${JSON.stringify(params.system)}, specIdx=${JSON.stringify(params.specIdx)}`,\n )\n }\n if (typeof params.length !== 'number' || !Number.isFinite(params.length)) {\n throw new Error(`[api/screw] length must be a finite number, got ${JSON.stringify(params.length)}`)\n }\n}\n\n/**\n * 生成螺丝零件(螺纹 + 头型)。\n * @group 创建\n * @inputs 0\n * @async true\n * @qual ok\n * @name screw\n * @returns Shape 螺丝几何,生成独立零件。\n * @param params.system - 制式。type:'metric' | 'imperial' required:true\n * @param params.specIdx - 规格索引(决定公称直径,如 5 → M5、6 → M6)。type:number required:true\n * @param params.thread - 螺纹类型。type:'coarse' | 'fine' | 'custom' | 'none' 默认 'coarse'\n * @param params.length - 螺杆长度(mm)。type:number required:true\n * @param params.head - 头型(hex 六角 / chc 沉头 / none 无头)。type:'hex' | 'chc' | 'none' 默认 'none'\n * @param params.pitchCustom - 自定螺距(thread='custom' 时用)。type:number\n * @param params.nRad - 径向分段数(拓扑参数)。type:number 默认 32\n * @note nRad 是拓扑参数不是渲染参数:mesh 路径直接决定分段数;BREP 路径用精确曲面,nRad 仅作 BREP→mesh 三角化角度提示(angular deflection ≈ 2π/nRad)。.fai.js 默认 32 不输出,非默认才输出以保证可复现。\n * @note pitchCustom 执行层已支持(makeScrew/threadBrep 均读取),codegen 曾不序列化(TODO);当前已机械输出。\n * @example\n * const s = await cad.screw({ system: 'metric', specIdx: 6, thread: 'coarse', length: 20, head: 'hex' })\n * const s = await cad.screw({ system: 'metric', specIdx: 6, thread: 'coarse', length: 20, head: 'hex', nRad: 64 })\n */\nexport const screw = defineOp({\n mesh: async (params: Record<string, unknown>) => {\n assertScrewParams(params)\n return meshPrimitives.screw({\n system: params.system as 'metric' | 'imperial',\n specIdx: params.specIdx as number,\n thread: params.thread as 'coarse' | 'fine' | 'custom' | 'none',\n pitchCustom: params.pitchCustom as number | undefined,\n length: params.length as number,\n head: params.head as 'hex' | 'chc' | 'none',\n nRad: params.nRad as number | undefined,\n })\n },\n brep: async (params: Record<string, unknown>) => {\n assertScrewParams(params)\n return screwBrep(params)\n },\n // 平台 op(D11):螺纹 loft 是 occt-only(threadFns.ts,D3)→ engines 声明。\n engines: ['occt'],\n naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [] } } as Provenance,\n})\n"]}
1
+ {"version":3,"file":"screw.js","sourceRoot":"","sources":["../../src/api/screw.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * api screw — 螺丝创建库函数(creator 函数,无输入)\n *\n * 平台分层(narrowing plan Phase 5,D11):**平台 op(occt)**——BREP 路径的\n * 螺纹经 `threadBrep`(brep-operations/threadFns.ts)走 occt-only `loft`(D3)→\n * `engines: ['occt']`。mesh 路径(cad.screw)在 auto 模式下正常降级。\n *\n * dispatchPath 静态判定 brep/mesh,产物经 solid()/fromBrep() 构造器创建。\n */\n\nimport type { Shape } from '../mesh/types'\n// B3 correction (2026-10-06): no library-face cad aggregate — import the impl from its own module.\nimport * as meshPrimitives from '../mesh/primitives'\nimport { solidToShape } from '../brep/brep-ops'\nimport { threadBrep } from './brep-operations/threadFns'\nimport { getScrewSpec, threadToPitchMm, SCREW_HEAD_DIMS } from '../primitives/screw/screw-db'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { fromBrep } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\nimport type { BrepHandle } from '../brep/engine/types'\nimport type { BrepEngineApi } from '../brep/engine/primitives'\n\n/** BREP 路径:threadBrep + fuse 构造精确螺纹螺钉 + 三角化 + fromBrep 登记。 */\nasync function screwBrep(params: Record<string, unknown>): Promise<Shape> {\n // L1 面(D12):makeCylinder/translate/fuse/makeCone 等全是 L1;螺纹 loft 在\n // threadFns 内部走 occt 平台面。\n const kernel = getBrepApi()\n\n const system = params.system as 'metric' | 'imperial'\n const specIdx = params.specIdx as number\n const spec = getScrewSpec(system, specIdx)\n const length = params.length as number\n const head = params.head as 'hex' | 'chc' | 'none'\n const thread = params.thread as 'coarse' | 'fine' | 'custom' | 'none'\n const pitchCustom = params.pitchCustom as number | undefined\n\n // 1. 螺杆(圆柱体,居中)\n const shank = kernel.makeCylinder(spec.dia / 2, length)\n const centeredShank = kernel.translate(shank, 0, 0, -length / 2)\n kernel.release(shank)\n\n let result = centeredShank\n\n // 2. 螺纹(外螺纹)\n if (thread !== 'none') {\n const pitch = threadToPitchMm(system, spec, thread, pitchCustom)\n if (pitch > 0) {\n const threadSolid = threadBrep(kernel, {\n radius: spec.dia / 2,\n pitch,\n height: length,\n })\n // threadBrep creates thread from Z=0 to Z=height; center it to match shank\n const centeredThread = kernel.translate(threadSolid, 0, 0, -length / 2)\n kernel.release(threadSolid)\n const fused = kernel.fuse(result, centeredThread)\n kernel.release(result)\n kernel.release(centeredThread)\n result = fused\n }\n }\n\n // 3. 螺钉头\n if (head === 'hex') {\n // 六棱柱头\n const headHeight = spec.dia * SCREW_HEAD_DIMS.hex.heightFactor\n const headRadius = spec.dia * SCREW_HEAD_DIMS.hex.radiusFactor\n const headSolid = makeHexPrismBrep(kernel, headRadius, headHeight, length / 2)\n const fused = kernel.fuse(result, headSolid)\n kernel.release(result)\n kernel.release(headSolid)\n result = fused\n } else if (head === 'chc') {\n // 沉头(圆锥)\n const headHeight = spec.dia * SCREW_HEAD_DIMS.chc.heightFactor\n const headRadius = spec.dia * SCREW_HEAD_DIMS.chc.radiusFactor\n const cone = kernel.makeCone(headRadius, 0, headHeight)\n const positioned = kernel.translate(cone, 0, 0, length / 2)\n kernel.release(cone)\n const fused = kernel.fuse(result, positioned)\n kernel.release(result)\n kernel.release(positioned)\n result = fused\n }\n\n return fromBrep(solidToShape(kernel, result), { solid: result })\n}\n\n/**\n * 构造六棱柱 BREP solid\n */\nfunction makeHexPrismBrep(\n kernel: BrepEngineApi,\n radius: number,\n height: number,\n zOffset: number,\n): BrepHandle {\n // 六边形顶点\n const pts: { x: number; y: number; z: number }[] = []\n for (let i = 0; i < 6; i++) {\n const angle = (i * 2 * Math.PI) / 6\n pts.push({\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n z: 0,\n })\n }\n\n // 构建边\n const edges: BrepHandle[] = []\n for (let i = 0; i < 6; i++) {\n const edge = kernel.makeLineEdge(pts[i], pts[(i + 1) % 6])\n edges.push(edge)\n }\n\n // 构建 wire → face → extrude\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n const extruded = kernel.extrude(face, 0, 0, height)\n\n // 平移到 zOffset\n const positioned = kernel.translate(extruded, 0, 0, zOffset)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n kernel.release(extruded)\n\n return positioned\n}\n\n/**\n * Validate screw parameters: `system` and `specIdx` are required, and `length`\n * must be a finite number.\n * @param params - the raw screw operation parameters.\n */\nexport function assertScrewParams(params: Record<string, unknown>): void {\n if (typeof params.system !== 'string' || typeof params.specIdx !== 'number') {\n throw new Error(\n `[api/screw] system (string) and specIdx (number) are required, got system=${JSON.stringify(params.system)}, specIdx=${JSON.stringify(params.specIdx)}`,\n )\n }\n if (typeof params.length !== 'number' || !Number.isFinite(params.length)) {\n throw new Error(`[api/screw] length must be a finite number, got ${JSON.stringify(params.length)}`)\n }\n}\n\n/**\n * 生成螺丝零件(螺纹 + 头型)。\n * @group 创建\n * @inputs 0\n * @async true\n * @qual ok\n * @name screw\n * @returns Shape 螺丝几何,生成独立零件。\n * @param params.system - 制式。type:'metric' | 'imperial' required:true\n * @param params.specIdx - 规格索引(决定公称直径,如 5 → M5、6 → M6)。type:number required:true\n * @param params.thread - 螺纹类型。type:'coarse' | 'fine' | 'custom' | 'none' 默认 'coarse'\n * @param params.length - 螺杆长度(mm)。type:number required:true\n * @param params.head - 头型(hex 六角 / chc 沉头 / none 无头)。type:'hex' | 'chc' | 'none' 默认 'none'\n * @param params.pitchCustom - 自定螺距(thread='custom' 时用)。type:number\n * @param params.nRad - 径向分段数(拓扑参数)。type:number 默认 32\n * @note nRad 是拓扑参数不是渲染参数:mesh 路径直接决定分段数;BREP 路径用精确曲面,nRad 仅作 BREP→mesh 三角化角度提示(angular deflection ≈ 2π/nRad)。.fai.js 默认 32 不输出,非默认才输出以保证可复现。\n * @note pitchCustom 执行层已支持(makeScrew/threadBrep 均读取),codegen 曾不序列化(TODO);当前已机械输出。\n * @example\n * const s = await cad.screw({ system: 'metric', specIdx: 6, thread: 'coarse', length: 20, head: 'hex' })\n * const s = await cad.screw({ system: 'metric', specIdx: 6, thread: 'coarse', length: 20, head: 'hex', nRad: 64 })\n */\nexport const screw = defineOp({\n mesh: async (params: Record<string, unknown>) => {\n assertScrewParams(params)\n return meshPrimitives.screw({\n system: params.system as 'metric' | 'imperial',\n specIdx: params.specIdx as number,\n thread: params.thread as 'coarse' | 'fine' | 'custom' | 'none',\n pitchCustom: params.pitchCustom as number | undefined,\n length: params.length as number,\n head: params.head as 'hex' | 'chc' | 'none',\n nRad: params.nRad as number | undefined,\n })\n },\n brep: async (params: Record<string, unknown>) => {\n assertScrewParams(params)\n return screwBrep(params)\n },\n // 平台 op(D11):螺纹 loft 是 occt-only(threadFns.ts,D3)→ engines 声明。\n engines: ['occt'],\n naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [] } } as Provenance,\n\n paramDims: {},\n})\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sdf.d.ts","sourceRoot":"","sources":["../../src/api/sdf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIrE;AAED;;;;;;;;;;;;;;;IAeI;AACJ,eAAO,MAAM,GAAG;;CAWd,CAAA"}
1
+ {"version":3,"file":"sdf.d.ts","sourceRoot":"","sources":["../../src/api/sdf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIrE;AAED;;;;;;;;;;;;;;;IAeI;AACJ,eAAO,MAAM,GAAG;;CAad,CAAA"}
package/dist/api/sdf.js CHANGED
@@ -44,5 +44,6 @@ export const sdf = defineOp({
44
44
  });
45
45
  },
46
46
  naming: { kind: 'unmodeled', reason: 'sdf is mesh-only, no BREP face identity' },
47
+ paramDims: {},
47
48
  });
48
49
  //# sourceMappingURL=sdf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdf.js","sourceRoot":"","sources":["../../src/api/sdf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mGAAmG;AACnG,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGjC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE;QAC9C,eAAe,CAAC,MAAM,CAAC,CAAA;QACvB,OAAO,cAAc,CAAC,GAAG,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,IAAc;YAC3B,GAAG,EAAE,MAAM,CAAC,GAAuE;YACnF,UAAU,EAAE,MAAM,CAAC,UAAgC;YACnD,MAAM,EAAE,MAAM,CAAC,MAA4C;SAC5D,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,yCAAyC,EAAgB;CAC/F,CAAC,CAAA","sourcesContent":["/**\n * api sdf — SDF 库函数(mesh-only,创建类无输入)\n *\n *\n * sdf 无 BREP 实现(mesh-only)——dispatchPath 在 brep 模式下调用前抛错。\n * part-brep-lost 事件由引擎统一发(P4,库不再 emit)。\n */\n\n// B3 correction (2026-10-06): no library-face cad aggregate — import the impl from its own module.\nimport * as meshPrimitives from '../mesh/primitives'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\n\n/**\n * Validate sdf parameters: `code` must be a non-empty string.\n * @param params - the raw sdf operation parameters.\n */\nexport function assertSdfParams(params: Record<string, unknown>): void {\n if (typeof params.code !== 'string' || params.code.trim() === '') {\n throw new Error(`[api/sdf] code must be a non-empty string, got ${JSON.stringify(params.code)}`)\n }\n}\n\n/**\n * 用 SDF(符号距离场)函数生成网格体(mesh-only)。\n * @group 创建\n * @inputs 0\n * @async true\n * @qual warn\n * @name sdf\n * @note SDF 无 BREP 实现(mesh-only);brep 模式下 dispatchPath 调用前抛 BrepUnsupportedError。SDF 天生是网格操作,允许网格参数(resolution)。\n * @returns Shape SDF 生成的网格体,生成独立零件。\n * @param params.code - SDF 函数源码(`sdf(x,y,z)` 定义或标题模板调用,如 'return sphere(10) - sphere(5, [10,0,0])')。type:string required:true\n * @param params.box - 采样包围盒。type:[[minX,minY,minZ],[maxX,maxY,maxZ]] 默认 [[-10,-10,-10],[10,10,10]]\n * @param params.resolution - 网格单元边长(越小越精细)。type:number 默认 1.0\n * @param params.params - 参数数值表(SDF 里引用的变量值)。type:object\n * @example\n * const s = await cad.sdf({ code: 'return sphere(10) - sphere(5, [10,0,0])', box: [[-20,-20,-20],[30,20,20]], resolution: 1 })\n */\nexport const sdf = defineOp({\n mesh: async (params: Record<string, unknown>) => {\n assertSdfParams(params)\n return meshPrimitives.sdf({\n code: params.code as string,\n box: params.box as [[number, number, number], [number, number, number]] | undefined,\n resolution: params.resolution as number | undefined,\n params: params.params as Record<string, number> | undefined,\n })\n },\n naming: { kind: 'unmodeled', reason: 'sdf is mesh-only, no BREP face identity' } as Provenance,\n})\n"]}
1
+ {"version":3,"file":"sdf.js","sourceRoot":"","sources":["../../src/api/sdf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mGAAmG;AACnG,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGjC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE;QAC9C,eAAe,CAAC,MAAM,CAAC,CAAA;QACvB,OAAO,cAAc,CAAC,GAAG,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,IAAc;YAC3B,GAAG,EAAE,MAAM,CAAC,GAAuE;YACnF,UAAU,EAAE,MAAM,CAAC,UAAgC;YACnD,MAAM,EAAE,MAAM,CAAC,MAA4C;SAC5D,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,yCAAyC,EAAgB;IAE9F,SAAS,EAAE,EAAE;CACd,CAAC,CAAA","sourcesContent":["/**\n * api sdf — SDF 库函数(mesh-only,创建类无输入)\n *\n *\n * sdf 无 BREP 实现(mesh-only)——dispatchPath 在 brep 模式下调用前抛错。\n * part-brep-lost 事件由引擎统一发(P4,库不再 emit)。\n */\n\n// B3 correction (2026-10-06): no library-face cad aggregate — import the impl from its own module.\nimport * as meshPrimitives from '../mesh/primitives'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\n\n/**\n * Validate sdf parameters: `code` must be a non-empty string.\n * @param params - the raw sdf operation parameters.\n */\nexport function assertSdfParams(params: Record<string, unknown>): void {\n if (typeof params.code !== 'string' || params.code.trim() === '') {\n throw new Error(`[api/sdf] code must be a non-empty string, got ${JSON.stringify(params.code)}`)\n }\n}\n\n/**\n * 用 SDF(符号距离场)函数生成网格体(mesh-only)。\n * @group 创建\n * @inputs 0\n * @async true\n * @qual warn\n * @name sdf\n * @note SDF 无 BREP 实现(mesh-only);brep 模式下 dispatchPath 调用前抛 BrepUnsupportedError。SDF 天生是网格操作,允许网格参数(resolution)。\n * @returns Shape SDF 生成的网格体,生成独立零件。\n * @param params.code - SDF 函数源码(`sdf(x,y,z)` 定义或标题模板调用,如 'return sphere(10) - sphere(5, [10,0,0])')。type:string required:true\n * @param params.box - 采样包围盒。type:[[minX,minY,minZ],[maxX,maxY,maxZ]] 默认 [[-10,-10,-10],[10,10,10]]\n * @param params.resolution - 网格单元边长(越小越精细)。type:number 默认 1.0\n * @param params.params - 参数数值表(SDF 里引用的变量值)。type:object\n * @example\n * const s = await cad.sdf({ code: 'return sphere(10) - sphere(5, [10,0,0])', box: [[-20,-20,-20],[30,20,20]], resolution: 1 })\n */\nexport const sdf = defineOp({\n mesh: async (params: Record<string, unknown>) => {\n assertSdfParams(params)\n return meshPrimitives.sdf({\n code: params.code as string,\n box: params.box as [[number, number, number], [number, number, number]] | undefined,\n resolution: params.resolution as number | undefined,\n params: params.params as Record<string, number> | undefined,\n })\n },\n naming: { kind: 'unmodeled', reason: 'sdf is mesh-only, no BREP face identity' } as Provenance,\n\n paramDims: {},\n})\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"section-by-plane.d.ts","sourceRoot":"","sources":["../../src/api/section-by-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ1C,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpC,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,iBAAiB;IACjB,KAAK,EAAE,IAAI,CAAA;IACX,mBAAmB;IACnB,MAAM,EAAE,IAAI,CAAA;CACb;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc;;CAOzB,CAAA"}
1
+ {"version":3,"file":"section-by-plane.d.ts","sourceRoot":"","sources":["../../src/api/section-by-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ1C,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpC,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,iBAAiB;IACjB,KAAK,EAAE,IAAI,CAAA;IACX,mBAAmB;IACnB,MAAM,EAAE,IAAI,CAAA;CACb;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc;;CAMzB,CAAA"}
@@ -52,7 +52,6 @@ function sectionByPlaneBrep(input, params) {
52
52
  * const sec = await cad.sectionByPlane(part0, { point: [0,0,5], normal: [0,0,1] })
53
53
  */
54
54
  export const sectionByPlane = defineOp({
55
- capabilities: ['directEdit'],
56
55
  paramDims: { 'params.point': 'length', 'params.normal': 'length' },
57
56
  brep(input, params) {
58
57
  return sectionByPlaneBrep(input, params);
@@ -1 +1 @@
1
- {"version":3,"file":"section-by-plane.js","sourceRoot":"","sources":["../../src/api/section-by-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAajC,8DAA8D;AAC9D,SAAS,MAAM,CAAC,CAAO;IACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACtC,CAAC;AAED,wEAAwE;AACxE,SAAS,kBAAkB,CAAC,KAAY,EAAE,MAA4B;IACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAK,EAA2B,CAAA;IAChE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA2B,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;IACrC,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,SAAS,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE;IAClE,IAAI,CAAC,KAAY,EAAE,MAA4B;QAC7C,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,gDAAgD,EAAgB;CACtG,CAAC,CAAA","sourcesContent":["/**\n * api sectionByPlane — 平面截面:solid 与无限平面的精确交线(手写中立 op,Phase 6.2)\n *\n * 中立 op:L1 `sectionByPlane(shape, point, normal)` 在 occt 与 brepkit 两侧均有\n * 真实现 ⇒ 走 `getBrepApi()`(D12),不声明 engines。\n *\n * 产物形态(设计原则 5 + §2.4①):L1 返回交线句柄**数组**(occt 适配器把\n * compound 逐条 downcast 成 edge/wire),数组过不了单产物边界 —— 收拢为\n * **1D compound**(`makeCompound(edges)`)经 `fromBrepCurve` 登记为\n * `kind:'curve'`(Phase 3 判别位;wire/edge 载荷为空,显示走 L1 `wireframe`)。\n * 无交线(平面不与体相交)显式报错 —— 不返回假空产物(原则 9)。\n */\n\nimport type { Shape } from '../mesh/types'\nimport type { BrepHandle, BrepVec3 } from '../brep/engine/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrepCurve } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\n\ntype Vec3 = [number, number, number]\n\n/** `cad.sectionByPlane` 参数。 */\nexport interface SectionByPlaneParams {\n /** 平面上一点(mm)。 */\n point: Vec3\n /** 平面法向(不必单位化)。 */\n normal: Vec3\n}\n\n/** 元组 → BrepVec3 对象(同 split-by-plane:L1 向量形参是 {x,y,z} 对象)。 */\nfunction toVec3(v: Vec3): BrepVec3 {\n if (!Array.isArray(v) || v.length !== 3 || v.some((n) => typeof n !== 'number' || !Number.isFinite(n))) {\n throw new Error('E_SECTION_BY_PLANE_BAD_VEC: point/normal must be [x,y,z] finite numbers')\n }\n return { x: v[0], y: v[1], z: v[2] }\n}\n\n/** BREP 路径:L1 sectionByPlane → 交线收拢为 1D compound → fromBrepCurve 登记。 */\nfunction sectionByPlaneBrep(input: Shape, params: SectionByPlaneParams): Shape {\n const { point, normal } = params ?? ({} as SectionByPlaneParams)\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error('E_SECTION_BY_PLANE_NO_BREP: sectionByPlane input is not BREP')\n const curves = kernel.sectionByPlane(solid, toVec3(point), toVec3(normal))\n if (!curves || curves.length === 0) {\n throw new Error('E_SECTION_BY_PLANE_NO_INTERSECTION: plane does not intersect the shape')\n }\n const compound = kernel.makeCompound(curves)\n return fromBrepCurve(solidToShape(kernel, compound), { solid: compound })\n}\n\n/**\n * 求实体与无限平面的精确截面线(1D 曲线,可继续建模/导出 STEP)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name sectionByPlane\n * @note 中立 op:L1 sectionByPlane 两引擎同实现。产物是 1D 曲线(kind:'curve',\n * 全部交线收拢为一个 compound);平面不与体相交时显式报错。\n * @returns Shape 1D 截面曲线。\n * @param input - 目标实体。type:Shape required:true\n * @param params.point - 平面上一点 [x,y,z](mm)。type:Vec3 required:true\n * @param params.normal - 平面法向 [x,y,z]。type:Vec3 required:true\n * @example\n * const sec = await cad.sectionByPlane(part0, { point: [0,0,5], normal: [0,0,1] })\n */\nexport const sectionByPlane = defineOp({\n capabilities: ['directEdit'],\n paramDims: { 'params.point': 'length', 'params.normal': 'length' },\n brep(input: Shape, params: SectionByPlaneParams) {\n return sectionByPlaneBrep(input, params)\n },\n naming: { kind: 'unmodeled', reason: '1D section curves have no face role vocabulary' } as Provenance,\n})\n"]}
1
+ {"version":3,"file":"section-by-plane.js","sourceRoot":"","sources":["../../src/api/section-by-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAajC,8DAA8D;AAC9D,SAAS,MAAM,CAAC,CAAO;IACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACtC,CAAC;AAED,wEAAwE;AACxE,SAAS,kBAAkB,CAAC,KAAY,EAAE,MAA4B;IACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAK,EAA2B,CAAA;IAChE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA2B,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;IACrC,SAAS,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE;IAClE,IAAI,CAAC,KAAY,EAAE,MAA4B;QAC7C,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,gDAAgD,EAAgB;CACtG,CAAC,CAAA","sourcesContent":["/**\n * api sectionByPlane — 平面截面:solid 与无限平面的精确交线(手写中立 op,Phase 6.2)\n *\n * 中立 op:L1 `sectionByPlane(shape, point, normal)` 在 occt 与 brepkit 两侧均有\n * 真实现 ⇒ 走 `getBrepApi()`(D12),不声明 engines。\n *\n * 产物形态(设计原则 5 + §2.4①):L1 返回交线句柄**数组**(occt 适配器把\n * compound 逐条 downcast 成 edge/wire),数组过不了单产物边界 —— 收拢为\n * **1D compound**(`makeCompound(edges)`)经 `fromBrepCurve` 登记为\n * `kind:'curve'`(Phase 3 判别位;wire/edge 载荷为空,显示走 L1 `wireframe`)。\n * 无交线(平面不与体相交)显式报错 —— 不返回假空产物(原则 9)。\n */\n\nimport type { Shape } from '../mesh/types'\nimport type { BrepHandle, BrepVec3 } from '../brep/engine/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrepCurve } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\n\ntype Vec3 = [number, number, number]\n\n/** `cad.sectionByPlane` 参数。 */\nexport interface SectionByPlaneParams {\n /** 平面上一点(mm)。 */\n point: Vec3\n /** 平面法向(不必单位化)。 */\n normal: Vec3\n}\n\n/** 元组 → BrepVec3 对象(同 split-by-plane:L1 向量形参是 {x,y,z} 对象)。 */\nfunction toVec3(v: Vec3): BrepVec3 {\n if (!Array.isArray(v) || v.length !== 3 || v.some((n) => typeof n !== 'number' || !Number.isFinite(n))) {\n throw new Error('E_SECTION_BY_PLANE_BAD_VEC: point/normal must be [x,y,z] finite numbers')\n }\n return { x: v[0], y: v[1], z: v[2] }\n}\n\n/** BREP 路径:L1 sectionByPlane → 交线收拢为 1D compound → fromBrepCurve 登记。 */\nfunction sectionByPlaneBrep(input: Shape, params: SectionByPlaneParams): Shape {\n const { point, normal } = params ?? ({} as SectionByPlaneParams)\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error('E_SECTION_BY_PLANE_NO_BREP: sectionByPlane input is not BREP')\n const curves = kernel.sectionByPlane(solid, toVec3(point), toVec3(normal))\n if (!curves || curves.length === 0) {\n throw new Error('E_SECTION_BY_PLANE_NO_INTERSECTION: plane does not intersect the shape')\n }\n const compound = kernel.makeCompound(curves)\n return fromBrepCurve(solidToShape(kernel, compound), { solid: compound })\n}\n\n/**\n * 求实体与无限平面的精确截面线(1D 曲线,可继续建模/导出 STEP)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name sectionByPlane\n * @note 中立 op:L1 sectionByPlane 两引擎同实现。产物是 1D 曲线(kind:'curve',\n * 全部交线收拢为一个 compound);平面不与体相交时显式报错。\n * @returns Shape 1D 截面曲线。\n * @param input - 目标实体。type:Shape required:true\n * @param params.point - 平面上一点 [x,y,z](mm)。type:Vec3 required:true\n * @param params.normal - 平面法向 [x,y,z]。type:Vec3 required:true\n * @example\n * const sec = await cad.sectionByPlane(part0, { point: [0,0,5], normal: [0,0,1] })\n */\nexport const sectionByPlane = defineOp({\n paramDims: { 'params.point': 'length', 'params.normal': 'length' },\n brep(input: Shape, params: SectionByPlaneParams) {\n return sectionByPlaneBrep(input, params)\n },\n naming: { kind: 'unmodeled', reason: '1D section curves have no face role vocabulary' } as Provenance,\n})\n"]}
@@ -4,7 +4,7 @@
4
4
  * 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与
5
5
  * brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`
6
6
  * (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是
7
- * 能力升级——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。
7
+ * 覆盖面扩大——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。
8
8
  *
9
9
  * 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),
10
10
  * 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/api/shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAM1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAMrD,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,CAAA;AAEpD,sBAAsB;AACtB,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA6ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK;;CAUhB,CAAA"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/api/shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAMrD,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,CAAA;AAEpD,sBAAsB;AACtB,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAqFD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK;;CAWhB,CAAA"}
package/dist/api/shell.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与
5
5
  * brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`
6
6
  * (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是
7
- * 能力升级——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。
7
+ * 覆盖面扩大——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。
8
8
  *
9
9
  * 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),
10
10
  * 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧
@@ -16,8 +16,10 @@
16
16
  */
17
17
  import { solidToShape } from '../brep/brep-ops.js';
18
18
  import { getBrepApi } from '../brep/handle-bridge.js';
19
+ import { shellWithHashEvolution } from '../brep/face-evolution.js';
19
20
  import { brepOf, fromBrep } from '../shape.js';
20
21
  import { defineOp } from '../sdk.js';
22
+ import { hasNativeHistory } from '../brep/engine/native-history.js';
21
23
  import { resolveTopoRef, TopoRefError } from '../topology/naming/index.js';
22
24
  import { buildEdgeResolutionContext } from './topo-resolve.js';
23
25
  import { meshKernelFailure, meshSolidBasicEntry, meshSolidProduct, resolveMeshFaces } from './internal/mesh-solid-op.js';
@@ -57,6 +59,14 @@ function shellBrep(input, params) {
57
59
  }
58
60
  return r.handle;
59
61
  });
62
+ // C5 实现面接入(静态双轨,无运行时 try-catch):
63
+ // - occt 原生有 `shellWithHistory` → 走权威面演化(血缘更准);
64
+ // - brepkit 没有 → 显式回退裸 L1 `shell`(**不报错**),不伪造面演化
65
+ // (抽壳是毁面重造,恒等映射不真实)。
66
+ if (hasNativeHistory('shellWithHistory')) {
67
+ const r = shellWithHashEvolution(kernel, solid, faceHandles, thickness, tolerance ?? 1e-6);
68
+ return fromBrep(solidToShape(kernel, r.result), { solid: r.result, faceEvolution: r.faceEvolution });
69
+ }
60
70
  const result = kernel.shell(solid, faceHandles, thickness, tolerance ?? 1e-6);
61
71
  return fromBrep(solidToShape(kernel, result), { solid: result });
62
72
  }
@@ -106,7 +116,6 @@ function shellMeshSolid(input, params) {
106
116
  * const sm = await cad.shell(meshPart, { openFaces: [4], thickness: 2 })
107
117
  */
108
118
  export const shell = defineOp({
109
- capabilities: ['directEdit'],
110
119
  meshEngines: ['brepkit'],
111
120
  mesh(input, params) {
112
121
  return shellMeshSolid(input, params);
@@ -115,5 +124,6 @@ export const shell = defineOp({
115
124
  return shellBrep(input, params);
116
125
  },
117
126
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
127
+ paramDims: {},
118
128
  });
119
129
  //# sourceMappingURL=shell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/api/shell.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * api shell — 抽壳:按面移除生成等厚薄壁(手写中立 op,Phase 5)\n *\n * 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与\n * brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`\n * (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是\n * 能力升级——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。\n *\n * 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),\n * 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧\n * `Face[]` 句柄入参。解析在 op 内一处完成(`buildEdgeResolutionContext` 现场枚举\n * + `resolveTopoRef`)。\n *\n * 网格链(方案 2026-10-01 §4 Phase 4 / B3 批):`mesh:` 实现走网格后端,面按\n * **序号或 FaceTopoRef** 解析(近似拓扑没有 role 层),产物是新的网格零件。\n */\n\nimport type { Shape } from '../mesh/types'\nimport type { BrepHandle } from '../brep/engine/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrep } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { FaceTopoRef } from '../topology/naming'\nimport { resolveTopoRef, TopoRefError } from '../topology/naming'\nimport type { Provenance } from '../topology/naming/lineage'\nimport { buildEdgeResolutionContext } from './topo-resolve'\nimport { meshKernelFailure, meshSolidBasicEntry, meshSolidProduct, resolveMeshFaces } from './internal/mesh-solid-op'\n\n/** 抽壳时移除的面选择器:精度链用 `FaceTopoRef`;网格链也可用 1 起序号。 */\nexport type ShellFaceSelector = number | FaceTopoRef\n\n/** `cad.shell` 参数。 */\nexport interface ShellParams {\n /** 抽壳时移除的面(FaceTopoRef[],`cad.faceRef` 产物;空数组 = 全封闭薄壁)。 */\n openFaces: ShellFaceSelector[]\n /** 壁厚(mm,>0,向内偏置)。 */\n thickness: number\n /** 容差(mm,可选;默认走内核约定值)。 */\n tolerance?: number\n}\n\n/** 参数共校验(两条路径共用;`openFaces` 为空数组合法 = 全封闭薄壁)。 */\nfunction assertShellParams(params: ShellParams): void {\n const { openFaces, thickness } = params ?? ({} as ShellParams)\n if (!Array.isArray(openFaces)) {\n throw new Error('E_SHELL_BAD_OPEN_FACES: shell.openFaces must be an array of FaceTopoRef or ordinals')\n }\n if (typeof thickness !== 'number' || !Number.isFinite(thickness) || thickness <= 0) {\n throw new Error('E_SHELL_BAD_THICKNESS: shell.thickness must be a positive number')\n }\n}\n\n/** BREP 路径:解析面引用 → L1 shell → 收养。 */\nfunction shellBrep(input: Shape, params: ShellParams): Shape {\n const { openFaces, thickness, tolerance } = params\n assertShellParams(params)\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error('E_SHELL_NO_BREP: shell input is not BREP')\n\n const ctx = buildEdgeResolutionContext(kernel, input as object)\n if (!ctx) throw new TopoRefError('E_TOPO_NOT_FOUND', 'face', 'shell: input has no BREP naming context')\n const faceHandles = openFaces.map((ref) => {\n // 精度链不开序号口子:BREP 的面身份是 `(origin, role)`,序号只是本次枚举序。\n if (typeof ref === 'number') {\n throw new Error(\n 'E_SHELL_BAD_OPEN_FACES: an ordinal face selector is only available on the mesh chain — ' +\n 'a precision-chain face is identified by its role line (cad.faceRef)',\n )\n }\n if (!ref || (ref as { kind?: unknown }).kind !== 'face') {\n throw new Error('E_SHELL_BAD_OPEN_FACES: every openFaces entry must be a FaceTopoRef (cad.faceRef)')\n }\n const r = resolveTopoRef(ref, ctx)\n if (r.handle === undefined) {\n throw new TopoRefError('E_TOPO_NOT_FOUND', 'face', `shell: face resolved without handle (${ref.origin}/${ref.role})`)\n }\n return r.handle as BrepHandle\n })\n\n const result = kernel.shell(solid, faceHandles, thickness, tolerance ?? 1e-6)\n return fromBrep(solidToShape(kernel, result), { solid: result })\n}\n\n/**\n * 网格实体路径:按序号或几何选出要开口的面,交网格后端抽壳。\n *\n * 与 BREP 路径同一条 L1 契约面(`shell(solid, faces, thickness, tolerance)`),\n * 差别只在选面方式:近似拓扑没有 role 层,面靠**序号**(拓扑 `faces` 数组下标 + 1)\n * 或 `FaceTopoRef` 的几何匹配(法向/中心/面积)指认。产物是新网格零件,\n * 近似拓扑由 `meshSolidProduct` 重建。\n *\n * @param input - the mesh-solid input.\n * @param params - the shell parameters.\n * @returns the shelled mesh solid as a new mesh part.\n */\nfunction shellMeshSolid(input: Shape, params: ShellParams): Shape {\n const { openFaces, thickness, tolerance } = params\n assertShellParams(params)\n const entry = meshSolidBasicEntry(input, 'shell')\n const faceHandles = resolveMeshFaces(entry.kernel, input, openFaces, 'shell')\n\n let result: BrepHandle\n try {\n result = entry.kernel.shell(entry.solid, faceHandles, thickness, tolerance ?? 1e-6)\n } catch (cause) {\n throw meshKernelFailure(\n 'shell',\n 'E_SHELL_FAILED',\n `shell(thickness=${thickness}) removing ${faceHandles.length} face(s)`,\n cause,\n )\n }\n return meshSolidProduct(entry, result)\n}\n\n/**\n * 抽壳:移除指定面并把余下面偏置成等厚薄壁。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name shell\n * @note 中立 op:L1 shell 两引擎同实现。`openFaces` 为空数组时生成全封闭薄壁。\n * 精度链按 role 线路选面(`cad.faceRef`);网格链按序号或几何选面——网格零件\n * 没有 role 层,序号是唯一无歧义的指认方式。\n * @returns Shape 抽壳后的薄壁体。\n * @param input - 目标几何。type:Shape required:true\n * @param params.openFaces - 要移除的面(FaceTopoRef[],cad.faceRef 产物;网格链可用 1 起序号)。type:FaceTopoRef[] required:true\n * @param params.thickness - 壁厚(mm,>0)。type:number required:true\n * @param params.tolerance - 容差(mm)。type:number required:false\n * @example\n * const sh = await cad.shell(part0, { openFaces: [cad.faceRef(part0, 1)], thickness: 2 })\n * const sm = await cad.shell(meshPart, { openFaces: [4], thickness: 2 })\n */\nexport const shell = defineOp({\n capabilities: ['directEdit'],\n meshEngines: ['brepkit'],\n mesh(input: Shape, params: ShellParams) {\n return shellMeshSolid(input, params)\n },\n brep(input: Shape, params: ShellParams) {\n return shellBrep(input, params)\n },\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n})\n"]}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/api/shell.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * api shell — 抽壳:按面移除生成等厚薄壁(手写中立 op,Phase 5)\n *\n * 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与\n * brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`\n * (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是\n * 覆盖面扩大——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。\n *\n * 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),\n * 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧\n * `Face[]` 句柄入参。解析在 op 内一处完成(`buildEdgeResolutionContext` 现场枚举\n * + `resolveTopoRef`)。\n *\n * 网格链(方案 2026-10-01 §4 Phase 4 / B3 批):`mesh:` 实现走网格后端,面按\n * **序号或 FaceTopoRef** 解析(近似拓扑没有 role 层),产物是新的网格零件。\n */\n\nimport type { Shape } from '../mesh/types'\nimport type { BrepHandle } from '../brep/engine/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { shellWithHashEvolution } from '../brep/face-evolution'\nimport { brepOf, fromBrep } from '../shape'\nimport { defineOp } from '../sdk'\nimport { hasNativeHistory } from '../brep/engine/native-history'\nimport type { FaceTopoRef } from '../topology/naming'\nimport { resolveTopoRef, TopoRefError } from '../topology/naming'\nimport type { Provenance } from '../topology/naming/lineage'\nimport { buildEdgeResolutionContext } from './topo-resolve'\nimport { meshKernelFailure, meshSolidBasicEntry, meshSolidProduct, resolveMeshFaces } from './internal/mesh-solid-op'\n\n/** 抽壳时移除的面选择器:精度链用 `FaceTopoRef`;网格链也可用 1 起序号。 */\nexport type ShellFaceSelector = number | FaceTopoRef\n\n/** `cad.shell` 参数。 */\nexport interface ShellParams {\n /** 抽壳时移除的面(FaceTopoRef[],`cad.faceRef` 产物;空数组 = 全封闭薄壁)。 */\n openFaces: ShellFaceSelector[]\n /** 壁厚(mm,>0,向内偏置)。 */\n thickness: number\n /** 容差(mm,可选;默认走内核约定值)。 */\n tolerance?: number\n}\n\n/** 参数共校验(两条路径共用;`openFaces` 为空数组合法 = 全封闭薄壁)。 */\nfunction assertShellParams(params: ShellParams): void {\n const { openFaces, thickness } = params ?? ({} as ShellParams)\n if (!Array.isArray(openFaces)) {\n throw new Error('E_SHELL_BAD_OPEN_FACES: shell.openFaces must be an array of FaceTopoRef or ordinals')\n }\n if (typeof thickness !== 'number' || !Number.isFinite(thickness) || thickness <= 0) {\n throw new Error('E_SHELL_BAD_THICKNESS: shell.thickness must be a positive number')\n }\n}\n\n/** BREP 路径:解析面引用 → L1 shell → 收养。 */\nfunction shellBrep(input: Shape, params: ShellParams): Shape {\n const { openFaces, thickness, tolerance } = params\n assertShellParams(params)\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error('E_SHELL_NO_BREP: shell input is not BREP')\n\n const ctx = buildEdgeResolutionContext(kernel, input as object)\n if (!ctx) throw new TopoRefError('E_TOPO_NOT_FOUND', 'face', 'shell: input has no BREP naming context')\n const faceHandles = openFaces.map((ref) => {\n // 精度链不开序号口子:BREP 的面身份是 `(origin, role)`,序号只是本次枚举序。\n if (typeof ref === 'number') {\n throw new Error(\n 'E_SHELL_BAD_OPEN_FACES: an ordinal face selector is only available on the mesh chain — ' +\n 'a precision-chain face is identified by its role line (cad.faceRef)',\n )\n }\n if (!ref || (ref as { kind?: unknown }).kind !== 'face') {\n throw new Error('E_SHELL_BAD_OPEN_FACES: every openFaces entry must be a FaceTopoRef (cad.faceRef)')\n }\n const r = resolveTopoRef(ref, ctx)\n if (r.handle === undefined) {\n throw new TopoRefError('E_TOPO_NOT_FOUND', 'face', `shell: face resolved without handle (${ref.origin}/${ref.role})`)\n }\n return r.handle as BrepHandle\n })\n\n // C5 实现面接入(静态双轨,无运行时 try-catch):\n // - occt 原生有 `shellWithHistory` → 走权威面演化(血缘更准);\n // - brepkit 没有 → 显式回退裸 L1 `shell`(**不报错**),不伪造面演化\n // (抽壳是毁面重造,恒等映射不真实)。\n if (hasNativeHistory('shellWithHistory')) {\n const r = shellWithHashEvolution(kernel, solid, faceHandles, thickness, tolerance ?? 1e-6)\n return fromBrep(solidToShape(kernel, r.result), { solid: r.result, faceEvolution: r.faceEvolution })\n }\n const result = kernel.shell(solid, faceHandles, thickness, tolerance ?? 1e-6)\n return fromBrep(solidToShape(kernel, result), { solid: result })\n}\n\n/**\n * 网格实体路径:按序号或几何选出要开口的面,交网格后端抽壳。\n *\n * 与 BREP 路径同一条 L1 契约面(`shell(solid, faces, thickness, tolerance)`),\n * 差别只在选面方式:近似拓扑没有 role 层,面靠**序号**(拓扑 `faces` 数组下标 + 1)\n * 或 `FaceTopoRef` 的几何匹配(法向/中心/面积)指认。产物是新网格零件,\n * 近似拓扑由 `meshSolidProduct` 重建。\n *\n * @param input - the mesh-solid input.\n * @param params - the shell parameters.\n * @returns the shelled mesh solid as a new mesh part.\n */\nfunction shellMeshSolid(input: Shape, params: ShellParams): Shape {\n const { openFaces, thickness, tolerance } = params\n assertShellParams(params)\n const entry = meshSolidBasicEntry(input, 'shell')\n const faceHandles = resolveMeshFaces(entry.kernel, input, openFaces, 'shell')\n\n let result: BrepHandle\n try {\n result = entry.kernel.shell(entry.solid, faceHandles, thickness, tolerance ?? 1e-6)\n } catch (cause) {\n throw meshKernelFailure(\n 'shell',\n 'E_SHELL_FAILED',\n `shell(thickness=${thickness}) removing ${faceHandles.length} face(s)`,\n cause,\n )\n }\n return meshSolidProduct(entry, result)\n}\n\n/**\n * 抽壳:移除指定面并把余下面偏置成等厚薄壁。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name shell\n * @note 中立 op:L1 shell 两引擎同实现。`openFaces` 为空数组时生成全封闭薄壁。\n * 精度链按 role 线路选面(`cad.faceRef`);网格链按序号或几何选面——网格零件\n * 没有 role 层,序号是唯一无歧义的指认方式。\n * @returns Shape 抽壳后的薄壁体。\n * @param input - 目标几何。type:Shape required:true\n * @param params.openFaces - 要移除的面(FaceTopoRef[],cad.faceRef 产物;网格链可用 1 起序号)。type:FaceTopoRef[] required:true\n * @param params.thickness - 壁厚(mm,>0)。type:number required:true\n * @param params.tolerance - 容差(mm)。type:number required:false\n * @example\n * const sh = await cad.shell(part0, { openFaces: [cad.faceRef(part0, 1)], thickness: 2 })\n * const sm = await cad.shell(meshPart, { openFaces: [4], thickness: 2 })\n */\nexport const shell = defineOp({\n meshEngines: ['brepkit'],\n mesh(input: Shape, params: ShellParams) {\n return shellMeshSolid(input, params)\n },\n brep(input: Shape, params: ShellParams) {\n return shellBrep(input, params)\n },\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n\n paramDims: {},\n})\n"]}