@faicad/faijs 0.29.5 → 0.30.9

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 (582) hide show
  1. package/NOTICE +6 -5
  2. package/dist/api/api-namespace.d.ts +1 -1
  3. package/dist/api/api-namespace.d.ts.map +1 -1
  4. package/dist/api/api-namespace.js +53 -1
  5. package/dist/api/api-namespace.js.map +1 -1
  6. package/dist/api/appearance.d.ts +0 -2
  7. package/dist/api/appearance.d.ts.map +1 -1
  8. package/dist/api/appearance.js +0 -2
  9. package/dist/api/appearance.js.map +1 -1
  10. package/dist/api/assembly/entities.d.ts +1 -1
  11. package/dist/api/assembly/entities.js +1 -1
  12. package/dist/api/assembly/entities.js.map +1 -1
  13. package/dist/api/assembly/index.d.ts +1 -1
  14. package/dist/api/assembly/index.js +1 -1
  15. package/dist/api/assembly/index.js.map +1 -1
  16. package/dist/api/assembly/joints.d.ts +33 -15
  17. package/dist/api/assembly/joints.d.ts.map +1 -1
  18. package/dist/api/assembly/joints.js +31 -13
  19. package/dist/api/assembly/joints.js.map +1 -1
  20. package/dist/api/assembly/preview.d.ts +1 -1
  21. package/dist/api/assembly/preview.js +1 -1
  22. package/dist/api/assembly/preview.js.map +1 -1
  23. package/dist/api/assembly/solve.d.ts +1 -1
  24. package/dist/api/assembly/solve.js +1 -1
  25. package/dist/api/assembly/solve.js.map +1 -1
  26. package/dist/api/assembly/solvers/assembly-tree.d.ts +1 -1
  27. package/dist/api/assembly/solvers/assembly-tree.js +1 -1
  28. package/dist/api/assembly/solvers/assembly-tree.js.map +1 -1
  29. package/dist/api/assembly/solvers/chain-solver.d.ts +2 -2
  30. package/dist/api/assembly/solvers/chain-solver.js.map +1 -1
  31. package/dist/api/assembly/solvers/global-solver.d.ts +1 -2
  32. package/dist/api/assembly/solvers/global-solver.d.ts.map +1 -1
  33. package/dist/api/assembly/solvers/global-solver.js +3 -4
  34. package/dist/api/assembly/solvers/global-solver.js.map +1 -1
  35. package/dist/api/assembly/solvers/joints-kinematics.js +1 -1
  36. package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -1
  37. package/dist/api/assembly/solvers/linalg.d.ts +2 -2
  38. package/dist/api/assembly/solvers/linalg.js +2 -2
  39. package/dist/api/assembly/solvers/linalg.js.map +1 -1
  40. package/dist/api/assembly/solvers/types.d.ts +2 -5
  41. package/dist/api/assembly/solvers/types.d.ts.map +1 -1
  42. package/dist/api/assembly/solvers/types.js +1 -4
  43. package/dist/api/assembly/solvers/types.js.map +1 -1
  44. package/dist/api/boolean.d.ts.map +1 -1
  45. package/dist/api/boolean.js +7 -6
  46. package/dist/api/boolean.js.map +1 -1
  47. package/dist/api/brep-mirror/booleanFns.d.ts +3 -3
  48. package/dist/api/brep-mirror/booleanFns.js +5 -5
  49. package/dist/api/brep-mirror/booleanFns.js.map +1 -1
  50. package/dist/api/brep-mirror/compoundFns.d.ts +1 -1
  51. package/dist/api/brep-mirror/compoundFns.js +4 -4
  52. package/dist/api/brep-mirror/compoundFns.js.map +1 -1
  53. package/dist/api/brep-mirror/healingFns.d.ts +4 -4
  54. package/dist/api/brep-mirror/healingFns.js +4 -4
  55. package/dist/api/brep-mirror/healingFns.js.map +1 -1
  56. package/dist/api/brep-mirror/hullFns.d.ts +2 -2
  57. package/dist/api/brep-mirror/hullFns.js +2 -2
  58. package/dist/api/brep-mirror/hullFns.js.map +1 -1
  59. package/dist/api/brep-mirror/patternFns.d.ts +5 -5
  60. package/dist/api/brep-mirror/patternFns.js +10 -10
  61. package/dist/api/brep-mirror/patternFns.js.map +1 -1
  62. package/dist/api/brep-mirror/primitiveFns.d.ts +4 -4
  63. package/dist/api/brep-mirror/primitiveFns.js +4 -4
  64. package/dist/api/brep-mirror/primitiveFns.js.map +1 -1
  65. package/dist/api/brep-mirror/roofFns.d.ts +3 -3
  66. package/dist/api/brep-mirror/roofFns.js +7 -7
  67. package/dist/api/brep-mirror/roofFns.js.map +1 -1
  68. package/dist/api/brep-mirror/sweepFns.d.ts +7 -7
  69. package/dist/api/brep-mirror/sweepFns.js +14 -14
  70. package/dist/api/brep-mirror/sweepFns.js.map +1 -1
  71. package/dist/api/brep-mirror/threadFns.d.ts +1 -1
  72. package/dist/api/brep-mirror/threadFns.js +1 -1
  73. package/dist/api/brep-mirror/threadFns.js.map +1 -1
  74. package/dist/api/brep-mirror/topologyFns.d.ts +5 -5
  75. package/dist/api/brep-mirror/topologyFns.js +8 -8
  76. package/dist/api/brep-mirror/topologyFns.js.map +1 -1
  77. package/dist/api/brep-operations/booleanFns.d.ts +40 -0
  78. package/dist/api/brep-operations/booleanFns.d.ts.map +1 -0
  79. package/dist/api/brep-operations/booleanFns.js +104 -0
  80. package/dist/api/brep-operations/booleanFns.js.map +1 -0
  81. package/dist/api/brep-operations/brepHelpers.d.ts +55 -0
  82. package/dist/api/brep-operations/brepHelpers.d.ts.map +1 -0
  83. package/dist/api/brep-operations/brepHelpers.js +131 -0
  84. package/dist/api/brep-operations/brepHelpers.js.map +1 -0
  85. package/dist/api/brep-operations/compoundFns.d.ts +46 -0
  86. package/dist/api/brep-operations/compoundFns.d.ts.map +1 -0
  87. package/dist/api/brep-operations/compoundFns.js +299 -0
  88. package/dist/api/brep-operations/compoundFns.js.map +1 -0
  89. package/dist/api/brep-operations/healingFns.d.ts +78 -0
  90. package/dist/api/brep-operations/healingFns.d.ts.map +1 -0
  91. package/dist/api/brep-operations/healingFns.js +294 -0
  92. package/dist/api/brep-operations/healingFns.js.map +1 -0
  93. package/dist/api/brep-operations/hullFns.d.ts +20 -0
  94. package/dist/api/brep-operations/hullFns.d.ts.map +1 -0
  95. package/dist/api/brep-operations/hullFns.js +46 -0
  96. package/dist/api/brep-operations/hullFns.js.map +1 -0
  97. package/dist/api/brep-operations/joinery-brep.d.ts +172 -0
  98. package/dist/api/brep-operations/joinery-brep.d.ts.map +1 -0
  99. package/dist/api/brep-operations/joinery-brep.js +463 -0
  100. package/dist/api/brep-operations/joinery-brep.js.map +1 -0
  101. package/dist/api/brep-operations/patternFns.d.ts +43 -0
  102. package/dist/api/brep-operations/patternFns.d.ts.map +1 -0
  103. package/dist/api/brep-operations/patternFns.js +178 -0
  104. package/dist/api/brep-operations/patternFns.js.map +1 -0
  105. package/dist/api/brep-operations/primitiveFns.d.ts +42 -0
  106. package/dist/api/brep-operations/primitiveFns.d.ts.map +1 -0
  107. package/dist/api/brep-operations/primitiveFns.js +104 -0
  108. package/dist/api/brep-operations/primitiveFns.js.map +1 -0
  109. package/dist/api/brep-operations/roofFns.d.ts +24 -0
  110. package/dist/api/brep-operations/roofFns.d.ts.map +1 -0
  111. package/dist/api/brep-operations/roofFns.js +229 -0
  112. package/dist/api/brep-operations/roofFns.js.map +1 -0
  113. package/dist/api/brep-operations/straightSkeleton.d.ts +36 -0
  114. package/dist/api/brep-operations/straightSkeleton.d.ts.map +1 -0
  115. package/dist/api/brep-operations/straightSkeleton.js +431 -0
  116. package/dist/api/brep-operations/straightSkeleton.js.map +1 -0
  117. package/dist/api/brep-operations/sweepFns.d.ts +60 -0
  118. package/dist/api/brep-operations/sweepFns.d.ts.map +1 -0
  119. package/dist/api/brep-operations/sweepFns.js +323 -0
  120. package/dist/api/brep-operations/sweepFns.js.map +1 -0
  121. package/dist/api/brep-operations/threadFns.d.ts +83 -0
  122. package/dist/api/brep-operations/threadFns.d.ts.map +1 -0
  123. package/dist/api/brep-operations/threadFns.js +138 -0
  124. package/dist/api/brep-operations/threadFns.js.map +1 -0
  125. package/dist/api/brep-operations/topologyFns.d.ts +90 -0
  126. package/dist/api/brep-operations/topologyFns.d.ts.map +1 -0
  127. package/dist/api/brep-operations/topologyFns.js +276 -0
  128. package/dist/api/brep-operations/topologyFns.js.map +1 -0
  129. package/dist/api/brep-topology.d.ts +1 -1
  130. package/dist/api/brep-topology.d.ts.map +1 -1
  131. package/dist/api/brep-topology.js +1 -1
  132. package/dist/api/brep-topology.js.map +1 -1
  133. package/dist/api/brepjs-compat/index.d.ts +1 -1
  134. package/dist/api/brepjs-compat/index.js +3 -3
  135. package/dist/api/brepjs-compat/index.js.map +1 -1
  136. package/dist/api/cadquery-selectors/borrow-bridge.d.ts.map +1 -1
  137. package/dist/api/cadquery-selectors/borrow-bridge.js +3 -4
  138. package/dist/api/cadquery-selectors/borrow-bridge.js.map +1 -1
  139. package/dist/api/curve-sketch/index.d.ts +235 -0
  140. package/dist/api/curve-sketch/index.d.ts.map +1 -0
  141. package/dist/api/curve-sketch/index.js +487 -0
  142. package/dist/api/curve-sketch/index.js.map +1 -0
  143. package/dist/api/engrave.d.ts.map +1 -1
  144. package/dist/api/engrave.js +3 -2
  145. package/dist/api/engrave.js.map +1 -1
  146. package/dist/api/export-brep.d.ts +41 -0
  147. package/dist/api/export-brep.d.ts.map +1 -0
  148. package/dist/api/export-brep.js +58 -0
  149. package/dist/api/export-brep.js.map +1 -0
  150. package/dist/api/export-stl.d.ts +50 -0
  151. package/dist/api/export-stl.d.ts.map +1 -0
  152. package/dist/api/export-stl.js +99 -0
  153. package/dist/api/export-stl.js.map +1 -0
  154. package/dist/api/extrude.d.ts +8 -11
  155. package/dist/api/extrude.d.ts.map +1 -1
  156. package/dist/api/extrude.js +11 -14
  157. package/dist/api/extrude.js.map +1 -1
  158. package/dist/api/fillet-variable.d.ts +2 -2
  159. package/dist/api/fillet-variable.js +2 -2
  160. package/dist/api/fillet-variable.js.map +1 -1
  161. package/dist/api/fillet.d.ts +2 -4
  162. package/dist/api/fillet.d.ts.map +1 -1
  163. package/dist/api/fillet.js +2 -4
  164. package/dist/api/fillet.js.map +1 -1
  165. package/dist/api/generated/2d.d.ts +4 -0
  166. package/dist/api/generated/2d.d.ts.map +1 -1
  167. package/dist/api/generated/2d.js +4 -0
  168. package/dist/api/generated/2d.js.map +1 -1
  169. package/dist/api/generated/core.d.ts +4 -0
  170. package/dist/api/generated/core.d.ts.map +1 -1
  171. package/dist/api/generated/core.js +4 -0
  172. package/dist/api/generated/core.js.map +1 -1
  173. package/dist/api/generated/gear.d.ts +4 -0
  174. package/dist/api/generated/gear.d.ts.map +1 -1
  175. package/dist/api/generated/gear.js +4 -0
  176. package/dist/api/generated/gear.js.map +1 -1
  177. package/dist/api/generated/io.d.ts +4 -0
  178. package/dist/api/generated/io.d.ts.map +1 -1
  179. package/dist/api/generated/io.js +4 -0
  180. package/dist/api/generated/io.js.map +1 -1
  181. package/dist/api/generated/kernel.d.ts +4 -0
  182. package/dist/api/generated/kernel.d.ts.map +1 -1
  183. package/dist/api/generated/kernel.js +4 -0
  184. package/dist/api/generated/kernel.js.map +1 -1
  185. package/dist/api/generated/measurement.d.ts +21 -21
  186. package/dist/api/generated/measurement.d.ts.map +1 -1
  187. package/dist/api/generated/measurement.js +25 -21
  188. package/dist/api/generated/measurement.js.map +1 -1
  189. package/dist/api/generated/ns.d.ts +4 -0
  190. package/dist/api/generated/ns.d.ts.map +1 -1
  191. package/dist/api/generated/ns.js +4 -0
  192. package/dist/api/generated/ns.js.map +1 -1
  193. package/dist/api/generated/operations.d.ts +32 -32
  194. package/dist/api/generated/operations.d.ts.map +1 -1
  195. package/dist/api/generated/operations.js +52 -48
  196. package/dist/api/generated/operations.js.map +1 -1
  197. package/dist/api/generated/projection.d.ts +4 -0
  198. package/dist/api/generated/projection.d.ts.map +1 -1
  199. package/dist/api/generated/projection.js +4 -0
  200. package/dist/api/generated/projection.js.map +1 -1
  201. package/dist/api/generated/query.d.ts +4 -0
  202. package/dist/api/generated/query.d.ts.map +1 -1
  203. package/dist/api/generated/query.js +4 -0
  204. package/dist/api/generated/query.js.map +1 -1
  205. package/dist/api/generated/sketching.d.ts +2 -2
  206. package/dist/api/generated/sketching.d.ts.map +1 -1
  207. package/dist/api/generated/sketching.js +7 -3
  208. package/dist/api/generated/sketching.js.map +1 -1
  209. package/dist/api/generated/text.d.ts +4 -0
  210. package/dist/api/generated/text.d.ts.map +1 -1
  211. package/dist/api/generated/text.js +4 -0
  212. package/dist/api/generated/text.js.map +1 -1
  213. package/dist/api/generated/topology.d.ts +45 -45
  214. package/dist/api/generated/topology.d.ts.map +1 -1
  215. package/dist/api/generated/topology.js +67 -63
  216. package/dist/api/generated/topology.js.map +1 -1
  217. package/dist/api/generated/view.d.ts +4 -0
  218. package/dist/api/generated/view.d.ts.map +1 -1
  219. package/dist/api/generated/view.js +4 -0
  220. package/dist/api/generated/view.js.map +1 -1
  221. package/dist/api/geom-types/constants.d.ts +11 -0
  222. package/dist/api/geom-types/constants.d.ts.map +1 -0
  223. package/dist/api/geom-types/constants.js +11 -0
  224. package/dist/api/geom-types/constants.js.map +1 -0
  225. package/dist/api/geom-types/index.d.ts +21 -0
  226. package/dist/api/geom-types/index.d.ts.map +1 -0
  227. package/dist/api/geom-types/index.js +22 -0
  228. package/dist/api/geom-types/index.js.map +1 -0
  229. package/dist/api/geom-types/planeOps.d.ts +98 -0
  230. package/dist/api/geom-types/planeOps.d.ts.map +1 -0
  231. package/dist/api/geom-types/planeOps.js +170 -0
  232. package/dist/api/geom-types/planeOps.js.map +1 -0
  233. package/dist/api/geom-types/planeTypes.d.ts +24 -0
  234. package/dist/api/geom-types/planeTypes.d.ts.map +1 -0
  235. package/dist/api/geom-types/planeTypes.js +8 -0
  236. package/dist/api/geom-types/planeTypes.js.map +1 -0
  237. package/dist/api/geom-types/types.d.ts +64 -0
  238. package/dist/api/geom-types/types.d.ts.map +1 -0
  239. package/dist/api/geom-types/types.js +48 -0
  240. package/dist/api/geom-types/types.js.map +1 -0
  241. package/dist/api/geom-types/vecOps.d.ts +124 -0
  242. package/dist/api/geom-types/vecOps.d.ts.map +1 -0
  243. package/dist/api/geom-types/vecOps.js +202 -0
  244. package/dist/api/geom-types/vecOps.js.map +1 -0
  245. package/dist/api/geom.d.ts.map +1 -1
  246. package/dist/api/geom.js +6 -5
  247. package/dist/api/geom.js.map +1 -1
  248. package/dist/api/half-space.d.ts +56 -0
  249. package/dist/api/half-space.d.ts.map +1 -0
  250. package/dist/api/half-space.js +82 -0
  251. package/dist/api/half-space.js.map +1 -0
  252. package/dist/api/helix.d.ts +10 -1
  253. package/dist/api/helix.d.ts.map +1 -1
  254. package/dist/api/helix.js +19 -3
  255. package/dist/api/helix.js.map +1 -1
  256. package/dist/api/index.d.ts +15 -6
  257. package/dist/api/index.d.ts.map +1 -1
  258. package/dist/api/index.js +29 -8
  259. package/dist/api/index.js.map +1 -1
  260. package/dist/api/internal/compat-op.d.ts +4 -30
  261. package/dist/api/internal/compat-op.d.ts.map +1 -1
  262. package/dist/api/internal/compat-op.js +10 -42
  263. package/dist/api/internal/compat-op.js.map +1 -1
  264. package/dist/api/internal/compat-projection.d.ts +5 -5
  265. package/dist/api/internal/compat-projection.js +5 -5
  266. package/dist/api/internal/compat-projection.js.map +1 -1
  267. package/dist/api/internal/dual-form-args.d.ts +0 -2
  268. package/dist/api/internal/dual-form-args.d.ts.map +1 -1
  269. package/dist/api/internal/dual-form-args.js +1 -3
  270. package/dist/api/internal/dual-form-args.js.map +1 -1
  271. package/dist/api/internal/l3-bridge.d.ts +5 -37
  272. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  273. package/dist/api/internal/l3-bridge.js +7 -76
  274. package/dist/api/internal/l3-bridge.js.map +1 -1
  275. package/dist/api/internal/profile-wire.d.ts +1 -1
  276. package/dist/api/internal/profile-wire.js +1 -1
  277. package/dist/api/internal/profile-wire.js.map +1 -1
  278. package/dist/api/internal/result-unwrap.d.ts +4 -6
  279. package/dist/api/internal/result-unwrap.d.ts.map +1 -1
  280. package/dist/api/internal/result-unwrap.js +4 -6
  281. package/dist/api/internal/result-unwrap.js.map +1 -1
  282. package/dist/api/knurl.d.ts.map +1 -1
  283. package/dist/api/knurl.js +5 -3
  284. package/dist/api/knurl.js.map +1 -1
  285. package/dist/api/loft.d.ts +2 -2
  286. package/dist/api/loft.d.ts.map +1 -1
  287. package/dist/api/loft.js +2 -2
  288. package/dist/api/loft.js.map +1 -1
  289. package/dist/api/measurement/index.d.ts +3 -3
  290. package/dist/api/measurement/index.js +3 -3
  291. package/dist/api/measurement/index.js.map +1 -1
  292. package/dist/api/meta.d.ts +0 -2
  293. package/dist/api/meta.d.ts.map +1 -1
  294. package/dist/api/meta.js +0 -2
  295. package/dist/api/meta.js.map +1 -1
  296. package/dist/api/offset2d.d.ts +49 -0
  297. package/dist/api/offset2d.d.ts.map +1 -0
  298. package/dist/api/offset2d.js +86 -0
  299. package/dist/api/offset2d.js.map +1 -0
  300. package/dist/api/pattern.js +3 -3
  301. package/dist/api/pattern.js.map +1 -1
  302. package/dist/api/primitives.d.ts.map +1 -1
  303. package/dist/api/primitives.js +7 -6
  304. package/dist/api/primitives.js.map +1 -1
  305. package/dist/api/replicate.d.ts +2 -2
  306. package/dist/api/replicate.d.ts.map +1 -1
  307. package/dist/api/replicate.js +12 -12
  308. package/dist/api/replicate.js.map +1 -1
  309. package/dist/api/result.d.ts +1 -1
  310. package/dist/api/result.js +1 -1
  311. package/dist/api/result.js.map +1 -1
  312. package/dist/api/revolve.d.ts +2 -2
  313. package/dist/api/revolve.js +3 -3
  314. package/dist/api/revolve.js.map +1 -1
  315. package/dist/api/screw.d.ts +1 -1
  316. package/dist/api/screw.d.ts.map +1 -1
  317. package/dist/api/screw.js +5 -4
  318. package/dist/api/screw.js.map +1 -1
  319. package/dist/api/sdf.d.ts.map +1 -1
  320. package/dist/api/sdf.js +3 -2
  321. package/dist/api/sdf.js.map +1 -1
  322. package/dist/api/shape-type/index.d.ts +141 -0
  323. package/dist/api/shape-type/index.d.ts.map +1 -0
  324. package/dist/api/shape-type/index.js +182 -0
  325. package/dist/api/shape-type/index.js.map +1 -0
  326. package/dist/api/shell.d.ts +2 -2
  327. package/dist/api/shell.js +2 -2
  328. package/dist/api/shell.js.map +1 -1
  329. package/dist/api/solid-from-faces.d.ts +45 -0
  330. package/dist/api/solid-from-faces.d.ts.map +1 -0
  331. package/dist/api/solid-from-faces.js +72 -0
  332. package/dist/api/solid-from-faces.js.map +1 -0
  333. package/dist/api/solid-offset/index.d.ts +67 -0
  334. package/dist/api/solid-offset/index.d.ts.map +1 -0
  335. package/dist/api/solid-offset/index.js +132 -0
  336. package/dist/api/solid-offset/index.js.map +1 -0
  337. package/dist/api/surface/arg-spec.d.ts +35 -33
  338. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  339. package/dist/api/surface/arg-spec.js +222 -224
  340. package/dist/api/surface/arg-spec.js.map +1 -1
  341. package/dist/api/surface-face/index.d.ts +104 -0
  342. package/dist/api/surface-face/index.d.ts.map +1 -0
  343. package/dist/api/surface-face/index.js +217 -0
  344. package/dist/api/surface-face/index.js.map +1 -0
  345. package/dist/api/surface.d.ts +44 -0
  346. package/dist/api/surface.d.ts.map +1 -0
  347. package/dist/api/surface.js +66 -0
  348. package/dist/api/surface.js.map +1 -0
  349. package/dist/api/sweep.d.ts +59 -9
  350. package/dist/api/sweep.d.ts.map +1 -1
  351. package/dist/api/sweep.js +11 -6
  352. package/dist/api/sweep.js.map +1 -1
  353. package/dist/api/thicken.d.ts +1 -1
  354. package/dist/api/thicken.js +1 -1
  355. package/dist/api/thicken.js.map +1 -1
  356. package/dist/api/transform.d.ts +5 -5
  357. package/dist/api/transform.d.ts.map +1 -1
  358. package/dist/api/transform.js +11 -10
  359. package/dist/api/transform.js.map +1 -1
  360. package/dist/api/view/cameraFns.d.ts +1 -1
  361. package/dist/api/view/cameraFns.d.ts.map +1 -1
  362. package/dist/api/view/cameraFns.js +1 -1
  363. package/dist/api/view/cameraFns.js.map +1 -1
  364. package/dist/api/view/index.d.ts +0 -2
  365. package/dist/api/view/index.d.ts.map +1 -1
  366. package/dist/api/view/index.js +0 -2
  367. package/dist/api/view/index.js.map +1 -1
  368. package/dist/api/view/projectionPlanes.d.ts +1 -1
  369. package/dist/api/view/projectionPlanes.d.ts.map +1 -1
  370. package/dist/api/view/projectionPlanes.js.map +1 -1
  371. package/dist/api/view/view-camera.d.ts +7 -9
  372. package/dist/api/view/view-camera.d.ts.map +1 -1
  373. package/dist/api/view/view-camera.js +4 -6
  374. package/dist/api/view/view-camera.js.map +1 -1
  375. package/dist/api/view/view-projection.d.ts +0 -2
  376. package/dist/api/view/view-projection.d.ts.map +1 -1
  377. package/dist/api/view/view-projection.js +0 -2
  378. package/dist/api/view/view-projection.js.map +1 -1
  379. package/dist/api/view/view-sheet.d.ts +0 -2
  380. package/dist/api/view/view-sheet.d.ts.map +1 -1
  381. package/dist/api/view/view-sheet.js +0 -2
  382. package/dist/api/view/view-sheet.js.map +1 -1
  383. package/dist/api/view-export/index.d.ts +97 -0
  384. package/dist/api/view-export/index.d.ts.map +1 -0
  385. package/dist/api/view-export/index.js +118 -0
  386. package/dist/api/view-export/index.js.map +1 -0
  387. package/dist/brep/brep-ops.d.ts +89 -1
  388. package/dist/brep/brep-ops.d.ts.map +1 -1
  389. package/dist/brep/brep-ops.js +176 -10
  390. package/dist/brep/brep-ops.js.map +1 -1
  391. package/dist/brep/brep-topology.d.ts +20 -0
  392. package/dist/brep/brep-topology.d.ts.map +1 -1
  393. package/dist/brep/brep-topology.js +46 -0
  394. package/dist/brep/brep-topology.js.map +1 -1
  395. package/dist/brep/engine/adapters/occt.d.ts +1 -1
  396. package/dist/brep/engine/adapters/occt.js +7 -7
  397. package/dist/brep/engine/adapters/occt.js.map +1 -1
  398. package/dist/brep/engine/primitives.d.ts +2 -3
  399. package/dist/brep/engine/primitives.d.ts.map +1 -1
  400. package/dist/brep/engine/primitives.js +1 -2
  401. package/dist/brep/engine/primitives.js.map +1 -1
  402. package/dist/brep/engine/registry.d.ts +1 -1
  403. package/dist/brep/engine/registry.js +1 -1
  404. package/dist/brep/engine/registry.js.map +1 -1
  405. package/dist/brep/engine/types.d.ts +2 -2
  406. package/dist/brep/engine/types.js.map +1 -1
  407. package/dist/brep/handle-bridge.d.ts +2 -2
  408. package/dist/brep/handle-bridge.js +2 -2
  409. package/dist/brep/handle-bridge.js.map +1 -1
  410. package/dist/brep/index.d.ts +6 -3
  411. package/dist/brep/index.d.ts.map +1 -1
  412. package/dist/brep/index.js +6 -3
  413. package/dist/brep/index.js.map +1 -1
  414. package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
  415. package/dist/brepkit-kernel/brepkitKernel.js +2 -2
  416. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  417. package/dist/browser.d.ts +2 -2
  418. package/dist/browser.d.ts.map +1 -1
  419. package/dist/browser.js +5 -4
  420. package/dist/browser.js.map +1 -1
  421. package/dist/cad-runtime/admit-compat-lib.d.ts +3 -10
  422. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  423. package/dist/cad-runtime/admit-compat-lib.js +3 -9
  424. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  425. package/dist/cad-runtime/backend-dispatch.js +12 -3
  426. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  427. package/dist/cad-runtime/direct-executor.d.ts +6 -3
  428. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  429. package/dist/cad-runtime/direct-executor.js +31 -9
  430. package/dist/cad-runtime/direct-executor.js.map +1 -1
  431. package/dist/cad-runtime/interp/env.d.ts +1 -1
  432. package/dist/cad-runtime/interp/env.js.map +1 -1
  433. package/dist/cad-runtime/lib-id.d.ts +0 -2
  434. package/dist/cad-runtime/lib-id.d.ts.map +1 -1
  435. package/dist/cad-runtime/lib-id.js +0 -2
  436. package/dist/cad-runtime/lib-id.js.map +1 -1
  437. package/dist/cad-runtime/live-shapes.d.ts +3 -5
  438. package/dist/cad-runtime/live-shapes.d.ts.map +1 -1
  439. package/dist/cad-runtime/live-shapes.js +8 -10
  440. package/dist/cad-runtime/live-shapes.js.map +1 -1
  441. package/dist/cad-runtime/ports.d.ts +3 -3
  442. package/dist/cad-runtime/ports.js.map +1 -1
  443. package/dist/cad-runtime/runtime.d.ts +21 -7
  444. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  445. package/dist/cad-runtime/runtime.js +45 -6
  446. package/dist/cad-runtime/runtime.js.map +1 -1
  447. package/dist/define-op.d.ts +4 -3
  448. package/dist/define-op.d.ts.map +1 -1
  449. package/dist/define-op.js +2 -2
  450. package/dist/define-op.js.map +1 -1
  451. package/dist/geometry2d/bridge/plane.d.ts +1 -1
  452. package/dist/geometry2d/bridge/plane.js +1 -1
  453. package/dist/geometry2d/bridge/plane.js.map +1 -1
  454. package/dist/geometry2d/curve2d.d.ts +1 -1
  455. package/dist/geometry2d/curve2d.js +1 -1
  456. package/dist/geometry2d/curve2d.js.map +1 -1
  457. package/dist/index.d.ts +1 -1
  458. package/dist/index.d.ts.map +1 -1
  459. package/dist/index.js +10 -4
  460. package/dist/index.js.map +1 -1
  461. package/dist/io/fai-zip/container-read.d.ts +16 -0
  462. package/dist/io/fai-zip/container-read.d.ts.map +1 -1
  463. package/dist/io/fai-zip/container-read.js +22 -0
  464. package/dist/io/fai-zip/container-read.js.map +1 -1
  465. package/dist/io/fai-zip/index.d.ts +1 -1
  466. package/dist/io/fai-zip/index.d.ts.map +1 -1
  467. package/dist/io/fai-zip/index.js +1 -1
  468. package/dist/io/fai-zip/index.js.map +1 -1
  469. package/dist/lang/code-to-args.d.ts.map +1 -1
  470. package/dist/lang/code-to-args.js +10 -1
  471. package/dist/lang/code-to-args.js.map +1 -1
  472. package/dist/lang/determinism-scanner.d.ts.map +1 -1
  473. package/dist/lang/determinism-scanner.js +22 -9
  474. package/dist/lang/determinism-scanner.js.map +1 -1
  475. package/dist/lang/metadata-extractor.d.ts +27 -6
  476. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  477. package/dist/lang/metadata-extractor.js +88 -8
  478. package/dist/lang/metadata-extractor.js.map +1 -1
  479. package/dist/lang/parse-error.d.ts +4 -0
  480. package/dist/lang/parse-error.d.ts.map +1 -1
  481. package/dist/lang/parse-error.js.map +1 -1
  482. package/dist/lang/security-scanner.d.ts +27 -2
  483. package/dist/lang/security-scanner.d.ts.map +1 -1
  484. package/dist/lang/security-scanner.js +29 -2
  485. package/dist/lang/security-scanner.js.map +1 -1
  486. package/dist/lang/source-edit.d.ts +2 -2
  487. package/dist/lang/source-edit.js.map +1 -1
  488. package/dist/lang/symbol-table.generated.d.ts +36 -0
  489. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  490. package/dist/lang/symbol-table.generated.js +36 -0
  491. package/dist/lang/symbol-table.generated.js.map +1 -1
  492. package/dist/mesh/import-model.d.ts +94 -0
  493. package/dist/mesh/import-model.d.ts.map +1 -0
  494. package/dist/mesh/import-model.js +15 -0
  495. package/dist/mesh/import-model.js.map +1 -0
  496. package/dist/mesh/index.d.ts +19 -58
  497. package/dist/mesh/index.d.ts.map +1 -1
  498. package/dist/mesh/index.js +19 -70
  499. package/dist/mesh/index.js.map +1 -1
  500. package/dist/mesh/io.d.ts +33 -16
  501. package/dist/mesh/io.d.ts.map +1 -1
  502. package/dist/mesh/io.js +144 -39
  503. package/dist/mesh/io.js.map +1 -1
  504. package/dist/mesh/primitives.js +1 -1
  505. package/dist/mesh/primitives.js.map +1 -1
  506. package/dist/mesh/threemf-bambu.d.ts +12 -1
  507. package/dist/mesh/threemf-bambu.d.ts.map +1 -1
  508. package/dist/mesh/threemf-bambu.js +68 -16
  509. package/dist/mesh/threemf-bambu.js.map +1 -1
  510. package/dist/mesh/threemf-loader.d.ts +14 -1
  511. package/dist/mesh/threemf-loader.d.ts.map +1 -1
  512. package/dist/mesh/threemf-loader.js +24 -7
  513. package/dist/mesh/threemf-loader.js.map +1 -1
  514. package/dist/mesh/transform.d.ts +1 -1
  515. package/dist/mesh/transform.js +1 -1
  516. package/dist/mesh/transform.js.map +1 -1
  517. package/dist/mesh/types.d.ts +5 -5
  518. package/dist/mesh/types.d.ts.map +1 -1
  519. package/dist/mesh/types.js.map +1 -1
  520. package/dist/node-host/cli.d.ts +49 -1
  521. package/dist/node-host/cli.d.ts.map +1 -1
  522. package/dist/node-host/cli.js +125 -19
  523. package/dist/node-host/cli.js.map +1 -1
  524. package/dist/node-host/execute-script.d.ts +55 -0
  525. package/dist/node-host/execute-script.d.ts.map +1 -0
  526. package/dist/node-host/execute-script.js +46 -0
  527. package/dist/node-host/execute-script.js.map +1 -0
  528. package/dist/node.d.ts +2 -0
  529. package/dist/node.d.ts.map +1 -1
  530. package/dist/node.js +3 -0
  531. package/dist/node.js.map +1 -1
  532. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +260 -0
  533. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +1 -0
  534. package/dist/occt-kernel/generated/occtPlatform.generated.js +875 -0
  535. package/dist/occt-kernel/generated/occtPlatform.generated.js.map +1 -0
  536. package/dist/occt-kernel/hullGeometry.d.ts +2 -2
  537. package/dist/occt-kernel/hullGeometry.js +2 -3
  538. package/dist/occt-kernel/hullGeometry.js.map +1 -1
  539. package/dist/occt-kernel/hullOps.d.ts +3 -3
  540. package/dist/occt-kernel/hullOps.js +4 -4
  541. package/dist/occt-kernel/hullOps.js.map +1 -1
  542. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  543. package/dist/occt-kernel/occt-primitives.js +31 -4
  544. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  545. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  546. package/dist/occt-kernel/occtKernel.js +18 -0
  547. package/dist/occt-kernel/occtKernel.js.map +1 -1
  548. package/dist/occt-scan/recognize.d.ts +58 -0
  549. package/dist/occt-scan/recognize.d.ts.map +1 -0
  550. package/dist/occt-scan/recognize.js +216 -0
  551. package/dist/occt-scan/recognize.js.map +1 -0
  552. package/dist/primitives/brep-primitives.js +7 -7
  553. package/dist/primitives/brep-primitives.js.map +1 -1
  554. package/dist/result/bug.d.ts +1 -1
  555. package/dist/result/bug.js +1 -1
  556. package/dist/result/bug.js.map +1 -1
  557. package/dist/result/errors.d.ts +2 -2
  558. package/dist/result/errors.d.ts.map +1 -1
  559. package/dist/result/errors.js +1 -1
  560. package/dist/result/errors.js.map +1 -1
  561. package/dist/result/vec3.d.ts +1 -1
  562. package/dist/result/vec3.js +1 -1
  563. package/dist/result/vec3.js.map +1 -1
  564. package/dist/runtime-state.d.ts +16 -0
  565. package/dist/runtime-state.d.ts.map +1 -1
  566. package/dist/runtime-state.js +27 -0
  567. package/dist/runtime-state.js.map +1 -1
  568. package/dist/script-globals.d.ts +24 -0
  569. package/dist/script-globals.d.ts.map +1 -0
  570. package/dist/script-globals.js +24 -0
  571. package/dist/script-globals.js.map +1 -0
  572. package/dist/shape.d.ts +24 -0
  573. package/dist/shape.d.ts.map +1 -1
  574. package/dist/shape.js +40 -0
  575. package/dist/shape.js.map +1 -1
  576. package/dist/topology/naming/lineage.d.ts +3 -2
  577. package/dist/topology/naming/lineage.d.ts.map +1 -1
  578. package/dist/topology/naming/lineage.js.map +1 -1
  579. package/dist/weapp.d.ts +1 -1
  580. package/dist/weapp.js +1 -1
  581. package/dist/weapp.js.map +1 -1
  582. package/package.json +8 -10
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-table.generated.js","sourceRoot":"","sources":["../../src/lang/symbol-table.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAe;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,EAAE;IACrB,KAAK,EAAE,EAAE;IACT,gBAAgB,EAAE,EAAE;IACpB,qBAAqB,EAAE,EAAE;IACzB,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,EAAE;IACrB,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,kBAAkB,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,qBAAqB,EAAE,EAAE;CAC1B,CAAA","sourcesContent":["/**\n * symbol-table 生成文件 — 禁手改。\n * 由 scripts/gen-symbol-table.ts 从 api-namespace 的 cad 命名空间生成(键存在性)。\n * keep-syntax P1 后符号表只承载 check() 符号检查(\"函数不存在\"判定);\n * 保留语义由 keep 声明表达,不再有 readonly 标注。\n */\nexport default {\n \"box\": {},\n \"sphere\": {},\n \"cylinder\": {},\n \"cone\": {},\n \"wedge\": {},\n \"screw\": {},\n \"profile\": {},\n \"sketchOnPlane\": {},\n \"sketchOnFace\": {},\n \"punchHole\": {},\n \"wire\": {},\n \"helix\": {},\n \"sdf\": {},\n \"translate\": {},\n \"rotate_euler\": {},\n \"scale\": {},\n \"scale3d\": {},\n \"engrave\": {},\n \"chamfer\": {},\n \"fillet\": {},\n \"knurl\": {},\n \"shell\": {},\n \"draft\": {},\n \"thicken\": {},\n \"filletVariable\": {},\n \"splitByPlane\": {},\n \"sectionByPlane\": {},\n \"defeature\": {},\n \"reverseShape\": {},\n \"unifySameDomain\": {},\n \"sew\": {},\n \"sewAndSolidify\": {},\n \"removeHolesFromFace\": {},\n \"union\": {},\n \"subtract\": {},\n \"intersect\": {},\n \"extrude\": {},\n \"revolve\": {},\n \"sweep\": {},\n \"loft\": {},\n \"faceNormal\": {},\n \"bboxCenter\": {},\n \"bboxMin\": {},\n \"bboxMax\": {},\n \"edgeRef\": {},\n \"faceRef\": {},\n \"jointTrajectory\": {},\n \"inverseKinematics\": {},\n \"mechanismDOF\": {},\n \"asset\": {},\n \"import_brep\": {},\n \"import_step\": {},\n \"compound\": {},\n \"place\": {},\n \"cut\": {},\n \"split\": {},\n \"linearPattern\": {},\n \"circularPattern\": {},\n \"gridPattern\": {},\n \"rectangularPattern\": {},\n \"mirrorJoin\": {},\n \"mirror\": {},\n \"clone\": {},\n \"torus\": {},\n \"fuse\": {},\n \"inspectMassProps\": {},\n \"area\": {},\n \"length\": {},\n \"volume\": {},\n \"centerOfMass\": {},\n \"viewCamera\": {},\n \"projectView\": {},\n \"projectSheet\": {},\n \"complexExtrude\": {},\n \"twistExtrude\": {},\n \"roof\": {},\n \"drill\": {},\n \"pocket\": {},\n \"boss\": {},\n \"thread\": {},\n \"convexHull\": {},\n \"makeBaseBox\": {},\n \"ellipsoid\": {},\n \"rotate\": {},\n \"applyMatrix\": {},\n \"locate\": {},\n \"offset\": {},\n \"heal\": {},\n \"simplify\": {},\n \"isValid\": {},\n \"isSameShape\": {},\n \"autoHeal\": {},\n \"fixShape\": {},\n \"healSolid\": {},\n \"fixSelfIntersection\": {}\n}\n"]}
1
+ {"version":3,"file":"symbol-table.generated.js","sourceRoot":"","sources":["../../src/lang/symbol-table.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAe;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,EAAE;IACrB,KAAK,EAAE,EAAE;IACT,gBAAgB,EAAE,EAAE;IACpB,qBAAqB,EAAE,EAAE;IACzB,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,gBAAgB,EAAE,EAAE;IACpB,OAAO,EAAE,EAAE;IACX,gBAAgB,EAAE,EAAE;IACpB,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,mBAAmB,EAAE,EAAE;IACvB,yBAAyB,EAAE,EAAE;IAC7B,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,EAAE;IACrB,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,kBAAkB,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,qBAAqB,EAAE,EAAE;CAC1B,CAAA","sourcesContent":["/**\n * symbol-table 生成文件 — 禁手改。\n * 由 scripts/gen-symbol-table.ts 从 api-namespace 的 cad 命名空间生成(键存在性)。\n * keep-syntax P1 后符号表只承载 check() 符号检查(\"函数不存在\"判定);\n * 保留语义由 keep 声明表达,不再有 readonly 标注。\n */\nexport default {\n \"box\": {},\n \"sphere\": {},\n \"cylinder\": {},\n \"cone\": {},\n \"wedge\": {},\n \"screw\": {},\n \"profile\": {},\n \"sketchOnPlane\": {},\n \"sketchOnFace\": {},\n \"punchHole\": {},\n \"wire\": {},\n \"helix\": {},\n \"sdf\": {},\n \"translate\": {},\n \"rotate_euler\": {},\n \"scale\": {},\n \"scale3d\": {},\n \"engrave\": {},\n \"chamfer\": {},\n \"fillet\": {},\n \"knurl\": {},\n \"shell\": {},\n \"draft\": {},\n \"thicken\": {},\n \"filletVariable\": {},\n \"splitByPlane\": {},\n \"sectionByPlane\": {},\n \"defeature\": {},\n \"reverseShape\": {},\n \"unifySameDomain\": {},\n \"sew\": {},\n \"sewAndSolidify\": {},\n \"removeHolesFromFace\": {},\n \"union\": {},\n \"subtract\": {},\n \"intersect\": {},\n \"extrude\": {},\n \"revolve\": {},\n \"sweep\": {},\n \"loft\": {},\n \"surface\": {},\n \"offset2d\": {},\n \"solidFromFaces\": {},\n \"halfSpace\": {},\n \"exportStl\": {},\n \"exportBrep\": {},\n \"isEdge\": {},\n \"isFace\": {},\n \"isShell\": {},\n \"isVertex\": {},\n \"isWire\": {},\n \"isCompound\": {},\n \"isCompSolid\": {},\n \"isEqual\": {},\n \"toSVG\": {},\n \"toMultiviewSVG\": {},\n \"toPNG\": {},\n \"toMultiviewPNG\": {},\n \"edge\": {},\n \"circleArc\": {},\n \"ellipseEdge\": {},\n \"ellipseArc\": {},\n \"tangentArc\": {},\n \"approximatePoints\": {},\n \"interpolateWithTangents\": {},\n \"curveDegreeElevate\": {},\n \"curveKnotInsert\": {},\n \"curveKnotRemove\": {},\n \"curveIsPeriodic\": {},\n \"faceOnSurface\": {},\n \"nonPlanarFace\": {},\n \"makeSolid\": {},\n \"reverseSurfaceU\": {},\n \"outerWire\": {},\n \"draftPrism\": {},\n \"pipe\": {},\n \"faceNormal\": {},\n \"bboxCenter\": {},\n \"bboxMin\": {},\n \"bboxMax\": {},\n \"edgeRef\": {},\n \"faceRef\": {},\n \"jointTrajectory\": {},\n \"inverseKinematics\": {},\n \"mechanismDOF\": {},\n \"asset\": {},\n \"import_brep\": {},\n \"import_step\": {},\n \"compound\": {},\n \"place\": {},\n \"cut\": {},\n \"split\": {},\n \"linearPattern\": {},\n \"circularPattern\": {},\n \"gridPattern\": {},\n \"rectangularPattern\": {},\n \"mirrorJoin\": {},\n \"mirror\": {},\n \"clone\": {},\n \"torus\": {},\n \"fuse\": {},\n \"inspectMassProps\": {},\n \"area\": {},\n \"length\": {},\n \"volume\": {},\n \"centerOfMass\": {},\n \"viewCamera\": {},\n \"projectView\": {},\n \"projectSheet\": {},\n \"complexExtrude\": {},\n \"twistExtrude\": {},\n \"roof\": {},\n \"drill\": {},\n \"pocket\": {},\n \"boss\": {},\n \"thread\": {},\n \"convexHull\": {},\n \"makeBaseBox\": {},\n \"ellipsoid\": {},\n \"rotate\": {},\n \"applyMatrix\": {},\n \"locate\": {},\n \"offset\": {},\n \"heal\": {},\n \"simplify\": {},\n \"isValid\": {},\n \"isSameShape\": {},\n \"autoHeal\": {},\n \"fixShape\": {},\n \"healSolid\": {},\n \"fixSelfIntersection\": {}\n}\n"]}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * ImportModel — 一次文件导入的完整结构数据(非几何)。
3
+ *
4
+ * 方案 2026-10-06-step-3mf-multipart-import-plan.md §5.1:
5
+ * - `ImportModel` 描述「一次导入」的零件身份表 + 装配层级 + 文件元数据;
6
+ * - 与 `compounds` / `detectedUnits` 同层,不进 `.fai.js`、不参与几何运算、
7
+ * 不影响确定性(内容由文件决定);
8
+ * - 几何由 `cad.load` 返回的 Shape(单零件)或 CompoundShape.children
9
+ * (多零件,children 序 = `parts.index` 一一对应)承载。
10
+ *
11
+ * R5 边界(显示/导出判别,衔接草图方案):`ImportPart.exportable` 默认 true;
12
+ * 仅显示几何(草图等)由草图方案置 false——宿主「导出依据场景树」红线据此过滤。
13
+ */
14
+ import type { UnitName } from '../units.js';
15
+ import type { FileMeta, ShapeMeta } from '../api/meta.js';
16
+ /** 一次导入中的一个零件(身份数据;几何在 Shape/CompoundShape.children 对应下标)。 */
17
+ export interface ImportPart {
18
+ /** 零件在本次导入中的序号(0 起,等于 load 返回 compound.children 的下标)。 */
19
+ index: number;
20
+ /** 零件名(STEP XCAF label / 3MF `<object name>`;无则回退 `imported:<index>`)。 */
21
+ name: string;
22
+ /** 显示色 sRGB 0..1(STEP STYLED_ITEM / 3MF basematerials)。 */
23
+ color?: [number, number, number];
24
+ /** 3MF `<object id>`(Bambu 视图变换查表键)。 */
25
+ objectId?: string;
26
+ /** Bambu part id(`objectId:partId` 查 importTransforms 键;经父 object components 关联)。 */
27
+ partId?: string;
28
+ /** Bambu 盘号(多盘分组依据)。 */
29
+ plateId?: number;
30
+ /** Bambu 挤出机序号(1 起)。 */
31
+ extruder?: number;
32
+ /** 零件级说明性元数据(复用 ShapeMeta)。 */
33
+ meta?: ShapeMeta;
34
+ /** 是否可导出(R5):默认 true;仅显示几何(草图等)由草图方案置 false。 */
35
+ exportable?: boolean;
36
+ }
37
+ /** STEP 装配层级节点(XCAF 树 / syntheticGroup 合成节点;DFS 序与 parts 顺序一致)。 */
38
+ export interface ImportAssemblyNode {
39
+ name: string;
40
+ /** 叶节点:指向 parts 下标。 */
41
+ partIndex?: number;
42
+ /** 装配/合成节点:子节点(DFS 序与 parts 顺序一致)。 */
43
+ children?: ImportAssemblyNode[];
44
+ }
45
+ /** Bambu 显示视图数据(仅 3MF):多盘布局 / print·assembly·import 视图 delta。
46
+ * 显示通道删除后宿主不再解析 3mf archive,视图数据必须由 faijs 结果承载。
47
+ * 字段覆盖宿主(ModelGroup view delta / 多盘布局 / 挤出机材质)的完整消费面,
48
+ * 宿主经 `bambuViewsToMetadata` 重建 Bambu3mfMetadata 时无需再回读 archive。 */
49
+ export interface ImportBambuViews {
50
+ /** 盘号列表(升序、去重)。 */
51
+ plates: number[];
52
+ /** `<assemble>` 装配视图位姿(键 = objectId)。 */
53
+ assembleTransforms?: Record<string, {
54
+ transform: number[];
55
+ offset: [number, number, number];
56
+ }>;
57
+ /** per-part 导入位姿(键 = `objectId:partId`)。 */
58
+ importTransforms?: Record<string, {
59
+ matrix: number[];
60
+ sourceOffset: [number, number, number];
61
+ }>;
62
+ /** `<build>` 打印视图 item 表(print 布局位姿判定用)。 */
63
+ buildItems?: Array<{
64
+ objectId: string;
65
+ transform: number[] | null;
66
+ }>;
67
+ /** 挤出机颜色表(下标 = extruder-1,材质继承用)。 */
68
+ filamentColors?: string[];
69
+ filamentTypes?: string[];
70
+ /** per-part 身份表(序 = ImportModel.parts = compound.children;view delta 键匹配用)。 */
71
+ parts?: Array<{
72
+ partIndex: number;
73
+ objectId: string;
74
+ partId: string;
75
+ name: string;
76
+ extruder: number;
77
+ plateId: number;
78
+ }>;
79
+ }
80
+ /** 一次文件导入的完整结构产物。 */
81
+ export interface ImportModel {
82
+ format: 'step' | '3mf' | 'stl' | 'brep';
83
+ /** 文件声明单位(元数据;坐标已是基准值)。 */
84
+ unit: UnitName | null;
85
+ /** 整体级元数据(文件级;无声明则省略)。 */
86
+ fileMeta?: FileMeta;
87
+ /** 零件表,顺序与 load 返回 compound.children 一致(单零件时长度 1)。 */
88
+ parts: ImportPart[];
89
+ /** STEP 装配层级(XCAF 树);无装配结构时省略。 */
90
+ assembly?: ImportAssemblyNode;
91
+ /** Bambu 显示视图数据(仅 3MF)。 */
92
+ bambuViews?: ImportBambuViews;
93
+ }
94
+ //# sourceMappingURL=import-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-model.d.ts","sourceRoot":"","sources":["../../src/mesh/import-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEtD,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED;;;qEAGqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;IAC9F,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;IAC/F,4CAA4C;IAC5C,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IACpE,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;CACH;AAED,qBAAqB;AACrB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;IACvC,2BAA2B;IAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,sDAAsD;IACtD,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,2BAA2B;IAC3B,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ImportModel — 一次文件导入的完整结构数据(非几何)。
3
+ *
4
+ * 方案 2026-10-06-step-3mf-multipart-import-plan.md §5.1:
5
+ * - `ImportModel` 描述「一次导入」的零件身份表 + 装配层级 + 文件元数据;
6
+ * - 与 `compounds` / `detectedUnits` 同层,不进 `.fai.js`、不参与几何运算、
7
+ * 不影响确定性(内容由文件决定);
8
+ * - 几何由 `cad.load` 返回的 Shape(单零件)或 CompoundShape.children
9
+ * (多零件,children 序 = `parts.index` 一一对应)承载。
10
+ *
11
+ * R5 边界(显示/导出判别,衔接草图方案):`ImportPart.exportable` 默认 true;
12
+ * 仅显示几何(草图等)由草图方案置 false——宿主「导出依据场景树」红线据此过滤。
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=import-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-model.js","sourceRoot":"","sources":["../../src/mesh/import-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG","sourcesContent":["/**\n * ImportModel — 一次文件导入的完整结构数据(非几何)。\n *\n * 方案 2026-10-06-step-3mf-multipart-import-plan.md §5.1:\n * - `ImportModel` 描述「一次导入」的零件身份表 + 装配层级 + 文件元数据;\n * - 与 `compounds` / `detectedUnits` 同层,不进 `.fai.js`、不参与几何运算、\n * 不影响确定性(内容由文件决定);\n * - 几何由 `cad.load` 返回的 Shape(单零件)或 CompoundShape.children\n * (多零件,children 序 = `parts.index` 一一对应)承载。\n *\n * R5 边界(显示/导出判别,衔接草图方案):`ImportPart.exportable` 默认 true;\n * 仅显示几何(草图等)由草图方案置 false——宿主「导出依据场景树」红线据此过滤。\n */\n\nimport type { UnitName } from '../units'\nimport type { FileMeta, ShapeMeta } from '../api/meta'\n\n/** 一次导入中的一个零件(身份数据;几何在 Shape/CompoundShape.children 对应下标)。 */\nexport interface ImportPart {\n /** 零件在本次导入中的序号(0 起,等于 load 返回 compound.children 的下标)。 */\n index: number\n /** 零件名(STEP XCAF label / 3MF `<object name>`;无则回退 `imported:<index>`)。 */\n name: string\n /** 显示色 sRGB 0..1(STEP STYLED_ITEM / 3MF basematerials)。 */\n color?: [number, number, number]\n /** 3MF `<object id>`(Bambu 视图变换查表键)。 */\n objectId?: string\n /** Bambu part id(`objectId:partId` 查 importTransforms 键;经父 object components 关联)。 */\n partId?: string\n /** Bambu 盘号(多盘分组依据)。 */\n plateId?: number\n /** Bambu 挤出机序号(1 起)。 */\n extruder?: number\n /** 零件级说明性元数据(复用 ShapeMeta)。 */\n meta?: ShapeMeta\n /** 是否可导出(R5):默认 true;仅显示几何(草图等)由草图方案置 false。 */\n exportable?: boolean\n}\n\n/** STEP 装配层级节点(XCAF 树 / syntheticGroup 合成节点;DFS 序与 parts 顺序一致)。 */\nexport interface ImportAssemblyNode {\n name: string\n /** 叶节点:指向 parts 下标。 */\n partIndex?: number\n /** 装配/合成节点:子节点(DFS 序与 parts 顺序一致)。 */\n children?: ImportAssemblyNode[]\n}\n\n/** Bambu 显示视图数据(仅 3MF):多盘布局 / print·assembly·import 视图 delta。\n * 显示通道删除后宿主不再解析 3mf archive,视图数据必须由 faijs 结果承载。\n * 字段覆盖宿主(ModelGroup view delta / 多盘布局 / 挤出机材质)的完整消费面,\n * 宿主经 `bambuViewsToMetadata` 重建 Bambu3mfMetadata 时无需再回读 archive。 */\nexport interface ImportBambuViews {\n /** 盘号列表(升序、去重)。 */\n plates: number[]\n /** `<assemble>` 装配视图位姿(键 = objectId)。 */\n assembleTransforms?: Record<string, { transform: number[]; offset: [number, number, number] }>\n /** per-part 导入位姿(键 = `objectId:partId`)。 */\n importTransforms?: Record<string, { matrix: number[]; sourceOffset: [number, number, number] }>\n /** `<build>` 打印视图 item 表(print 布局位姿判定用)。 */\n buildItems?: Array<{ objectId: string; transform: number[] | null }>\n /** 挤出机颜色表(下标 = extruder-1,材质继承用)。 */\n filamentColors?: string[]\n filamentTypes?: string[]\n /** per-part 身份表(序 = ImportModel.parts = compound.children;view delta 键匹配用)。 */\n parts?: Array<{\n partIndex: number\n objectId: string\n partId: string\n name: string\n extruder: number\n plateId: number\n }>\n}\n\n/** 一次文件导入的完整结构产物。 */\nexport interface ImportModel {\n format: 'step' | '3mf' | 'stl' | 'brep'\n /** 文件声明单位(元数据;坐标已是基准值)。 */\n unit: UnitName | null\n /** 整体级元数据(文件级;无声明则省略)。 */\n fileMeta?: FileMeta\n /** 零件表,顺序与 load 返回 compound.children 一致(单零件时长度 1)。 */\n parts: ImportPart[]\n /** STEP 装配层级(XCAF 树);无装配结构时省略。 */\n assembly?: ImportAssemblyNode\n /** Bambu 显示视图数据(仅 3MF)。 */\n bambuViews?: ImportBambuViews\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * mesh — 纯数据几何 API 统一入口
2
+ * mesh — 纯数据几何内核(按模块组织的实现层)
3
3
  *
4
4
  * See docs/api-contract.md §1 (architecture layers) and §10 (api function catalog).
5
5
  *
@@ -9,65 +9,26 @@
9
9
  * 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理
10
10
  * 4. 坐标系:右手系 +Z 向上、毫米、角度用度
11
11
  *
12
- * P1 阶段:mesh 是对现有纯函数的薄包装层,行为完全不变。
13
- * P3+ 阶段:mesh 将由 ScriptEngine 驱动,在 worker 中执行。
14
- */
15
- import * as primitives from './primitives.js';
16
- import * as brepPrimitives from '../brep/primitives-brep.js';
17
- import * as brepOps from '../brep/index.js';
18
- import * as booleanOps from './boolean.js';
19
- import * as engraveOps from './engrave.js';
20
- import * as transformOps from './transform.js';
21
- import * as queryOps from './query.js';
22
- import * as ioOps from './io.js';
23
- /**
24
- * Unified `cad` API object aggregating the pure-data mesh operations: mesh and
25
- * BREP primitives, transforms, booleans, engrave/knurl, geometry queries, file
26
- * IO, and BREP feature operations.
12
+ * ⚠️ B3 补正(2026-10-06,用户决定):本文件**不再导出任何聚合对象**。
13
+ *
14
+ * 此前这里有一个把 primitives / brep / transform / boolean / engrave / query / io
15
+ * 全量聚合进来的对象(曾名 `cad`,B3 一度改名 `meshCad`)。它把内核实现包装成一个
16
+ * 「形似平台 API」的门面,使下游(含本仓测试)能 `import { cad } from '../mesh/index.js'`
17
+ * 把内核当成 faijs 的公开 API——这正是要根除的混淆。改名只是换了张皮,因此聚合
18
+ * 对象已整体删除,不再以任何名字存在。
19
+ *
20
+ * 要哪一层的实现,就从对应模块具名导入:
21
+ * - `mesh/primitives` box / sphere / cylinder / cone / wedge / screw / sdf
22
+ * - `mesh/transform` translate / rotate_euler / scale / scale3d / transformMatrix
23
+ * - `mesh/boolean` union / subtract / intersect
24
+ * - `mesh/engrave` engrave / knurl
25
+ * - `mesh/query` boundingBox / bboxCenter / volume / faceAt
26
+ * - `mesh/io` importFile / detectStepUnit
27
+ * - `brep`、`brep/primitives-brep` BREP(OCCT)路径
27
28
  *
28
- * D1(2026-09-23 扩展库拆分):`text` / `svgExtrude` / `fai_*` 键已随
29
- * `@faicad/faijs-extra` 迁出——它们的实现在扩展库的 mesh 面(`editorCad`)。
29
+ * 注意:脚本面的 `cad`(宿主经 `registerLib('cad', …)` 注入的 op 命名空间)与这一层
30
+ * 是两回事——它不在这里,也不该被这里 import。见 AGENTS.md「库开发者 vs 脚本开发者」。
30
31
  */
31
- export declare const cad: {
32
- box: typeof primitives.box;
33
- sphere: typeof primitives.sphere;
34
- cylinder: typeof primitives.cylinder;
35
- cone: typeof primitives.cone;
36
- wedge: typeof primitives.wedge;
37
- screw: typeof primitives.screw;
38
- sdf: typeof primitives.sdf;
39
- boxBrep: typeof brepPrimitives.boxBrep;
40
- sphereBrep: typeof brepPrimitives.sphereBrep;
41
- cylinderBrep: typeof brepPrimitives.cylinderBrep;
42
- coneBrep: typeof brepPrimitives.coneBrep;
43
- wedgeBrep: typeof brepPrimitives.wedgeBrep;
44
- translate: typeof transformOps.translate;
45
- rotate_euler: typeof transformOps.rotate_euler;
46
- scale: typeof transformOps.scale;
47
- scale3d: typeof transformOps.scale3d;
48
- transformMatrix: typeof transformOps.transformMatrix;
49
- union: typeof booleanOps.union;
50
- subtract: typeof booleanOps.subtract;
51
- intersect: typeof booleanOps.intersect;
52
- engrave: typeof engraveOps.engrave;
53
- knurl: typeof engraveOps.knurl;
54
- boundingBox: typeof queryOps.boundingBox;
55
- bboxCenter: typeof queryOps.bboxCenter;
56
- volume: typeof queryOps.volume;
57
- faceAt: typeof queryOps.faceAt;
58
- load: typeof ioOps.importFile;
59
- translateBrep: typeof brepOps.translateBrep;
60
- rotateBrep: typeof brepOps.rotateBrep;
61
- scaleBrep: typeof brepOps.scaleBrep;
62
- fuseBrep: typeof brepOps.fuseBrep;
63
- cutBrep: typeof brepOps.cutBrep;
64
- commonBrep: typeof brepOps.commonBrep;
65
- drillBrep: typeof brepOps.drillBrep;
66
- splitBrep: typeof brepOps.splitBrep;
67
- extrudeBrep: typeof brepOps.extrudeBrep;
68
- loadBrep: typeof brepOps.loadBrep;
69
- solidToShape: typeof brepOps.solidToShape;
70
- };
71
32
  export type { Shape, Vec3, BoundingBox, FaceDescriptor } from './types.js';
72
33
  export { guessStlUnit } from './stl-unit.js';
73
34
  export type { BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams, TextParams, SvgExtrudeParams, SdfParams, DrillParams, ExtrudeParams, EngraveParams, KnurlParams, SplitPlane, SplitResult, DovetailSplitParams, DowelSplitParams, TenonSplitParams, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,UAAU,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,YAAY,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,CAAA;AAI7B;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Df,CAAA;AAID,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EACV,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAChE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EACvC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EACtD,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,GACjF,MAAM,SAAS,CAAA;AAGhB,YAAY,EACV,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EACjE,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAC/D,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EACV,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAChE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EACvC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EACtD,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,GACjF,MAAM,SAAS,CAAA;AAGhB,YAAY,EACV,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EACjE,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAC/D,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * mesh — 纯数据几何 API 统一入口
2
+ * mesh — 纯数据几何内核(按模块组织的实现层)
3
3
  *
4
4
  * See docs/api-contract.md §1 (architecture layers) and §10 (api function catalog).
5
5
  *
@@ -9,77 +9,26 @@
9
9
  * 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理
10
10
  * 4. 坐标系:右手系 +Z 向上、毫米、角度用度
11
11
  *
12
- * P1 阶段:mesh 是对现有纯函数的薄包装层,行为完全不变。
13
- * P3+ 阶段:mesh 将由 ScriptEngine 驱动,在 worker 中执行。
14
- */
15
- import * as primitives from './primitives.js';
16
- import * as brepPrimitives from '../brep/primitives-brep.js';
17
- import * as brepOps from '../brep/index.js';
18
- import * as booleanOps from './boolean.js';
19
- import * as engraveOps from './engrave.js';
20
- import * as transformOps from './transform.js';
21
- import * as queryOps from './query.js';
22
- import * as ioOps from './io.js';
23
- // ── 统一 cad API 对象 ──
24
- /**
25
- * Unified `cad` API object aggregating the pure-data mesh operations: mesh and
26
- * BREP primitives, transforms, booleans, engrave/knurl, geometry queries, file
27
- * IO, and BREP feature operations.
12
+ * ⚠️ B3 补正(2026-10-06,用户决定):本文件**不再导出任何聚合对象**。
13
+ *
14
+ * 此前这里有一个把 primitives / brep / transform / boolean / engrave / query / io
15
+ * 全量聚合进来的对象(曾名 `cad`,B3 一度改名 `meshCad`)。它把内核实现包装成一个
16
+ * 「形似平台 API」的门面,使下游(含本仓测试)能 `import { cad } from '../mesh/index.js'`
17
+ * 把内核当成 faijs 的公开 API——这正是要根除的混淆。改名只是换了张皮,因此聚合
18
+ * 对象已整体删除,不再以任何名字存在。
19
+ *
20
+ * 要哪一层的实现,就从对应模块具名导入:
21
+ * - `mesh/primitives` box / sphere / cylinder / cone / wedge / screw / sdf
22
+ * - `mesh/transform` translate / rotate_euler / scale / scale3d / transformMatrix
23
+ * - `mesh/boolean` union / subtract / intersect
24
+ * - `mesh/engrave` engrave / knurl
25
+ * - `mesh/query` boundingBox / bboxCenter / volume / faceAt
26
+ * - `mesh/io` importFile / detectStepUnit
27
+ * - `brep`、`brep/primitives-brep` BREP(OCCT)路径
28
28
  *
29
- * D1(2026-09-23 扩展库拆分):`text` / `svgExtrude` / `fai_*` 键已随
30
- * `@faicad/faijs-extra` 迁出——它们的实现在扩展库的 mesh 面(`editorCad`)。
29
+ * 注意:脚本面的 `cad`(宿主经 `registerLib('cad', …)` 注入的 op 命名空间)与这一层
30
+ * 是两回事——它不在这里,也不该被这里 import。见 AGENTS.md「库开发者 vs 脚本开发者」。
31
31
  */
32
- export const cad = {
33
- // 创建(mesh 路径)
34
- box: primitives.box,
35
- sphere: primitives.sphere,
36
- cylinder: primitives.cylinder,
37
- cone: primitives.cone,
38
- wedge: primitives.wedge,
39
- screw: primitives.screw,
40
- sdf: primitives.sdf,
41
- // 创建(BREP 路径 — OCCT 精确实体三角化)
42
- boxBrep: brepPrimitives.boxBrep,
43
- sphereBrep: brepPrimitives.sphereBrep,
44
- cylinderBrep: brepPrimitives.cylinderBrep,
45
- coneBrep: brepPrimitives.coneBrep,
46
- wedgeBrep: brepPrimitives.wedgeBrep,
47
- // 变换
48
- translate: transformOps.translate,
49
- rotate_euler: transformOps.rotate_euler,
50
- scale: transformOps.scale,
51
- scale3d: transformOps.scale3d,
52
- transformMatrix: transformOps.transformMatrix,
53
- // 布尔
54
- union: booleanOps.union,
55
- subtract: booleanOps.subtract,
56
- intersect: booleanOps.intersect,
57
- // 分割
58
- // `fai_*` 键(编辑器消费面)已随扩展库迁出:@faicad/faijs-extra 的 mesh 面
59
- // 经 `mesh/fai_split.ts` / `mesh/fai_drill.ts` / `mesh/fai_extrude.ts` 提供。
60
- // 雕刻
61
- engrave: engraveOps.engrave,
62
- knurl: engraveOps.knurl,
63
- // 查询
64
- boundingBox: queryOps.boundingBox,
65
- bboxCenter: queryOps.bboxCenter,
66
- volume: queryOps.volume,
67
- faceAt: queryOps.faceAt,
68
- // IO
69
- load: ioOps.importFile,
70
- // BREP 特征操作(Phase 2 — OCCT 精确实体运算)
71
- translateBrep: brepOps.translateBrep,
72
- rotateBrep: brepOps.rotateBrep,
73
- scaleBrep: brepOps.scaleBrep,
74
- fuseBrep: brepOps.fuseBrep,
75
- cutBrep: brepOps.cutBrep,
76
- commonBrep: brepOps.commonBrep,
77
- drillBrep: brepOps.drillBrep,
78
- splitBrep: brepOps.splitBrep,
79
- extrudeBrep: brepOps.extrudeBrep,
80
- loadBrep: brepOps.loadBrep,
81
- solidToShape: brepOps.solidToShape,
82
- };
83
32
  export { guessStlUnit } from './stl-unit.js';
84
33
  export { createBrepChainState, initBrepChainState, releaseBrepChainState, solidToShape, isCadFormat, } from '../brep/index.js';
85
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,UAAU,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,YAAY,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,CAAA;AAE7B,sBAAsB;AAEtB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,cAAc;IACd,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,MAAM,EAAE,UAAU,CAAC,MAAM;IACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;IAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;IACrB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,GAAG,EAAE,UAAU,CAAC,GAAG;IAEnB,6BAA6B;IAC7B,OAAO,EAAE,cAAc,CAAC,OAAO;IAC/B,UAAU,EAAE,cAAc,CAAC,UAAU;IACrC,YAAY,EAAE,cAAc,CAAC,YAAY;IACzC,QAAQ,EAAE,cAAc,CAAC,QAAQ;IACjC,SAAS,EAAE,cAAc,CAAC,SAAS;IAEnC,KAAK;IACL,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,YAAY,EAAE,YAAY,CAAC,YAAY;IACvC,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,eAAe,EAAE,YAAY,CAAC,eAAe;IAE7C,KAAK;IACL,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;IAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;IAE/B,KAAK;IACL,wDAAwD;IACxD,0EAA0E;IAE1E,KAAK;IACL,OAAO,EAAE,UAAU,CAAC,OAAO;IAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;IAEvB,KAAK;IACL,WAAW,EAAE,QAAQ,CAAC,WAAW;IACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;IAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;IAEvB,KAAK;IACL,IAAI,EAAE,KAAK,CAAC,UAAU;IAEtB,mCAAmC;IACnC,aAAa,EAAE,OAAO,CAAC,aAAa;IACpC,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;IAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;IAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;IAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;IAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;CACnC,CAAA;AAKD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAazC,OAAO,EACL,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAC/D,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA","sourcesContent":["/**\n * mesh — 纯数据几何 API 统一入口\n *\n * See docs/api-contract.md §1 (architecture layers) and §10 (api function catalog).\n *\n * 原则(§5.1):\n * 1. 全部纯数据:输入输出是 Shape (ManifoldMeshData),不碰 THREE 场景、不读 store\n * 2. 不可变:每个 API 返回新几何,不修改输入\n * 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理\n * 4. 坐标系:右手系 +Z 向上、毫米、角度用度\n *\n * P1 阶段:mesh 是对现有纯函数的薄包装层,行为完全不变。\n * P3+ 阶段:mesh 将由 ScriptEngine 驱动,在 worker 中执行。\n */\n\nimport * as primitives from './primitives'\nimport * as brepPrimitives from '../brep/primitives-brep'\nimport * as brepOps from '../brep'\nimport * as booleanOps from './boolean'\nimport * as engraveOps from './engrave'\nimport * as transformOps from './transform'\nimport * as queryOps from './query'\nimport * as ioOps from './io'\n\n// ── 统一 cad API 对象 ──\n\n/**\n * Unified `cad` API object aggregating the pure-data mesh operations: mesh and\n * BREP primitives, transforms, booleans, engrave/knurl, geometry queries, file\n * IO, and BREP feature operations.\n *\n * D1(2026-09-23 扩展库拆分):`text` / `svgExtrude` / `fai_*` 键已随\n * `@faicad/faijs-extra` 迁出——它们的实现在扩展库的 mesh 面(`editorCad`)。\n */\nexport const cad = {\n // 创建(mesh 路径)\n box: primitives.box,\n sphere: primitives.sphere,\n cylinder: primitives.cylinder,\n cone: primitives.cone,\n wedge: primitives.wedge,\n screw: primitives.screw,\n sdf: primitives.sdf,\n\n // 创建(BREP 路径 — OCCT 精确实体三角化)\n boxBrep: brepPrimitives.boxBrep,\n sphereBrep: brepPrimitives.sphereBrep,\n cylinderBrep: brepPrimitives.cylinderBrep,\n coneBrep: brepPrimitives.coneBrep,\n wedgeBrep: brepPrimitives.wedgeBrep,\n\n // 变换\n translate: transformOps.translate,\n rotate_euler: transformOps.rotate_euler,\n scale: transformOps.scale,\n scale3d: transformOps.scale3d,\n transformMatrix: transformOps.transformMatrix,\n\n // 布尔\n union: booleanOps.union,\n subtract: booleanOps.subtract,\n intersect: booleanOps.intersect,\n\n // 分割\n // `fai_*` 键(编辑器消费面)已随扩展库迁出:@faicad/faijs-extra 的 mesh 面\n // 经 `mesh/fai_split.ts` / `mesh/fai_drill.ts` / `mesh/fai_extrude.ts` 提供。\n\n // 雕刻\n engrave: engraveOps.engrave,\n knurl: engraveOps.knurl,\n\n // 查询\n boundingBox: queryOps.boundingBox,\n bboxCenter: queryOps.bboxCenter,\n volume: queryOps.volume,\n faceAt: queryOps.faceAt,\n\n // IO\n load: ioOps.importFile,\n\n // BREP 特征操作(Phase 2 — OCCT 精确实体运算)\n translateBrep: brepOps.translateBrep,\n rotateBrep: brepOps.rotateBrep,\n scaleBrep: brepOps.scaleBrep,\n fuseBrep: brepOps.fuseBrep,\n cutBrep: brepOps.cutBrep,\n commonBrep: brepOps.commonBrep,\n drillBrep: brepOps.drillBrep,\n splitBrep: brepOps.splitBrep,\n extrudeBrep: brepOps.extrudeBrep,\n loadBrep: brepOps.loadBrep,\n solidToShape: brepOps.solidToShape,\n}\n\n// ── 类型导出 ──\n\nexport type { Shape, Vec3, BoundingBox, FaceDescriptor } from './types'\nexport { guessStlUnit } from './stl-unit'\nexport type {\n BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams,\n TextParams, SvgExtrudeParams, SdfParams,\n DrillParams, ExtrudeParams, EngraveParams, KnurlParams,\n SplitPlane, SplitResult, DovetailSplitParams, DowelSplitParams, TenonSplitParams,\n} from './types'\n\n// BREP ops 类型导出\nexport type {\n BrepChainState, DrillBrepParams, SplitBrepParams, SplitBrepResult,\n ExtrudeBrepParams,\n} from '../brep'\nexport {\n createBrepChainState, initBrepChainState, releaseBrepChainState,\n solidToShape,\n isCadFormat,\n} from '../brep'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAazC,OAAO,EACL,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAC/D,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA","sourcesContent":["/**\n * mesh — 纯数据几何内核(按模块组织的实现层)\n *\n * See docs/api-contract.md §1 (architecture layers) and §10 (api function catalog).\n *\n * 原则(§5.1):\n * 1. 全部纯数据:输入输出是 Shape (ManifoldMeshData),不碰 THREE 场景、不读 store\n * 2. 不可变:每个 API 返回新几何,不修改输入\n * 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理\n * 4. 坐标系:右手系 +Z 向上、毫米、角度用度\n *\n * ⚠️ B3 补正(2026-10-06,用户决定):本文件**不再导出任何聚合对象**。\n *\n * 此前这里有一个把 primitives / brep / transform / boolean / engrave / query / io\n * 全量聚合进来的对象(曾名 `cad`,B3 一度改名 `meshCad`)。它把内核实现包装成一个\n * 「形似平台 API」的门面,使下游(含本仓测试)能 `import { cad } from '../mesh'`\n * 把内核当成 faijs 的公开 API——这正是要根除的混淆。改名只是换了张皮,因此聚合\n * 对象已整体删除,不再以任何名字存在。\n *\n * 要哪一层的实现,就从对应模块具名导入:\n * - `mesh/primitives` box / sphere / cylinder / cone / wedge / screw / sdf\n * - `mesh/transform` translate / rotate_euler / scale / scale3d / transformMatrix\n * - `mesh/boolean` union / subtract / intersect\n * - `mesh/engrave` engrave / knurl\n * - `mesh/query` boundingBox / bboxCenter / volume / faceAt\n * - `mesh/io` importFile / detectStepUnit\n * - `brep`、`brep/primitives-brep` BREP(OCCT)路径\n *\n * 注意:脚本面的 `cad`(宿主经 `registerLib('cad', …)` 注入的 op 命名空间)与这一层\n * 是两回事——它不在这里,也不该被这里 import。见 AGENTS.md「库开发者 vs 脚本开发者」。\n */\n\n// ── 类型导出 ──\n\nexport type { Shape, Vec3, BoundingBox, FaceDescriptor } from './types'\nexport { guessStlUnit } from './stl-unit'\nexport type {\n BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams,\n TextParams, SvgExtrudeParams, SdfParams,\n DrillParams, ExtrudeParams, EngraveParams, KnurlParams,\n SplitPlane, SplitResult, DovetailSplitParams, DowelSplitParams, TenonSplitParams,\n} from './types'\n\n// BREP ops 类型导出\nexport type {\n BrepChainState, DrillBrepParams, SplitBrepParams, SplitBrepResult,\n ExtrudeBrepParams,\n} from '../brep'\nexport {\n createBrepChainState, initBrepChainState, releaseBrepChainState,\n solidToShape,\n isCadFormat,\n} from '../brep'\n"]}
package/dist/mesh/io.d.ts CHANGED
@@ -6,31 +6,42 @@
6
6
  * 坐标永远以 faijs 基准长度单位(mm)存储 — Shape 不贴 unit 标签(D3)。
7
7
  *
8
8
  * 单位换算边界(unit-system §5.2):
9
- * - STL 无单位元数据 → 由 `opts.unit` 显式声明,缺省 mm,不做启发式猜测。
9
+ * - STL 无单位元数据 → 由 `opts.unit` 显式声明优先;未声明时 faijs 按历史
10
+ * host 行为做启发式猜测(`guessStlUnit`,unified 方案 §6.1/§8 —— 3d_editor
11
+ * 迁移回归的单位断言依赖此行为)。猜测收敛在 faijs 内(红线 R0:宿主不
12
+ * 自实现单位换算),G0 = 折算后坐标,渲染 = 拓扑 = G0。
10
13
  * - 3MF `<model unit>` 由解析器读取并换算(micron/mm/cm/inch/foot/meter)。
11
14
  *
12
15
  * 返回契约(unit-system §10.6):`importFile` 返回 `{ shape, unit }` — `unit`
13
- * 是文件**自己声明的单位**(3MF `<model unit>`、STEP 单位实体),无声明格式
14
- * (STL)为 null(此时 `opts.unit` 决定刻度)。坐标恒为基准值 — `unit` 只作
15
- * 元数据(sourceUnit 记录、导出目标判定),绝不参与几何缩放(读入折算已由
16
- * 内核/解析器完成,二次缩放 = 双重换算)。
16
+ * 是文件源单位(必然有值;faijs 是单一真源):3MF/STEP 取文件声明(STEP 无声明
17
+ * → 'mm',与 OCCT 一致),STL 取 opts.unit 或 guessStlUnit 启发式猜测。坐标恒
18
+ * 为基准值 — `unit` 只作元数据(sourceUnit 记录、导出目标判定),绝不参与几何
19
+ * 缩放(读入折算已由内核/解析器完成,二次缩放 = 双重换算)。
17
20
  */
18
- import { type UnitName, type ValueWithUnits } from '../units.js';
21
+ import { type UnitName } from '../units.js';
19
22
  import type { Shape } from './types.js';
20
23
  import type { FileMeta } from '../api/meta.js';
24
+ import type { ImportModel } from './import-model.js';
21
25
  /** Result of a unit-aware file import. */
22
26
  export interface ImportFileResult {
23
27
  shape: Shape;
24
28
  /**
25
- * The unit the file itself declares (3MF `<model unit>`, STEP unit entities).
26
- * null for declaration-less formats (STL) — the caller's opts.unit decided.
29
+ * All parts the file declared, in declaration order (3MF `<build><item>` 序 /
30
+ * STL 单零件)。`shape` is `parts[0]`(单零件兼容,过渡期)。
31
+ * P0(2026-10-06-step-3mf-multipart-import-plan.md §5.4):多对象 3MF 不再折叠。
27
32
  */
28
- unit: UnitName | null;
33
+ parts: Shape[];
34
+ /**
35
+ * The file's source unit (always present; faijs is the single source of truth).
36
+ * 3MF/STEP: the file's declared unit (STEP 无声明 → 'mm', 与 OCCT 一致).
37
+ * STL: opts.unit if declared, else the guessStlUnit heuristic result.
38
+ * Metadata only — coordinates are already in the faijs base unit (mm).
39
+ */
40
+ unit: UnitName;
29
41
  /**
30
42
  * Total parts the single file declared (e.g. 3MF `<build>` object count),
31
43
  * present only when > 1. Single-part mesh (STL, single-object 3MF) omits it.
32
- * When set, `shape` is only the FIRST part's geometry (feijs `load` op is
33
- * single-part; the file was downgraded to its first part — §5.4).
44
+ * 保留为 `parts.length`(>1 时);多零件不再折叠后该字段仅供旧宿主判断。
34
45
  */
35
46
  multiPartCount?: number;
36
47
  /**
@@ -38,6 +49,11 @@ export interface ImportFileResult {
38
49
  * 是否解析;无声明则省略。仅随导入结果上抛,不挂 Shape。
39
50
  */
40
51
  fileMeta?: FileMeta;
52
+ /**
53
+ * 本次导入的结构数据(P0 §5.1):零件身份表 + Bambu 视图(3MF 分支填充)。
54
+ * 单/多零件均登记(单零件 parts 长度 1)。
55
+ */
56
+ importModel?: ImportModel;
41
57
  }
42
58
  /**
43
59
  * Bounded scan window for `detectStepUnit`. Unit entities sit at the front of
@@ -73,12 +89,13 @@ export declare function detectStepUnit(stepText: string): UnitName | null;
73
89
  * unzipping is the caller's job — faijs never unzips implicitly).
74
90
  * @param format - format identifier such as 'stl', '3mf'/'threemf' or 'step'
75
91
  * (defaults to 'stl').
76
- * @param opts - optional settings; `unit` declares the source unit for
77
- * formats without unit metadata (e.g. STL). Defaults to mm.
78
- * @returns the shape with base-unit coordinates plus the file's own declared
79
- * unit (`unit`, metadata only; null when the format has no declaration).
92
+ * @param opts - optional settings; `unit` (a UnitName string) declares the
93
+ * source unit for formats without unit metadata (e.g. STL). Defaults to
94
+ * the guessStlUnit heuristic when omitted.
95
+ * @returns the shape with base-unit coordinates plus the file's source unit
96
+ * (`unit`, metadata only; always present — faijs is the single source of truth).
80
97
  */
81
98
  export declare function importFile(buffer: ArrayBuffer, format?: string, opts?: {
82
- unit?: ValueWithUnits;
99
+ unit?: UnitName;
83
100
  }): Promise<ImportFileResult>;
84
101
  //# sourceMappingURL=io.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/mesh/io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,EAAM,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAuBD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAqBhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,cAAc,CAAA;CAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CA2D3B"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/mesh/io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,KAAK,EAAE,KAAK,EAAE,CAAA;IACd;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAA;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAuBD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAqBhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA6F3B"}