@faicad/faijs 0.16.1 → 0.17.0

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 (490) hide show
  1. package/LICENSE +4 -5
  2. package/NOTICE +5 -6
  3. package/dist/api/api-namespace.d.ts.map +1 -1
  4. package/dist/api/api-namespace.js +19 -1
  5. package/dist/api/api-namespace.js.map +1 -1
  6. package/dist/api/assembly/entities.d.ts +1 -1
  7. package/dist/api/assembly/entities.d.ts.map +1 -1
  8. package/dist/api/assembly/entities.js.map +1 -1
  9. package/dist/api/assembly/joints.d.ts +2 -2
  10. package/dist/api/assembly/joints.d.ts.map +1 -1
  11. package/dist/api/assembly/joints.js +2 -2
  12. package/dist/api/assembly/joints.js.map +1 -1
  13. package/dist/api/assembly/lower.d.ts +1 -1
  14. package/dist/api/assembly/lower.d.ts.map +1 -1
  15. package/dist/api/assembly/lower.js.map +1 -1
  16. package/dist/api/assembly/pose.d.ts +3 -3
  17. package/dist/api/assembly/pose.d.ts.map +1 -1
  18. package/dist/api/assembly/pose.js +1 -1
  19. package/dist/api/assembly/pose.js.map +1 -1
  20. package/dist/api/assembly/preview.d.ts +1 -1
  21. package/dist/api/assembly/preview.d.ts.map +1 -1
  22. package/dist/api/assembly/preview.js +1 -1
  23. package/dist/api/assembly/preview.js.map +1 -1
  24. package/dist/api/assembly/solve.d.ts.map +1 -1
  25. package/dist/api/assembly/solve.js +3 -3
  26. package/dist/api/assembly/solve.js.map +1 -1
  27. package/dist/api/assembly/solvers/assembly-tree.d.ts +98 -0
  28. package/dist/api/assembly/solvers/assembly-tree.d.ts.map +1 -0
  29. package/dist/api/assembly/solvers/assembly-tree.js +130 -0
  30. package/dist/api/assembly/solvers/assembly-tree.js.map +1 -0
  31. package/dist/api/assembly/solvers/chain-solver.d.ts +27 -0
  32. package/dist/api/assembly/solvers/chain-solver.d.ts.map +1 -0
  33. package/dist/api/assembly/solvers/chain-solver.js +330 -0
  34. package/dist/api/assembly/solvers/chain-solver.js.map +1 -0
  35. package/dist/api/assembly/solvers/global-solver.js +2 -2
  36. package/dist/api/assembly/solvers/global-solver.js.map +1 -1
  37. package/dist/api/assembly/solvers/joints-kinematics.d.ts +308 -0
  38. package/dist/api/assembly/solvers/joints-kinematics.d.ts.map +1 -0
  39. package/dist/api/assembly/solvers/joints-kinematics.js +643 -0
  40. package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -0
  41. package/dist/api/assembly/solvers/quat.d.ts +35 -0
  42. package/dist/api/assembly/solvers/quat.d.ts.map +1 -0
  43. package/dist/api/assembly/solvers/quat.js +84 -0
  44. package/dist/api/assembly/solvers/quat.js.map +1 -0
  45. package/dist/api/assembly/solvers/types.d.ts +33 -0
  46. package/dist/api/assembly/solvers/types.d.ts.map +1 -1
  47. package/dist/api/assembly/solvers/types.js.map +1 -1
  48. package/dist/api/boolean.d.ts.map +1 -1
  49. package/dist/api/boolean.js +3 -4
  50. package/dist/api/boolean.js.map +1 -1
  51. package/dist/api/brep-mirror/booleanFns.d.ts +40 -0
  52. package/dist/api/brep-mirror/booleanFns.d.ts.map +1 -0
  53. package/dist/api/brep-mirror/booleanFns.js +99 -0
  54. package/dist/api/brep-mirror/booleanFns.js.map +1 -0
  55. package/dist/api/brep-mirror/brepHelpers.d.ts +55 -0
  56. package/dist/api/brep-mirror/brepHelpers.d.ts.map +1 -0
  57. package/dist/api/brep-mirror/brepHelpers.js +131 -0
  58. package/dist/api/brep-mirror/brepHelpers.js.map +1 -0
  59. package/dist/api/brep-mirror/compoundFns.d.ts +47 -0
  60. package/dist/api/brep-mirror/compoundFns.d.ts.map +1 -0
  61. package/dist/api/brep-mirror/compoundFns.js +300 -0
  62. package/dist/api/brep-mirror/compoundFns.js.map +1 -0
  63. package/dist/api/brep-mirror/healingFns.d.ts +78 -0
  64. package/dist/api/brep-mirror/healingFns.d.ts.map +1 -0
  65. package/dist/api/brep-mirror/healingFns.js +294 -0
  66. package/dist/api/brep-mirror/healingFns.js.map +1 -0
  67. package/dist/api/brep-mirror/hullFns.d.ts +20 -0
  68. package/dist/api/brep-mirror/hullFns.d.ts.map +1 -0
  69. package/dist/api/brep-mirror/hullFns.js +46 -0
  70. package/dist/api/brep-mirror/hullFns.js.map +1 -0
  71. package/dist/api/brep-mirror/patternFns.d.ts +43 -0
  72. package/dist/api/brep-mirror/patternFns.d.ts.map +1 -0
  73. package/dist/api/brep-mirror/patternFns.js +178 -0
  74. package/dist/api/brep-mirror/patternFns.js.map +1 -0
  75. package/dist/api/brep-mirror/primitiveFns.d.ts +42 -0
  76. package/dist/api/brep-mirror/primitiveFns.d.ts.map +1 -0
  77. package/dist/api/brep-mirror/primitiveFns.js +104 -0
  78. package/dist/api/brep-mirror/primitiveFns.js.map +1 -0
  79. package/dist/api/brep-mirror/roofFns.d.ts +24 -0
  80. package/dist/api/brep-mirror/roofFns.d.ts.map +1 -0
  81. package/dist/api/brep-mirror/roofFns.js +229 -0
  82. package/dist/api/brep-mirror/roofFns.js.map +1 -0
  83. package/dist/api/brep-mirror/straightSkeleton.d.ts +36 -0
  84. package/dist/api/brep-mirror/straightSkeleton.d.ts.map +1 -0
  85. package/dist/api/brep-mirror/straightSkeleton.js +443 -0
  86. package/dist/api/brep-mirror/straightSkeleton.js.map +1 -0
  87. package/dist/api/brep-mirror/sweepFns.d.ts +55 -0
  88. package/dist/api/brep-mirror/sweepFns.d.ts.map +1 -0
  89. package/dist/api/brep-mirror/sweepFns.js +200 -0
  90. package/dist/api/brep-mirror/sweepFns.js.map +1 -0
  91. package/dist/api/brep-mirror/threadFns.d.ts +15 -0
  92. package/dist/api/brep-mirror/threadFns.d.ts.map +1 -1
  93. package/dist/api/brep-mirror/threadFns.js +37 -2
  94. package/dist/api/brep-mirror/threadFns.js.map +1 -1
  95. package/dist/api/brep-mirror/topologyFns.d.ts +74 -0
  96. package/dist/api/brep-mirror/topologyFns.d.ts.map +1 -0
  97. package/dist/api/brep-mirror/topologyFns.js +273 -0
  98. package/dist/api/brep-mirror/topologyFns.js.map +1 -0
  99. package/dist/api/brep-topology.d.ts +190 -0
  100. package/dist/api/brep-topology.d.ts.map +1 -0
  101. package/dist/api/brep-topology.js +337 -0
  102. package/dist/api/brep-topology.js.map +1 -0
  103. package/dist/api/brepjs-compat/constants.d.ts +11 -0
  104. package/dist/api/brepjs-compat/constants.d.ts.map +1 -0
  105. package/dist/api/brepjs-compat/constants.js +11 -0
  106. package/dist/api/brepjs-compat/constants.js.map +1 -0
  107. package/dist/api/brepjs-compat/index.d.ts +19 -232
  108. package/dist/api/brepjs-compat/index.d.ts.map +1 -1
  109. package/dist/api/brepjs-compat/index.js +19 -286
  110. package/dist/api/brepjs-compat/index.js.map +1 -1
  111. package/dist/api/brepjs-compat/planeOps.d.ts +98 -0
  112. package/dist/api/brepjs-compat/planeOps.d.ts.map +1 -0
  113. package/dist/api/brepjs-compat/planeOps.js +170 -0
  114. package/dist/api/brepjs-compat/planeOps.js.map +1 -0
  115. package/dist/api/brepjs-compat/planeTypes.d.ts +24 -0
  116. package/dist/api/brepjs-compat/planeTypes.d.ts.map +1 -0
  117. package/dist/api/brepjs-compat/planeTypes.js +8 -0
  118. package/dist/api/brepjs-compat/planeTypes.js.map +1 -0
  119. package/dist/api/brepjs-compat/types.d.ts +64 -0
  120. package/dist/api/brepjs-compat/types.d.ts.map +1 -0
  121. package/dist/api/brepjs-compat/types.js +48 -0
  122. package/dist/api/brepjs-compat/types.js.map +1 -0
  123. package/dist/api/brepjs-compat/vecOps.d.ts +124 -0
  124. package/dist/api/brepjs-compat/vecOps.d.ts.map +1 -0
  125. package/dist/api/brepjs-compat/vecOps.js +202 -0
  126. package/dist/api/brepjs-compat/vecOps.js.map +1 -0
  127. package/dist/api/chamfer.d.ts +5 -0
  128. package/dist/api/chamfer.d.ts.map +1 -1
  129. package/dist/api/chamfer.js +13 -8
  130. package/dist/api/chamfer.js.map +1 -1
  131. package/dist/api/compound-geom.d.ts.map +1 -1
  132. package/dist/api/compound-geom.js +8 -2
  133. package/dist/api/compound-geom.js.map +1 -1
  134. package/dist/api/draft.d.ts +69 -0
  135. package/dist/api/draft.d.ts.map +1 -0
  136. package/dist/api/draft.js +109 -0
  137. package/dist/api/draft.js.map +1 -0
  138. package/dist/api/edge-ref.d.ts.map +1 -1
  139. package/dist/api/edge-ref.js +2 -2
  140. package/dist/api/edge-ref.js.map +1 -1
  141. package/dist/api/engrave.d.ts.map +1 -1
  142. package/dist/api/engrave.js +2 -3
  143. package/dist/api/engrave.js.map +1 -1
  144. package/dist/api/extrude.d.ts.map +1 -1
  145. package/dist/api/extrude.js +28 -13
  146. package/dist/api/extrude.js.map +1 -1
  147. package/dist/api/face-ref.d.ts.map +1 -1
  148. package/dist/api/face-ref.js +2 -2
  149. package/dist/api/face-ref.js.map +1 -1
  150. package/dist/api/feature-repair.d.ts +137 -0
  151. package/dist/api/feature-repair.d.ts.map +1 -0
  152. package/dist/api/feature-repair.js +221 -0
  153. package/dist/api/feature-repair.js.map +1 -0
  154. package/dist/api/fillet-variable.d.ts +35 -0
  155. package/dist/api/fillet-variable.d.ts.map +1 -0
  156. package/dist/api/fillet-variable.js +71 -0
  157. package/dist/api/fillet-variable.js.map +1 -0
  158. package/dist/api/fillet.d.ts +3 -0
  159. package/dist/api/fillet.d.ts.map +1 -1
  160. package/dist/api/fillet.js +7 -4
  161. package/dist/api/fillet.js.map +1 -1
  162. package/dist/api/generated/2d.d.ts +1 -13
  163. package/dist/api/generated/2d.d.ts.map +1 -1
  164. package/dist/api/generated/2d.js +6 -1
  165. package/dist/api/generated/2d.js.map +1 -1
  166. package/dist/api/generated/brepjs/index.d.ts +298 -298
  167. package/dist/api/generated/brepjs/index.d.ts.map +1 -1
  168. package/dist/api/generated/brepjs/index.js +183 -183
  169. package/dist/api/generated/brepjs/index.js.map +1 -1
  170. package/dist/api/generated/core.d.ts +3 -123
  171. package/dist/api/generated/core.d.ts.map +1 -1
  172. package/dist/api/generated/core.js +2 -81
  173. package/dist/api/generated/core.js.map +1 -1
  174. package/dist/api/generated/gear.d.ts +1 -15
  175. package/dist/api/generated/gear.d.ts.map +1 -1
  176. package/dist/api/generated/gear.js +6 -3
  177. package/dist/api/generated/gear.js.map +1 -1
  178. package/dist/api/generated/io.d.ts +1 -13
  179. package/dist/api/generated/io.d.ts.map +1 -1
  180. package/dist/api/generated/io.js +6 -1
  181. package/dist/api/generated/io.js.map +1 -1
  182. package/dist/api/generated/kernel.d.ts +1 -39
  183. package/dist/api/generated/kernel.d.ts.map +1 -1
  184. package/dist/api/generated/kernel.js +6 -4
  185. package/dist/api/generated/kernel.js.map +1 -1
  186. package/dist/api/generated/measurement.d.ts +53 -97
  187. package/dist/api/generated/measurement.d.ts.map +1 -1
  188. package/dist/api/generated/measurement.js +48 -143
  189. package/dist/api/generated/measurement.js.map +1 -1
  190. package/dist/api/generated/ns.d.ts +1 -10
  191. package/dist/api/generated/ns.d.ts.map +1 -1
  192. package/dist/api/generated/ns.js +2 -10
  193. package/dist/api/generated/ns.js.map +1 -1
  194. package/dist/api/generated/operations.d.ts +65 -110
  195. package/dist/api/generated/operations.d.ts.map +1 -1
  196. package/dist/api/generated/operations.js +132 -80
  197. package/dist/api/generated/operations.js.map +1 -1
  198. package/dist/api/generated/projection.d.ts +1 -8
  199. package/dist/api/generated/projection.d.ts.map +1 -1
  200. package/dist/api/generated/projection.js +6 -4
  201. package/dist/api/generated/projection.js.map +1 -1
  202. package/dist/api/generated/query.d.ts +1 -9
  203. package/dist/api/generated/query.d.ts.map +1 -1
  204. package/dist/api/generated/query.js +6 -1
  205. package/dist/api/generated/query.js.map +1 -1
  206. package/dist/api/generated/script-face-manifest.d.ts +2 -0
  207. package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
  208. package/dist/api/generated/script-face-manifest.js +34 -22
  209. package/dist/api/generated/script-face-manifest.js.map +1 -1
  210. package/dist/api/generated/script-face.d.ts +52 -27
  211. package/dist/api/generated/script-face.d.ts.map +1 -1
  212. package/dist/api/generated/script-face.js +18 -4
  213. package/dist/api/generated/script-face.js.map +1 -1
  214. package/dist/api/generated/sketching.d.ts +4 -7
  215. package/dist/api/generated/sketching.d.ts.map +1 -1
  216. package/dist/api/generated/sketching.js +10 -8
  217. package/dist/api/generated/sketching.js.map +1 -1
  218. package/dist/api/generated/text.d.ts +1 -6
  219. package/dist/api/generated/text.d.ts.map +1 -1
  220. package/dist/api/generated/text.js +6 -3
  221. package/dist/api/generated/text.js.map +1 -1
  222. package/dist/api/generated/topology.d.ts +77 -175
  223. package/dist/api/generated/topology.d.ts.map +1 -1
  224. package/dist/api/generated/topology.js +172 -131
  225. package/dist/api/generated/topology.js.map +1 -1
  226. package/dist/api/geom.d.ts.map +1 -1
  227. package/dist/api/geom.js +2 -2
  228. package/dist/api/geom.js.map +1 -1
  229. package/dist/api/helix.d.ts +51 -0
  230. package/dist/api/helix.d.ts.map +1 -0
  231. package/dist/api/helix.js +63 -0
  232. package/dist/api/helix.js.map +1 -0
  233. package/dist/api/import-step.d.ts.map +1 -1
  234. package/dist/api/import-step.js +6 -2
  235. package/dist/api/import-step.js.map +1 -1
  236. package/dist/api/index.d.ts +18 -5
  237. package/dist/api/index.d.ts.map +1 -1
  238. package/dist/api/index.js +29 -12
  239. package/dist/api/index.js.map +1 -1
  240. package/dist/api/internal/compat-op.d.ts +10 -0
  241. package/dist/api/internal/compat-op.d.ts.map +1 -1
  242. package/dist/api/internal/compat-op.js +9 -3
  243. package/dist/api/internal/compat-op.js.map +1 -1
  244. package/dist/api/internal/compat-projection.d.ts +4 -4
  245. package/dist/api/internal/compat-projection.js +7 -7
  246. package/dist/api/internal/compat-projection.js.map +1 -1
  247. package/dist/api/internal/l3-bridge.d.ts +75 -42
  248. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  249. package/dist/api/internal/l3-bridge.js +105 -50
  250. package/dist/api/internal/l3-bridge.js.map +1 -1
  251. package/dist/api/internal/profile-wire.d.ts +31 -0
  252. package/dist/api/internal/profile-wire.d.ts.map +1 -0
  253. package/dist/api/internal/profile-wire.js +37 -0
  254. package/dist/api/internal/profile-wire.js.map +1 -0
  255. package/dist/api/internal/replica-role-table.js +2 -2
  256. package/dist/api/internal/replica-role-table.js.map +1 -1
  257. package/dist/api/loft.d.ts +66 -0
  258. package/dist/api/loft.d.ts.map +1 -0
  259. package/dist/api/loft.js +111 -0
  260. package/dist/api/loft.js.map +1 -0
  261. package/dist/api/measurement/index.d.ts +51 -0
  262. package/dist/api/measurement/index.d.ts.map +1 -0
  263. package/dist/api/measurement/index.js +71 -0
  264. package/dist/api/measurement/index.js.map +1 -0
  265. package/dist/api/occt-kernel-bridge.d.ts +5 -8
  266. package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
  267. package/dist/api/occt-kernel-bridge.js +18 -14
  268. package/dist/api/occt-kernel-bridge.js.map +1 -1
  269. package/dist/api/pattern.d.ts.map +1 -1
  270. package/dist/api/pattern.js +3 -4
  271. package/dist/api/pattern.js.map +1 -1
  272. package/dist/api/place.d.ts.map +1 -1
  273. package/dist/api/place.js +2 -4
  274. package/dist/api/place.js.map +1 -1
  275. package/dist/api/primitives.d.ts.map +1 -1
  276. package/dist/api/primitives.js +3 -4
  277. package/dist/api/primitives.js.map +1 -1
  278. package/dist/api/replicate.d.ts +28 -1
  279. package/dist/api/replicate.d.ts.map +1 -1
  280. package/dist/api/replicate.js +29 -19
  281. package/dist/api/replicate.js.map +1 -1
  282. package/dist/api/result.d.ts +6 -11
  283. package/dist/api/result.d.ts.map +1 -1
  284. package/dist/api/result.js +6 -11
  285. package/dist/api/result.js.map +1 -1
  286. package/dist/api/revolve.d.ts.map +1 -1
  287. package/dist/api/revolve.js +15 -14
  288. package/dist/api/revolve.js.map +1 -1
  289. package/dist/api/screw.d.ts +3 -0
  290. package/dist/api/screw.d.ts.map +1 -1
  291. package/dist/api/screw.js +9 -4
  292. package/dist/api/screw.js.map +1 -1
  293. package/dist/api/sdf.d.ts +1 -1
  294. package/dist/api/section-by-plane.d.ts +42 -0
  295. package/dist/api/section-by-plane.d.ts.map +1 -0
  296. package/dist/api/section-by-plane.js +61 -0
  297. package/dist/api/section-by-plane.js.map +1 -0
  298. package/dist/api/shell.d.ts +45 -0
  299. package/dist/api/shell.d.ts.map +1 -0
  300. package/dist/api/shell.js +73 -0
  301. package/dist/api/shell.js.map +1 -0
  302. package/dist/api/sketch.d.ts +8 -1
  303. package/dist/api/sketch.d.ts.map +1 -1
  304. package/dist/api/sketch.js +12 -7
  305. package/dist/api/sketch.js.map +1 -1
  306. package/dist/api/split-by-plane.d.ts +41 -0
  307. package/dist/api/split-by-plane.d.ts.map +1 -0
  308. package/dist/api/split-by-plane.js +60 -0
  309. package/dist/api/split-by-plane.js.map +1 -0
  310. package/dist/api/split.d.ts +6 -1
  311. package/dist/api/split.d.ts.map +1 -1
  312. package/dist/api/split.js +23 -9
  313. package/dist/api/split.js.map +1 -1
  314. package/dist/api/surface/arg-spec.d.ts +22 -0
  315. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  316. package/dist/api/surface/arg-spec.js +723 -476
  317. package/dist/api/surface/arg-spec.js.map +1 -1
  318. package/dist/api/sweep.d.ts +55 -0
  319. package/dist/api/sweep.d.ts.map +1 -0
  320. package/dist/api/sweep.js +86 -0
  321. package/dist/api/sweep.js.map +1 -0
  322. package/dist/api/thicken.d.ts +36 -0
  323. package/dist/api/thicken.d.ts.map +1 -0
  324. package/dist/api/thicken.js +55 -0
  325. package/dist/api/thicken.js.map +1 -0
  326. package/dist/api/transform.d.ts +8 -0
  327. package/dist/api/transform.d.ts.map +1 -1
  328. package/dist/api/transform.js +15 -4
  329. package/dist/api/transform.js.map +1 -1
  330. package/dist/api/view/cameraFns.d.ts +48 -0
  331. package/dist/api/view/cameraFns.d.ts.map +1 -0
  332. package/dist/api/view/cameraFns.js +75 -0
  333. package/dist/api/view/cameraFns.js.map +1 -0
  334. package/dist/api/view/projectionPlanes.d.ts +25 -0
  335. package/dist/api/view/projectionPlanes.d.ts.map +1 -0
  336. package/dist/api/view/projectionPlanes.js +30 -0
  337. package/dist/api/view/projectionPlanes.js.map +1 -0
  338. package/dist/api/view/view-camera.d.ts +2 -2
  339. package/dist/api/view/view-camera.d.ts.map +1 -1
  340. package/dist/api/view/view-camera.js +3 -3
  341. package/dist/api/view/view-camera.js.map +1 -1
  342. package/dist/api/view/view-projection.d.ts +9 -6
  343. package/dist/api/view/view-projection.d.ts.map +1 -1
  344. package/dist/api/view/view-projection.js +132 -65
  345. package/dist/api/view/view-projection.js.map +1 -1
  346. package/dist/api/wire.d.ts +45 -0
  347. package/dist/api/wire.d.ts.map +1 -0
  348. package/dist/api/wire.js +96 -0
  349. package/dist/api/wire.js.map +1 -0
  350. package/dist/boolean/creased-normals.d.ts +50 -0
  351. package/dist/boolean/creased-normals.d.ts.map +1 -0
  352. package/dist/boolean/creased-normals.js +114 -0
  353. package/dist/boolean/creased-normals.js.map +1 -0
  354. package/dist/boolean/deriveNormals.d.ts +4 -1
  355. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  356. package/dist/boolean/deriveNormals.js +5 -2
  357. package/dist/boolean/deriveNormals.js.map +1 -1
  358. package/dist/brep/brep-ops.d.ts +6 -0
  359. package/dist/brep/brep-ops.d.ts.map +1 -1
  360. package/dist/brep/brep-ops.js +11 -2
  361. package/dist/brep/brep-ops.js.map +1 -1
  362. package/dist/brep/brep-topology.d.ts +4 -0
  363. package/dist/brep/brep-topology.d.ts.map +1 -1
  364. package/dist/brep/brep-topology.js +4 -0
  365. package/dist/brep/brep-topology.js.map +1 -1
  366. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  367. package/dist/brep/engine/adapters/brep-mock.js +79 -59
  368. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  369. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  370. package/dist/brep/engine/adapters/brepkit.js +7 -1
  371. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  372. package/dist/brep/engine/adapters/occt.d.ts +15 -7
  373. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  374. package/dist/brep/engine/adapters/occt.js +52 -167
  375. package/dist/brep/engine/adapters/occt.js.map +1 -1
  376. package/dist/brep/engine/primitives.d.ts +93 -130
  377. package/dist/brep/engine/primitives.d.ts.map +1 -1
  378. package/dist/brep/engine/primitives.js +9 -7
  379. package/dist/brep/engine/primitives.js.map +1 -1
  380. package/dist/brep/engine/types.d.ts +14 -1
  381. package/dist/brep/engine/types.d.ts.map +1 -1
  382. package/dist/brep/engine/types.js +11 -1
  383. package/dist/brep/engine/types.js.map +1 -1
  384. package/dist/brep/export/step.d.ts +3 -0
  385. package/dist/brep/export/step.d.ts.map +1 -1
  386. package/dist/brep/export/step.js +7 -1
  387. package/dist/brep/export/step.js.map +1 -1
  388. package/dist/brep/face-evolution.d.ts +8 -0
  389. package/dist/brep/face-evolution.d.ts.map +1 -1
  390. package/dist/brep/face-evolution.js +15 -3
  391. package/dist/brep/face-evolution.js.map +1 -1
  392. package/dist/brep/handle-bridge.d.ts +20 -2
  393. package/dist/brep/handle-bridge.d.ts.map +1 -1
  394. package/dist/brep/handle-bridge.js +25 -2
  395. package/dist/brep/handle-bridge.js.map +1 -1
  396. package/dist/brepkit-kernel/brepkitKernel.d.ts +25 -5
  397. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  398. package/dist/brepkit-kernel/brepkitKernel.js +336 -144
  399. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  400. package/dist/cad-runtime/admit-compat-lib.d.ts +6 -1
  401. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  402. package/dist/cad-runtime/admit-compat-lib.js +5 -1
  403. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  404. package/dist/cad-runtime/backend-dispatch.d.ts +9 -3
  405. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  406. package/dist/cad-runtime/backend-dispatch.js +32 -2
  407. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  408. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  409. package/dist/cad-runtime/direct-executor.js +8 -2
  410. package/dist/cad-runtime/direct-executor.js.map +1 -1
  411. package/dist/cad-runtime/runtime.d.ts +3 -0
  412. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  413. package/dist/cad-runtime/runtime.js +3 -1
  414. package/dist/cad-runtime/runtime.js.map +1 -1
  415. package/dist/define-op.d.ts +18 -2
  416. package/dist/define-op.d.ts.map +1 -1
  417. package/dist/define-op.js +29 -1
  418. package/dist/define-op.js.map +1 -1
  419. package/dist/env-agnostic.d.ts +3 -0
  420. package/dist/env-agnostic.d.ts.map +1 -1
  421. package/dist/env-agnostic.js +7 -0
  422. package/dist/env-agnostic.js.map +1 -1
  423. package/dist/index.d.ts.map +1 -1
  424. package/dist/index.js +3 -4
  425. package/dist/index.js.map +1 -1
  426. package/dist/lang/symbol-table.generated.d.ts +28 -0
  427. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  428. package/dist/lang/symbol-table.generated.js +29 -1
  429. package/dist/lang/symbol-table.generated.js.map +1 -1
  430. package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
  431. package/dist/occt-kernel/highLevelApi.js +6 -3
  432. package/dist/occt-kernel/highLevelApi.js.map +1 -1
  433. package/dist/occt-kernel/hullGeometry.d.ts +31 -0
  434. package/dist/occt-kernel/hullGeometry.d.ts.map +1 -0
  435. package/dist/occt-kernel/hullGeometry.js +319 -0
  436. package/dist/occt-kernel/hullGeometry.js.map +1 -0
  437. package/dist/occt-kernel/hullOps.d.ts +24 -0
  438. package/dist/occt-kernel/hullOps.d.ts.map +1 -0
  439. package/dist/occt-kernel/hullOps.js +52 -0
  440. package/dist/occt-kernel/hullOps.js.map +1 -0
  441. package/dist/occt-kernel/occt-primitives.d.ts +14 -0
  442. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -0
  443. package/dist/occt-kernel/occt-primitives.js +351 -0
  444. package/dist/occt-kernel/occt-primitives.js.map +1 -0
  445. package/dist/occt-kernel/occtKernel.d.ts +14 -6
  446. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  447. package/dist/occt-kernel/occtKernel.js +11 -3
  448. package/dist/occt-kernel/occtKernel.js.map +1 -1
  449. package/dist/occt-kernel/topologyExt.js +2 -2
  450. package/dist/occt-kernel/topologyExt.js.map +1 -1
  451. package/dist/primitives/brep-primitives.d.ts +4 -0
  452. package/dist/primitives/brep-primitives.d.ts.map +1 -1
  453. package/dist/primitives/brep-primitives.js +4 -0
  454. package/dist/primitives/brep-primitives.js.map +1 -1
  455. package/dist/result/bug.d.ts +22 -0
  456. package/dist/result/bug.d.ts.map +1 -0
  457. package/dist/result/bug.js +28 -0
  458. package/dist/result/bug.js.map +1 -0
  459. package/dist/result/errors.d.ts +270 -0
  460. package/dist/result/errors.d.ts.map +1 -0
  461. package/dist/result/errors.js +317 -0
  462. package/dist/result/errors.js.map +1 -0
  463. package/dist/result/kernelErrorTranslation.d.ts +21 -0
  464. package/dist/result/kernelErrorTranslation.d.ts.map +1 -0
  465. package/dist/result/kernelErrorTranslation.js +102 -0
  466. package/dist/result/kernelErrorTranslation.js.map +1 -0
  467. package/dist/result/result.d.ts +213 -0
  468. package/dist/result/result.d.ts.map +1 -0
  469. package/dist/result/result.js +336 -0
  470. package/dist/result/result.js.map +1 -0
  471. package/dist/result/vec3.d.ts +12 -0
  472. package/dist/result/vec3.d.ts.map +1 -0
  473. package/dist/result/vec3.js +14 -0
  474. package/dist/result/vec3.js.map +1 -0
  475. package/dist/runtime-state.d.ts +9 -0
  476. package/dist/runtime-state.d.ts.map +1 -1
  477. package/dist/runtime-state.js.map +1 -1
  478. package/dist/sdk.d.ts +3 -1
  479. package/dist/sdk.d.ts.map +1 -1
  480. package/dist/sdk.js +2 -1
  481. package/dist/sdk.js.map +1 -1
  482. package/dist/shape.d.ts +43 -1
  483. package/dist/shape.d.ts.map +1 -1
  484. package/dist/shape.js +57 -1
  485. package/dist/shape.js.map +1 -1
  486. package/dist/topology/naming/geom-hint.js +1 -1
  487. package/dist/topology/naming/geom-hint.js.map +1 -1
  488. package/dist/topology/naming/score.js +1 -1
  489. package/dist/topology/naming/score.js.map +1 -1
  490. package/package.json +6 -16
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/brepjs-compat/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * BREP-TS compatibility surface (P21).\n *\n * Projects the vendored BREP TS tree onto four stable groups so library authors\n * can write `import { box, fuse, Sketcher, ok } from this module` and call it\n * upstream-style:\n *\n * ① op — solid primitives + boolean / evolution operations\n * ② topology — sub-shape queries + measurements (plus the Bounds3D type)\n * ③ sketching — stateful Sketcher / FaceSketcher DSL + drawing factories\n * ④ combinators / types — result, vector, plane, errors, constants, types\n *\n * Every symbol is a projection (re-export or a thin dual-form wrapper) from the\n * ported tree: no reimplementation. The `.js` specifiers are the repo\n * convention (TypeScript maps `.js` → `.ts`).\n *\n * Semantic wraps (P23: both live in `api/internal/compat-projection.ts` so the\n * generated face and this hand-curated face share one mechanism):\n * - single-kernel assert: every modeling op asserts a bound BREP kernel first\n * (see `assertKernelBound`); `getBackends()` may throw before configuration,\n * so it is guarded and falls back to the occt-kernel binding flag.\n * - dual argument forms: object form normalizes to positional form via the\n * shared `resolveArgs` discriminant; object keys outside the declared\n * parameter table throw the shared `E_ARGS_FORM` token.\n * - `box` is the hand-written dual-form sample: positional\n * `box(width, depth, height)` and `box({ size })` / `box({ width, depth,\n * height })` both forward to the vendored primitive in its native dimension\n * order (width = X, depth = Y, height = Z — confirm against\n * `primitiveFns#box`), so every accepted form yields identical geometry.\n */\n\nimport { assertKernelBound, projectBrepOp } from '../internal/compat-projection'\nimport { isObjectForm } from '../internal/dual-form-args'\n\nimport type { ValidSolid } from '../../vendored/brepjs/core/shapeTypes.js'\n\n/** Signature of a compat op projection (inputs normalized before the call). */\ntype CompatOp = (...args: unknown[]) => unknown\n\n/**\n * Dual-form op wrapper (A-class): asserts the kernel, normalizes object form to\n * positional form via `resolveArgs`, then delegates to the vendored\n * implementation.\n *\n * P23: delegates to the shared {@link projectBrepOp} so the hand-curated face\n * and the generated face share one projection mechanism (§4.3.2).\n */\nfunction wrapDual<R>(\n name: string,\n params: string[],\n impl: (...args: unknown[]) => R\n): CompatOp {\n return projectBrepOp(name, params, 'A', impl as (...args: never[]) => unknown)\n}\n\n/**\n * Guard-only wrapper: forwards the arguments unchanged after the kernel assert.\n * Used for positional-first ops (booleans, evolutions) whose first argument is\n * a shape, so the object-form discriminant never applies. The exact function\n * type `F` (including its parameter and Result types) is preserved.\n */\nfunction wrapGuarded<F>(name: string, impl: F): F {\n const fn: (...args: unknown[]) => unknown = (...args: unknown[]) => {\n assertKernelBound(name)\n return (impl as (...args: unknown[]) => unknown)(...args)\n }\n return fn as unknown as F\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ① primitives + booleans + evolutions\n// ─────────────────────────────────────────────────────────────────────────────\n\nimport {\n box as primitiveBox,\n sphere as primitiveSphere,\n cylinder as primitiveCylinder,\n cone as primitiveCone,\n torus as primitiveTorus,\n ellipsoid as primitiveEllipsoid,\n} from '../../vendored/brepjs/topology/primitiveFns.js'\n\n/**\n * Create a solid box.\n *\n * Positional form `box(width, depth, height)` uses the vendor's native\n * dimension order — X = width, Y = depth,\n * Z = height (the vendored `primitiveFns#box` dimension order; width/height are\n * NOT swapped). See the overload below for the object form.\n *\n * @param width - side length along X.\n * @param depth - side length along Y.\n * @param height - side length along Z.\n * @returns a new valid solid box.\n */\nexport function box(width: number, depth: number, height: number): ValidSolid\n/**\n * Create a solid box from an object form.\n *\n * Accepts `box({ size })` where `size` is a number (cube) or a\n * `[width, depth, height]` triple, or `box({ width, depth, height })`. Every\n * accepted form forwards to `primitiveBox(width, depth, height)`, so equal\n * dimension values always produce identical geometry.\n *\n * @param options - the dimension set: `size` (a cube edge or a triple) or\n * `width`/`depth`/`height` sides.\n * @returns a new valid solid box.\n * @throws An `Error` whose message contains the shared `E_ARGS_FORM` token when\n * no form matches (e.g. `box('x')`, `box()`, or unknown object keys).\n */\nexport function box(options: BoxDimensions): ValidSolid\nexport function box(...args: unknown[]): ValidSolid {\n assertKernelBound('box')\n if (isObjectForm(args)) {\n const obj = args[0] as Record<string, unknown>\n const keys = Object.keys(obj)\n const unknownKeys = keys.filter((k) => !['size', 'width', 'depth', 'height'].includes(k))\n if (unknownKeys.length > 0) throw boxArgError(args)\n const size = obj.size\n if (size !== undefined) {\n if (typeof size === 'number') return primitiveBox(size, size, size)\n if (Array.isArray(size) && size.length === 3) {\n const [w, d, h] = size as [number, number, number]\n return primitiveBox(w, d, h)\n }\n throw boxArgError(args)\n }\n const width = obj.width\n const depth = obj.depth\n const height = obj.height\n if (typeof width === 'number' && typeof depth === 'number' && typeof height === 'number') {\n return primitiveBox(width, depth, height)\n }\n throw boxArgError(args)\n }\n if (args.length === 3 && args.every((a) => typeof a === 'number')) {\n const [w, d, h] = args as [number, number, number]\n return primitiveBox(w, d, h)\n }\n throw boxArgError(args)\n}\n\n/** Object-form input accepted by {@link box}. */\nexport interface BoxDimensions {\n /** All three sides as one number (cube) or a `[width, depth, height]` triple. */\n size?: number | [number, number, number]\n /** Side length along X. */\n width?: number\n /** Side length along Y. */\n depth?: number\n /** Side length along Z. */\n height?: number\n}\n\n/** Shared E_ARGS_FORM error for {@link box} argument mismatches. */\nfunction boxArgError(args: unknown[]): Error {\n return new Error(\n '[compat:box] E_ARGS_FORM: expected box(width, depth, height), ' +\n \"box({ size: number | [w, d, h] }) or box({ width, depth, height }); got \" +\n args.map((a) => safeJson(a)).join(', ')\n )\n}\n\n/** JSON stringification that never throws on cyclic or exotic values. */\nfunction safeJson(v: unknown): string {\n try {\n return JSON.stringify(v) ?? String(v)\n } catch {\n return '[unserializable]'\n }\n}\n\n/**\n * Project the vendored `sphere(radius, options?)` verbatim (P25: the raw\n * morph form is what portable libraries call — upstream brepjs signatures,\n * no op projection).\n */\nexport { primitiveSphere as sphere }\n/** Project the vendored `cylinder(radius, height, options?)` verbatim. */\nexport { primitiveCylinder as cylinder }\n/** Project the vendored `cone(bottomRadius, topRadius, height, options?)`. */\nexport const cone = wrapDual(\n 'cone',\n ['bottomRadius', 'topRadius', 'height'],\n primitiveCone as CompatOp\n)\n/** Project the vendored `torus(majorRadius, minorRadius, options?)`. */\nexport const torus = wrapDual('torus', ['majorRadius', 'minorRadius'], primitiveTorus as CompatOp)\n/** Project the vendored `ellipsoid(rx, ry, rz, options?)`. */\nexport const ellipsoid = wrapDual('ellipsoid', ['rx', 'ry', 'rz'], primitiveEllipsoid as CompatOp)\n\nimport {\n fuse as vendoredFuse,\n cut as vendoredCut,\n intersect as vendoredIntersect,\n fillet as vendoredFillet,\n chamfer as vendoredChamfer,\n simplify as vendoredSimplify,\n} from '../../vendored/brepjs/topology/api.js'\nimport {\n makeCompound as vendoredMakeCompound,\n makeVertex as vendoredMakeVertex,\n} from '../../vendored/brepjs/topology/solidBuilders.js'\nimport { applyMatrix as vendoredApplyMatrix } from '../../vendored/brepjs/topology/transformFns.js'\nimport {\n makeCircle as vendoredMakeCircle,\n makeEllipse as vendoredMakeEllipse,\n makeLine as vendoredMakeLine,\n makeThreePointArc as vendoredMakeThreePointArc,\n makeTangentArc as vendoredMakeTangentArc,\n makeBSplineInterpolation as vendoredMakeBSplineInterpolation,\n assembleWire as vendoredAssembleWire,\n} from '../../vendored/brepjs/topology/curveBuilders.js'\nimport {\n curveTangentAt as vendoredCurveTangentAt,\n curvePointAt as vendoredCurvePointAt,\n} from '../../vendored/brepjs/topology/curveFns.js'\nimport {\n makeFace as vendoredMakeFace,\n addHolesInFace as vendoredAddHolesInFace,\n} from '../../vendored/brepjs/topology/surfaceBuilders.js'\nimport {\n extrude as vendoredExtrude,\n revolve as vendoredRevolve,\n loft as vendoredLoft,\n} from '../../vendored/brepjs/operations/api.js'\n\n/** Fuse two shapeables into one 3D result. */\nexport const fuse = wrapGuarded('fuse', vendoredFuse)\n/** Cut the second shapeable out of the first. */\nexport const cut = wrapGuarded('cut', vendoredCut)\n/** Extrude a planar profile along a height or direction vector. */\nexport const extrude = wrapGuarded('extrude', vendoredExtrude)\n/** Revolve a planar profile around an axis with optional angle. */\nexport const revolve = wrapGuarded('revolve', vendoredRevolve)\n/** Loft through a set of wire profiles. */\nexport const loft = wrapGuarded('loft', vendoredLoft)\n\n/** Intersect two shapeables (common 3D volume). */\nexport const intersect = wrapGuarded('intersect', vendoredIntersect)\n\n/**\n * Fillet all edges (2-arg form) or selected edges (3-arg form: edge array /\n * finder) of a valid solid. Selection form:\n * `fillet(shape, edgeHandles, radius)`.\n */\nexport const fillet = wrapGuarded('fillet', vendoredFillet)\n\n/**\n * Chamfer all edges (2-arg form) or selected edges (3-arg form) of a valid\n * solid. Selection form: `chamfer(shape, edgeHandles, distance)` where\n * distance is a symmetric length or an asymmetric `[d1, d2]` pair.\n */\nexport const chamfer = wrapGuarded('chamfer', vendoredChamfer)\n\n/**\n * Group shapes into a single Compound: `makeCompound(shapeArray)` (the\n * analogue of CadQuery's multi-solid compounds).\n */\nexport const makeCompound = wrapGuarded('makeCompound', vendoredMakeCompound)\n/** Single vertex at a point: `makeVertex([x, y, z])` (upstream `vertex(x, y, z)`). */\nexport const makeVertex = wrapGuarded('makeVertex', vendoredMakeVertex)\n\n/**\n * Apply a rigid affine transform to ANY shape — including compounds, which the\n * faijs `cad.translate` / `cad.rotate_euler` ops reject (\"input is not BREP\",\n * they require a solid). Needed by CadQuery's `Shape.moved(*locs)`, which can\n * move a multi-solid compound as a whole.\n *\n * Accepts the `{ linear, translation }` form of `MatrixInput`: `linear` is the\n * row-major 3x3 rotation, `translation` is applied after it (p -> R·p + t).\n */\nexport const applyMatrix = wrapGuarded('applyMatrix', vendoredApplyMatrix)\n\n/**\n * Merge same-domain faces/edges (unifySameDomain) — the analogue of\n * CadQuery's `clean=True` boolean post-processing.\n */\nexport const simplify = wrapGuarded('simplify', vendoredSimplify)\n\n// ── 2D profile construction (CadQuery pending-wire parity) ────────────────\n// Circles/lines → edges → wires → (holed) faces. These are the building blocks\n// CadQuery uses for its `pendingWires` stack: an outer wire plus zero or more\n// inner wires becomes ONE face with holes, which is then extruded. Without\n// `makeFace(wire, holes)` a nested `circle(4).circle(2)` would have to be\n// approximated by a boolean difference and would not match upstream topology.\n\n/** Circular edge: `makeCircle(radius, center?, normal?)` — closed, planar. */\nexport const makeCircle = wrapGuarded('makeCircle', vendoredMakeCircle)\n/** Elliptical edge: `makeEllipseEdge(majorRadius, minorRadius, center?, normal?, xDir?)`. Returns a `Result`. */\nexport const makeEllipseEdge = wrapGuarded('makeEllipseEdge', vendoredMakeEllipse)\n/** Straight edge from `v1` to `v2`. */\nexport const makeLine = wrapGuarded('makeLine', vendoredMakeLine)\n/** Assemble edges/wires into a single connected wire. Returns a `Result`. */\nexport const assembleWire = wrapGuarded('assembleWire', vendoredAssembleWire)\n/** Planar face from a closed wire, optionally with hole wires. Returns a `Result`. */\nexport const makeFace = wrapGuarded('makeFace', vendoredMakeFace)\n/** Punch hole wires into an existing face. */\nexport const addHolesInFace = wrapGuarded('addHolesInFace', vendoredAddHolesInFace)\n/** Circular arc edge through three points (start, mid, end). */\nexport const makeThreePointArc = wrapGuarded('makeThreePointArc', vendoredMakeThreePointArc)\n/** Circular arc edge from a start point + start tangent to an end point. */\nexport const makeTangentArc = wrapGuarded('makeTangentArc', vendoredMakeTangentArc)\n/** Interpolated cubic B-spline edge through every input point. Returns a `Result`. */\nexport const makeBSplineInterpolation = wrapGuarded('makeBSplineInterpolation', vendoredMakeBSplineInterpolation)\n/** Tangent vector of an edge/wire curve at a normalized position (1 = end). */\nexport const curveTangentAt = wrapGuarded('curveTangentAt', vendoredCurveTangentAt)\n/** Point on an edge/wire curve at a normalized position. */\nexport const curvePointAt = wrapGuarded('curvePointAt', vendoredCurvePointAt)\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ①b library-building factories (P24, §8.1): spur gears, planetary trains, threads.\n// Both morphs of these factories are brep-only builders gated by the single-kernel\n// assert (wrapGuarded); the kernel is bound at the host boundary (D10).\n// ─────────────────────────────────────────────────────────────────────────────\n\nimport {\n makeExternalGear as vendoredMakeExternalGear,\n makeInternalGear as vendoredMakeInternalGear,\n makePlanetaryGear as vendoredMakePlanetaryGear,\n} from '../../vendored/brepjs/gear/gearFns.js'\nimport { thread as vendoredThread } from '../../vendored/brepjs/operations/threadFns.js'\n\n/**\n * Build an external spur gear.\n * @param params - the external-gear parameters (`teeth`, `moduleSize`, `thickness`, …).\n * @returns `Ok` with the gear solid + geometry, or `Err` for invalid parameters.\n */\nexport const makeExternalGear = wrapGuarded('makeExternalGear', vendoredMakeExternalGear)\n/**\n * Build an internal (ring) spur gear.\n * @param params - the internal-gear parameters, including the optional ring wall thickness.\n * @returns `Ok` with the gear solid + geometry, or `Err` for invalid parameters.\n */\nexport const makeInternalGear = wrapGuarded('makeInternalGear', vendoredMakeInternalGear)\n/**\n * Build a planetary gear train (sun + planets + ring).\n * @param params - the planetary-gear parameters.\n * @returns `Ok` with the sun/planet/ring solids and mesh diagnostics, or `Err`.\n */\nexport const makePlanetaryGear = wrapGuarded('makePlanetaryGear', vendoredMakePlanetaryGear)\n/**\n * Build a helical screw-thread ridge.\n * @param options - the thread profile (`radius`, `pitch`, `height`, …).\n * @returns `Ok` with the thread-ridge solid, or `Err` for invalid parameters.\n */\nexport const thread = wrapGuarded('thread', vendoredThread)\n\nexport type {\n ExternalGearParams,\n InternalGearParams,\n PlanetaryGearParams,\n GearResult,\n PlanetaryGearAssembly,\n} from '../../vendored/brepjs/gear/gearFns.js'\nexport type { ThreadOptions } from '../../vendored/brepjs/operations/threadFns.js'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ② sub-shape queries + measurements\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport {\n getEdges,\n getFaces,\n getWires,\n getVertices,\n getShells,\n getSolids,\n getCompSolids,\n getBounds,\n vertexPosition,\n} from '../../vendored/brepjs/topology/topologyQueryFns.js'\n\nexport type { Bounds3D } from '../../vendored/brepjs/topology/topologyQueryFns.js'\n\nexport {\n measureVolume,\n measureArea,\n measureLength,\n} from '../../vendored/brepjs/measurement/measureFns.js'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ③ sketching DSL + drawing factories\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport { default as Sketcher } from '../../vendored/brepjs/sketching/sketcher.js'\nexport { default as FaceSketcher } from '../../vendored/brepjs/sketching/faceSketcher.js'\n\nexport {\n drawCircle,\n drawEllipse,\n drawRoundedRectangle,\n drawRectangle,\n drawSingleCircle,\n drawSingleEllipse,\n drawPolysides,\n drawText,\n} from '../../vendored/brepjs/sketching/drawingFactories.js'\n\nexport { draw } from '../../vendored/brepjs/sketching/drawingPen.js'\nexport { makeBaseBox } from '../../vendored/brepjs/sketching/shortcuts.js'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ④ combinators / pure helpers / types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport {\n ok,\n err,\n isOk,\n isErr,\n unwrap,\n unwrapOr,\n map,\n andThen,\n} from '../../vendored/brepjs/core/result.js'\nexport type { Result, Ok, Err } from '../../vendored/brepjs/core/result.js'\n\nexport {\n vecAdd,\n vecSub,\n vecScale,\n vecDot,\n vecCross,\n vecLength,\n vecNormalize,\n} from '../../vendored/brepjs/core/vecOps.js'\n\nexport {\n createPlane,\n createNamedPlane,\n resolvePlane,\n} from '../../vendored/brepjs/core/planeOps.js'\n\nexport { kernelError, validationError } from '../../vendored/brepjs/core/errors.js'\nexport type { BrepError } from '../../vendored/brepjs/core/errors.js'\n\nexport { DEG2RAD, RAD2DEG } from '../../vendored/brepjs/core/constants.js'\n\nexport type {\n Vertex,\n Edge,\n Wire,\n Face,\n Shell,\n Solid,\n CompSolid,\n Shape3D,\n ValidSolid,\n ClosedWire,\n AnyShape,\n} from '../../vendored/brepjs/core/shapeTypes.js'\n\nexport type { GearGeometry } from '../../vendored/brepjs/gear/gearMath.js'\n\nexport type { Plane, PlaneName, PlaneInput } from '../../vendored/brepjs/core/planeTypes.js'\n\nexport type { Vec3, PointInput } from '../../vendored/brepjs/core/types.js'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ⑤ raw 2D-morph + transform + face ports (P25: sheetmetal 单一说明符面)\n//\n// The sheetmetal authoring path consumes the vendored morph semantics exactly\n// (handles in, handles out, `Result` only where the vendored chain returns\n// one). These are projected verbatim from the ported tree — same names, same\n// signatures as upstream brepjs — so portable library sources only change the\n// import specifier line (§8.2).\n// ─────────────────────────────────────────────────────────────────────────────\n\nimport {\n line as rawLine,\n wire as rawWire,\n wireLoop as rawWireLoop,\n face as rawFace,\n polygon as rawPolygon,\n} from '../../vendored/brepjs/topology/primitiveFns.js'\nimport {\n outerWire as rawOuterWire,\n getSurfaceType as rawSurfaceType,\n pointOnSurface as rawPointOnSurface,\n normalAt as rawNormalAt,\n faceCenter as rawFaceCenter,\n} from '../../vendored/brepjs/topology/faceFns.js'\nimport { sharedEdges as rawSharedEdges } from '../../vendored/brepjs/topology/adjacencyFns.js'\nimport {\n curveStartPoint as rawCurveStartPoint,\n curveEndPoint as rawCurveEndPoint,\n} from '../../vendored/brepjs/topology/curveFns.js'\nimport { translate as rawTranslate } from '../../vendored/brepjs/topology/transformFns.js'\nimport { rotate as rawRotate } from '../../vendored/brepjs/topology/transformFns.js'\nimport { isSolid as rawIsSolid } from '../../vendored/brepjs/core/shapeTypes.js'\nimport { isPlanarWire as rawIsPlanarWire } from '../../vendored/brepjs/core/validityTypes.js'\nimport { isValid as rawIsValid } from '../../vendored/brepjs/topology/healingFns.js'\nimport type { AnyShape } from '../../vendored/brepjs/core/shapeTypes.js'\nimport type { Vec3 } from '../../vendored/brepjs/core/types.js'\n\nexport {\n rawLine as line,\n rawWire as wire,\n rawWireLoop as wireLoop,\n rawFace as face,\n rawPolygon as polygon,\n rawOuterWire as outerWire,\n rawSurfaceType as getSurfaceType,\n rawPointOnSurface as pointOnSurface,\n rawNormalAt as normalAt,\n rawFaceCenter as faceCenter,\n rawSharedEdges as sharedEdges,\n rawCurveStartPoint as curveStartPoint,\n rawCurveEndPoint as curveEndPoint,\n rawTranslate as translate,\n rawIsSolid as isSolid,\n rawIsPlanarWire as isPlanarWire,\n rawIsValid as isValid,\n}\n\n// Upstream brepjs 18's `rotate` takes an axis through an `{ at, axis }` options\n// object; the vendored tree (P5-locked commit) is the four-argument positional\n// form. Export the upstream-aligned wrap so library code written for brepjs\n// rotates with `rotate(shape, angle, { at?, axis? })`.\n/**\n * Rotate a shape by an angle in degrees around an axis.\n * @param shape - The shape to rotate.\n * @param angle - Rotation angle in degrees.\n * @param options - Axis and pivot (`at`) for the rotation; defaults to the Z\n * axis through the origin, matching upstream brepjs.\n * @returns A new rotated shape.\n */\nexport function rotate<T extends AnyShape>(\n shape: T,\n angle: number,\n options: { at?: Vec3; axis?: Vec3 } = {}\n): T {\n return rawRotate(shape, angle, options.at ?? [0, 0, 0], options.axis ?? [0, 0, 1]);\n}"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/brepjs-compat/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,gFAAgF;AAChF,uEAAuE;AACvE,kDAAkD;AAClD,gEAAgE;AAChE,gFAAgF;AAEhF,OAAO,EACL,EAAE,EACF,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,OAAO,GACR,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,GACb,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGlE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA","sourcesContent":["/**\n * BREP-TS compatibility surface (P21) — 2026-09-25 core-decouple rewrite.\n *\n * The vendored BREP TS tree (packages/brepjs) is deleted (裁决 9). Every\n * op projection (primitives / booleans / evolutions / topology queries /\n * sketching DSL / raw 2D-morph ports) is gone with it — those symbols have no\n * receiver (裁决 1). What remains in this module is the ④ group only: the pure\n * combinators / types inlined into core (§5.2) — Result, vectors, planes,\n * errors, constants — which stay flat-exported from the core facade for\n * library authors (import { ok, vecAdd } from '@faicad/faijs').\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// ④ combinators / pure helpers / types(2026-09-25 core-decouple:op 投影面\n// ① ② ③ ⑤ 已随 vendored 树删除;④ 全部为 core 内联实现,保留为本文件的\n// 唯一内容。vendored 句柄类型(Vertex/Edge/…/Shape3D/ValidSolid)随裁决 9 删除)\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport {\n ok,\n err,\n isOk,\n isErr,\n unwrap,\n unwrapOr,\n map,\n andThen,\n} from '../../result/result'\nexport type { Result, Ok, Err } from '../../result/result'\n\nexport {\n vecAdd,\n vecSub,\n vecScale,\n vecDot,\n vecCross,\n vecLength,\n vecNormalize,\n} from './vecOps'\n\nexport {\n createPlane,\n createNamedPlane,\n resolvePlane,\n} from './planeOps'\n\nexport { kernelError, validationError } from '../../result/errors'\nexport type { BrepError } from '../../result/errors'\n\nexport { DEG2RAD, RAD2DEG } from './constants'\n\nexport type { Plane, PlaneName, PlaneInput } from './planeTypes'\n\nexport type { Vec3, PointInput } from './types'\n"]}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Pure plane operations — replaces the old Plane class methods.
3
+ *
4
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
5
+ * `src/core/planeOps.ts`(同源复制,签名不变);import 来源改为 compat 面
6
+ * 第一方模块与 `result/` 第一方模块。
7
+ */
8
+ import type { Vec3, Vec2, PointInput } from './types.js';
9
+ import type { Plane, PlaneName, PlaneInput } from './planeTypes.js';
10
+ import { type Result } from '../../result/result.js';
11
+ /**
12
+ * Create a {@link Plane} from an origin, optional X direction, and a normal.
13
+ *
14
+ * If `xDirection` is omitted, the X axis is derived automatically via kernel `gp_Ax3`.
15
+ *
16
+ * @param origin - Origin point of the plane.
17
+ * @param xDirection - Explicit X axis direction, or `null` to auto-derive.
18
+ * @param normal - Plane normal (Z direction).
19
+ * @returns The created plane.
20
+ * @throws If the normal or derived xDir is zero-length.
21
+ */
22
+ export declare function createPlane(origin: Vec3, xDirection?: Vec3 | null, normal?: Vec3): Plane;
23
+ /**
24
+ * Create a standard named plane with an optional origin offset.
25
+ *
26
+ * @param name - One of the predefined {@link PlaneName} values.
27
+ * @param sourceOrigin - Origin point, or a scalar offset along the plane normal.
28
+ * @returns `Ok<Plane>` on success, or `Err` if the name is unknown.
29
+ */
30
+ export declare function createNamedPlane(name: PlaneName, sourceOrigin?: PointInput | number): Result<Plane>;
31
+ /**
32
+ * Resolve a {@link PlaneInput} to a concrete {@link Plane}.
33
+ *
34
+ * @param input - Plane input to resolve (a named plane or a `Plane` object).
35
+ * @param origin - Optional origin point or scalar offset along the plane normal.
36
+ * @returns `Ok<Plane>` on success, or `Err` if the named plane cannot be resolved.
37
+ */
38
+ export declare function resolvePlane(input: PlaneInput, origin?: PointInput | number): Result<Plane>;
39
+ /**
40
+ * Create or copy a {@link Plane}.
41
+ *
42
+ * When called with a `Plane` object, returns a shallow copy.
43
+ * When called with a `PlaneName` string (or no arguments), resolves the named
44
+ * plane with an optional origin offset.
45
+ *
46
+ * @param plane - A `Plane` object to copy, or a `PlaneName` string to resolve.
47
+ * @param origin - Origin point or scalar offset along the plane normal.
48
+ * @returns The copied or resolved plane.
49
+ * @default plane `'XY'`
50
+ */
51
+ /**
52
+ * Copy a {@link Plane} object.
53
+ *
54
+ * @param plane - The `Plane` object to copy.
55
+ * @returns A shallow copy of the plane.
56
+ */
57
+ declare function makePlane(plane: Plane): Plane;
58
+ /**
59
+ * Resolve a named plane with an optional origin offset.
60
+ *
61
+ * @param plane - The {@link PlaneName} to resolve (defaults to `'XY'`).
62
+ * @param origin - Origin point or scalar offset along the plane normal.
63
+ * @returns The resolved plane.
64
+ */
65
+ declare function makePlane(plane?: PlaneName, origin?: PointInput | number): Plane;
66
+ export { makePlane };
67
+ /** Convert 2D local coordinates to 3D world coordinates on the plane.
68
+ *
69
+ * @param plane - Plane defining the local coordinate system.
70
+ * @param local - 2D local coordinates.
71
+ * @returns The corresponding 3D world point.
72
+ */
73
+ export declare function planeToWorld(plane: Plane, local: Vec2): Vec3;
74
+ /**
75
+ * Convert 3D world coordinates to 2D local coordinates on the plane.
76
+ *
77
+ * @param plane - Plane defining the local coordinate system.
78
+ * @param world - 3D world point.
79
+ * @returns The corresponding 2D local coordinates.
80
+ */
81
+ export declare function planeToLocal(plane: Plane, world: Vec3): Vec2;
82
+ /** Translate a plane by a vector.
83
+ *
84
+ * @param plane - Plane to translate.
85
+ * @param offset - Translation vector.
86
+ * @returns The translated plane.
87
+ */
88
+ export declare function translatePlane(plane: Plane, offset: Vec3): Plane;
89
+ /**
90
+ * Pivot a plane by rotating its axes around a world-space axis.
91
+ *
92
+ * @param angleDeg - Rotation angle in **degrees**.
93
+ * @param axis - World-space axis to rotate around.
94
+ * @param plane - Plane to pivot.
95
+ * @returns The pivoted plane.
96
+ */
97
+ export declare function pivotPlane(plane: Plane, angleDeg: number, axis?: Vec3): Plane;
98
+ //# sourceMappingURL=planeOps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planeOps.d.ts","sourceRoot":"","sources":["../../../src/api/brepjs-compat/planeOps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAYjE,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAOnE;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,IAAI,EACZ,UAAU,GAAE,IAAI,GAAG,IAAW,EAC9B,MAAM,GAAE,IAAgB,GACvB,KAAK,CA+BP;AAqBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,YAAY,GAAE,UAAU,GAAG,MAAkB,GAC5C,MAAM,CAAC,KAAK,CAAC,CAWf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAK3F;AAMD;;;;;;;;;;;GAWG;AACH;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;AACxC;;;;;;GAMG;AACH,iBAAS,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAU3E,OAAO,EAAE,SAAS,EAAE,CAAC;AAMrB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAG5D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAG5D;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,IAAgB,GAAG,KAAK,CAMxF"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Pure plane operations — replaces the old Plane class methods.
3
+ *
4
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
5
+ * `src/core/planeOps.ts`(同源复制,签名不变);import 来源改为 compat 面
6
+ * 第一方模块与 `result/` 第一方模块。
7
+ */
8
+ import { toVec3 } from './types.js';
9
+ import { vecAdd, vecSub, vecScale, vecDot, vecCross, vecNormalize, vecIsZero, vecRotate, } from './vecOps.js';
10
+ import { DEG2RAD } from './constants.js';
11
+ import { ok, err, unwrap } from '../../result/result.js';
12
+ import { validationError } from '../../result/errors.js';
13
+ // ---------------------------------------------------------------------------
14
+ // Plane construction
15
+ // ---------------------------------------------------------------------------
16
+ /**
17
+ * Create a {@link Plane} from an origin, optional X direction, and a normal.
18
+ *
19
+ * If `xDirection` is omitted, the X axis is derived automatically via kernel `gp_Ax3`.
20
+ *
21
+ * @param origin - Origin point of the plane.
22
+ * @param xDirection - Explicit X axis direction, or `null` to auto-derive.
23
+ * @param normal - Plane normal (Z direction).
24
+ * @returns The created plane.
25
+ * @throws If the normal or derived xDir is zero-length.
26
+ */
27
+ export function createPlane(origin, xDirection = null, normal = [0, 0, 1]) {
28
+ const zDir = vecNormalize(normal);
29
+ if (vecIsZero(zDir))
30
+ throw new Error('Plane normal must be non-zero');
31
+ let xDir;
32
+ if (!xDirection) {
33
+ // Derive xDir perpendicular to zDir (same algorithm as kernel gp_Ax3)
34
+ const [nx, ny, nz] = zDir;
35
+ const absX = Math.abs(nx), absY = Math.abs(ny), absZ = Math.abs(nz);
36
+ // Pick the axis least aligned with zDir to cross-product with
37
+ let candidate;
38
+ if (absX <= absY && absX <= absZ)
39
+ candidate = [1, 0, 0];
40
+ else if (absY <= absZ)
41
+ candidate = [0, 1, 0];
42
+ else
43
+ candidate = [0, 0, 1];
44
+ // xDir = normalize(candidate × zDir)
45
+ const cx = candidate[1] * nz - candidate[2] * ny;
46
+ const cy = candidate[2] * nx - candidate[0] * nz;
47
+ const cz = candidate[0] * ny - candidate[1] * nx;
48
+ const len = Math.sqrt(cx * cx + cy * cy + cz * cz);
49
+ xDir = len > 1e-12 ? vecNormalize([cx, cy, cz]) : [1, 0, 0];
50
+ }
51
+ else {
52
+ xDir = vecNormalize(xDirection);
53
+ }
54
+ if (vecIsZero(xDir))
55
+ throw new Error('Plane xDir must be non-zero');
56
+ const yDir = vecNormalize(vecCross(zDir, xDir));
57
+ return { origin, xDir, yDir, zDir };
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // Named plane configs
61
+ // ---------------------------------------------------------------------------
62
+ const PLANES_CONFIG = {
63
+ XY: { xDir: [1, 0, 0], normal: [0, 0, 1] },
64
+ YZ: { xDir: [0, 1, 0], normal: [1, 0, 0] },
65
+ ZX: { xDir: [0, 0, 1], normal: [0, 1, 0] },
66
+ XZ: { xDir: [1, 0, 0], normal: [0, -1, 0] },
67
+ YX: { xDir: [0, 1, 0], normal: [0, 0, -1] },
68
+ ZY: { xDir: [0, 0, 1], normal: [-1, 0, 0] },
69
+ front: { xDir: [1, 0, 0], normal: [0, 0, 1] },
70
+ back: { xDir: [-1, 0, 0], normal: [0, 0, -1] },
71
+ left: { xDir: [0, 0, 1], normal: [-1, 0, 0] },
72
+ right: { xDir: [0, 0, -1], normal: [1, 0, 0] },
73
+ top: { xDir: [1, 0, 0], normal: [0, 1, 0] },
74
+ bottom: { xDir: [1, 0, 0], normal: [0, -1, 0] },
75
+ };
76
+ /**
77
+ * Create a standard named plane with an optional origin offset.
78
+ *
79
+ * @param name - One of the predefined {@link PlaneName} values.
80
+ * @param sourceOrigin - Origin point, or a scalar offset along the plane normal.
81
+ * @returns `Ok<Plane>` on success, or `Err` if the name is unknown.
82
+ */
83
+ export function createNamedPlane(name, sourceOrigin = [0, 0, 0]) {
84
+ const config = PLANES_CONFIG[name];
85
+ if (!config)
86
+ return err(validationError('UNKNOWN_PLANE', `Could not find plane ${name}`));
87
+ let origin;
88
+ if (typeof sourceOrigin === 'number') {
89
+ origin = vecScale(config.normal, sourceOrigin);
90
+ }
91
+ else {
92
+ origin = toVec3(sourceOrigin);
93
+ }
94
+ return ok(createPlane(origin, config.xDir, config.normal));
95
+ }
96
+ /**
97
+ * Resolve a {@link PlaneInput} to a concrete {@link Plane}.
98
+ *
99
+ * @param input - Plane input to resolve (a named plane or a `Plane` object).
100
+ * @param origin - Optional origin point or scalar offset along the plane normal.
101
+ * @returns `Ok<Plane>` on success, or `Err` if the named plane cannot be resolved.
102
+ */
103
+ export function resolvePlane(input, origin) {
104
+ if (typeof input === 'string') {
105
+ return createNamedPlane(input, origin);
106
+ }
107
+ return ok(input);
108
+ }
109
+ function makePlane(plane, origin) {
110
+ if (plane && typeof plane !== 'string') {
111
+ // Already a Plane object - return a copy
112
+ return { ...plane };
113
+ }
114
+ else {
115
+ return unwrap(resolvePlane(plane ?? 'XY', origin));
116
+ }
117
+ }
118
+ export { makePlane };
119
+ // ---------------------------------------------------------------------------
120
+ // Coordinate transforms
121
+ // ---------------------------------------------------------------------------
122
+ /** Convert 2D local coordinates to 3D world coordinates on the plane.
123
+ *
124
+ * @param plane - Plane defining the local coordinate system.
125
+ * @param local - 2D local coordinates.
126
+ * @returns The corresponding 3D world point.
127
+ */
128
+ export function planeToWorld(plane, local) {
129
+ const [u, v] = local;
130
+ return vecAdd(vecAdd(plane.origin, vecScale(plane.xDir, u)), vecScale(plane.yDir, v));
131
+ }
132
+ /**
133
+ * Convert 3D world coordinates to 2D local coordinates on the plane.
134
+ *
135
+ * @param plane - Plane defining the local coordinate system.
136
+ * @param world - 3D world point.
137
+ * @returns The corresponding 2D local coordinates.
138
+ */
139
+ export function planeToLocal(plane, world) {
140
+ const relative = vecSub(world, plane.origin);
141
+ return [vecDot(relative, plane.xDir), vecDot(relative, plane.yDir)];
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Plane transformations (all return new Plane)
145
+ // ---------------------------------------------------------------------------
146
+ /** Translate a plane by a vector.
147
+ *
148
+ * @param plane - Plane to translate.
149
+ * @param offset - Translation vector.
150
+ * @returns The translated plane.
151
+ */
152
+ export function translatePlane(plane, offset) {
153
+ return { ...plane, origin: vecAdd(plane.origin, offset) };
154
+ }
155
+ /**
156
+ * Pivot a plane by rotating its axes around a world-space axis.
157
+ *
158
+ * @param angleDeg - Rotation angle in **degrees**.
159
+ * @param axis - World-space axis to rotate around.
160
+ * @param plane - Plane to pivot.
161
+ * @returns The pivoted plane.
162
+ */
163
+ export function pivotPlane(plane, angleDeg, axis = [1, 0, 0]) {
164
+ const angleRad = angleDeg * DEG2RAD;
165
+ const newZDir = vecRotate(plane.zDir, axis, angleRad);
166
+ const newXDir = vecRotate(plane.xDir, axis, angleRad);
167
+ const newYDir = vecNormalize(vecCross(newZDir, newXDir));
168
+ return { origin: plane.origin, xDir: newXDir, yDir: newYDir, zDir: newZDir };
169
+ }
170
+ //# sourceMappingURL=planeOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planeOps.js","sourceRoot":"","sources":["../../../src/api/brepjs-compat/planeOps.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Pure plane operations — replaces the old Plane class methods.\n *\n * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs\n * `src/core/planeOps.ts`(同源复制,签名不变);import 来源改为 compat 面\n * 第一方模块与 `result/` 第一方模块。\n */\n\nimport type { Vec3, Vec2, PointInput } from './types';\nimport { toVec3 } from './types';\nimport type { Plane, PlaneName, PlaneInput } from './planeTypes';\nimport {\n vecAdd,\n vecSub,\n vecScale,\n vecDot,\n vecCross,\n vecNormalize,\n vecIsZero,\n vecRotate,\n} from './vecOps';\nimport { DEG2RAD } from './constants';\nimport { type Result, ok, err, unwrap } from '../../result/result';\nimport { validationError } from '../../result/errors';\n\n// ---------------------------------------------------------------------------\n// Plane construction\n// ---------------------------------------------------------------------------\n\n/**\n * Create a {@link Plane} from an origin, optional X direction, and a normal.\n *\n * If `xDirection` is omitted, the X axis is derived automatically via kernel `gp_Ax3`.\n *\n * @param origin - Origin point of the plane.\n * @param xDirection - Explicit X axis direction, or `null` to auto-derive.\n * @param normal - Plane normal (Z direction).\n * @returns The created plane.\n * @throws If the normal or derived xDir is zero-length.\n */\nexport function createPlane(\n origin: Vec3,\n xDirection: Vec3 | null = null,\n normal: Vec3 = [0, 0, 1]\n): Plane {\n const zDir = vecNormalize(normal);\n if (vecIsZero(zDir)) throw new Error('Plane normal must be non-zero');\n\n let xDir: Vec3;\n if (!xDirection) {\n // Derive xDir perpendicular to zDir (same algorithm as kernel gp_Ax3)\n const [nx, ny, nz] = zDir;\n const absX = Math.abs(nx),\n absY = Math.abs(ny),\n absZ = Math.abs(nz);\n // Pick the axis least aligned with zDir to cross-product with\n let candidate: Vec3;\n if (absX <= absY && absX <= absZ) candidate = [1, 0, 0];\n else if (absY <= absZ) candidate = [0, 1, 0];\n else candidate = [0, 0, 1];\n // xDir = normalize(candidate × zDir)\n const cx = candidate[1] * nz - candidate[2] * ny;\n const cy = candidate[2] * nx - candidate[0] * nz;\n const cz = candidate[0] * ny - candidate[1] * nx;\n const len = Math.sqrt(cx * cx + cy * cy + cz * cz);\n xDir = len > 1e-12 ? vecNormalize([cx, cy, cz]) : [1, 0, 0];\n } else {\n xDir = vecNormalize(xDirection);\n }\n\n if (vecIsZero(xDir)) throw new Error('Plane xDir must be non-zero');\n\n const yDir = vecNormalize(vecCross(zDir, xDir));\n\n return { origin, xDir, yDir, zDir };\n}\n\n// ---------------------------------------------------------------------------\n// Named plane configs\n// ---------------------------------------------------------------------------\n\nconst PLANES_CONFIG: Record<PlaneName, { xDir: Vec3; normal: Vec3 }> = {\n XY: { xDir: [1, 0, 0], normal: [0, 0, 1] },\n YZ: { xDir: [0, 1, 0], normal: [1, 0, 0] },\n ZX: { xDir: [0, 0, 1], normal: [0, 1, 0] },\n XZ: { xDir: [1, 0, 0], normal: [0, -1, 0] },\n YX: { xDir: [0, 1, 0], normal: [0, 0, -1] },\n ZY: { xDir: [0, 0, 1], normal: [-1, 0, 0] },\n front: { xDir: [1, 0, 0], normal: [0, 0, 1] },\n back: { xDir: [-1, 0, 0], normal: [0, 0, -1] },\n left: { xDir: [0, 0, 1], normal: [-1, 0, 0] },\n right: { xDir: [0, 0, -1], normal: [1, 0, 0] },\n top: { xDir: [1, 0, 0], normal: [0, 1, 0] },\n bottom: { xDir: [1, 0, 0], normal: [0, -1, 0] },\n};\n\n/**\n * Create a standard named plane with an optional origin offset.\n *\n * @param name - One of the predefined {@link PlaneName} values.\n * @param sourceOrigin - Origin point, or a scalar offset along the plane normal.\n * @returns `Ok<Plane>` on success, or `Err` if the name is unknown.\n */\nexport function createNamedPlane(\n name: PlaneName,\n sourceOrigin: PointInput | number = [0, 0, 0]\n): Result<Plane> {\n const config = PLANES_CONFIG[name] as { xDir: Vec3; normal: Vec3 } | undefined;\n if (!config) return err(validationError('UNKNOWN_PLANE', `Could not find plane ${name}`));\n\n let origin: Vec3;\n if (typeof sourceOrigin === 'number') {\n origin = vecScale(config.normal, sourceOrigin);\n } else {\n origin = toVec3(sourceOrigin);\n }\n return ok(createPlane(origin, config.xDir, config.normal));\n}\n\n/**\n * Resolve a {@link PlaneInput} to a concrete {@link Plane}.\n *\n * @param input - Plane input to resolve (a named plane or a `Plane` object).\n * @param origin - Optional origin point or scalar offset along the plane normal.\n * @returns `Ok<Plane>` on success, or `Err` if the named plane cannot be resolved.\n */\nexport function resolvePlane(input: PlaneInput, origin?: PointInput | number): Result<Plane> {\n if (typeof input === 'string') {\n return createNamedPlane(input, origin);\n }\n return ok(input);\n}\n\n// ---------------------------------------------------------------------------\n// makePlane — convenience constructor (migrated from geometryHelpers.ts)\n// ---------------------------------------------------------------------------\n\n/**\n * Create or copy a {@link Plane}.\n *\n * When called with a `Plane` object, returns a shallow copy.\n * When called with a `PlaneName` string (or no arguments), resolves the named\n * plane with an optional origin offset.\n *\n * @param plane - A `Plane` object to copy, or a `PlaneName` string to resolve.\n * @param origin - Origin point or scalar offset along the plane normal.\n * @returns The copied or resolved plane.\n * @default plane `'XY'`\n */\n/**\n * Copy a {@link Plane} object.\n *\n * @param plane - The `Plane` object to copy.\n * @returns A shallow copy of the plane.\n */\nfunction makePlane(plane: Plane): Plane;\n/**\n * Resolve a named plane with an optional origin offset.\n *\n * @param plane - The {@link PlaneName} to resolve (defaults to `'XY'`).\n * @param origin - Origin point or scalar offset along the plane normal.\n * @returns The resolved plane.\n */\nfunction makePlane(plane?: PlaneName, origin?: PointInput | number): Plane;\nfunction makePlane(plane?: PlaneInput, origin?: PointInput | number): Plane {\n if (plane && typeof plane !== 'string') {\n // Already a Plane object - return a copy\n return { ...plane };\n } else {\n return unwrap(resolvePlane(plane ?? 'XY', origin));\n }\n}\n\nexport { makePlane };\n\n// ---------------------------------------------------------------------------\n// Coordinate transforms\n// ---------------------------------------------------------------------------\n\n/** Convert 2D local coordinates to 3D world coordinates on the plane.\n *\n * @param plane - Plane defining the local coordinate system.\n * @param local - 2D local coordinates.\n * @returns The corresponding 3D world point.\n */\nexport function planeToWorld(plane: Plane, local: Vec2): Vec3 {\n const [u, v] = local;\n return vecAdd(vecAdd(plane.origin, vecScale(plane.xDir, u)), vecScale(plane.yDir, v));\n}\n\n/**\n * Convert 3D world coordinates to 2D local coordinates on the plane.\n *\n * @param plane - Plane defining the local coordinate system.\n * @param world - 3D world point.\n * @returns The corresponding 2D local coordinates.\n */\nexport function planeToLocal(plane: Plane, world: Vec3): Vec2 {\n const relative = vecSub(world, plane.origin);\n return [vecDot(relative, plane.xDir), vecDot(relative, plane.yDir)];\n}\n\n// ---------------------------------------------------------------------------\n// Plane transformations (all return new Plane)\n// ---------------------------------------------------------------------------\n\n/** Translate a plane by a vector.\n *\n * @param plane - Plane to translate.\n * @param offset - Translation vector.\n * @returns The translated plane.\n */\nexport function translatePlane(plane: Plane, offset: Vec3): Plane {\n return { ...plane, origin: vecAdd(plane.origin, offset) };\n}\n\n/**\n * Pivot a plane by rotating its axes around a world-space axis.\n *\n * @param angleDeg - Rotation angle in **degrees**.\n * @param axis - World-space axis to rotate around.\n * @param plane - Plane to pivot.\n * @returns The pivoted plane.\n */\nexport function pivotPlane(plane: Plane, angleDeg: number, axis: Vec3 = [1, 0, 0]): Plane {\n const angleRad = angleDeg * DEG2RAD;\n const newZDir = vecRotate(plane.zDir, axis, angleRad);\n const newXDir = vecRotate(plane.xDir, axis, angleRad);\n const newYDir = vecNormalize(vecCross(newZDir, newXDir));\n return { origin: plane.origin, xDir: newXDir, yDir: newYDir, zDir: newZDir };\n}\n"]}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Plane type definitions — immutable plain objects.
3
+ *
4
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
5
+ * `src/core/planeTypes.ts`(同源复制,签名不变)。
6
+ */
7
+ import type { Vec3 } from './types.js';
8
+ /** Immutable plane defined by origin and three orthogonal direction vectors. */
9
+ export interface Plane {
10
+ readonly origin: Vec3;
11
+ readonly xDir: Vec3;
12
+ readonly yDir: Vec3;
13
+ readonly zDir: Vec3;
14
+ }
15
+ /**
16
+ * Named standard planes.
17
+ *
18
+ * Axis pairs (`'XY'`, `'YZ'`, …) and view names (`'front'`, `'top'`, …)
19
+ * are both supported. The axis-pair order determines the normal direction.
20
+ */
21
+ export type PlaneName = 'XY' | 'YZ' | 'ZX' | 'XZ' | 'YX' | 'ZY' | 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';
22
+ /** Accept either an explicit {@link Plane} object or a {@link PlaneName} string. */
23
+ export type PlaneInput = Plane | PlaneName;
24
+ //# sourceMappingURL=planeTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planeTypes.d.ts","sourceRoot":"","sources":["../../../src/api/brepjs-compat/planeTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,gFAAgF;AAChF,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACnB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnG,oFAAoF;AACpF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Plane type definitions — immutable plain objects.
3
+ *
4
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
5
+ * `src/core/planeTypes.ts`(同源复制,签名不变)。
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=planeTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planeTypes.js","sourceRoot":"","sources":["../../../src/api/brepjs-compat/planeTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Plane type definitions — immutable plain objects.\n *\n * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs\n * `src/core/planeTypes.ts`(同源复制,签名不变)。\n */\n\nimport type { Vec3 } from './types';\n\n/** Immutable plane defined by origin and three orthogonal direction vectors. */\nexport interface Plane {\n readonly origin: Vec3;\n readonly xDir: Vec3;\n readonly yDir: Vec3;\n readonly zDir: Vec3;\n}\n\n/**\n * Named standard planes.\n *\n * Axis pairs (`'XY'`, `'YZ'`, …) and view names (`'front'`, `'top'`, …)\n * are both supported. The axis-pair order determines the normal direction.\n */\nexport type PlaneName =\n 'XY' | 'YZ' | 'ZX' | 'XZ' | 'YX' | 'ZY' | 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';\n\n/** Accept either an explicit {@link Plane} object or a {@link PlaneName} string. */\nexport type PlaneInput = Plane | PlaneName;\n"]}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Core type definitions(compat 面类型底座)。
3
+ *
4
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
5
+ * `src/core/types.ts`(同源复制,签名不变)。
6
+ * Vec3 tuples replace the old Vector class.
7
+ * All operations on vectors are pure functions in vecOps.ts.
8
+ */
9
+ /** 3D vector/point as a readonly tuple */
10
+ export type Vec3 = readonly [number, number, number];
11
+ /** 2D point as a readonly tuple */
12
+ export type Vec2 = readonly [number, number];
13
+ /**
14
+ * Flexible point input — accepts various formats for convenience.
15
+ * Use `toVec3()` to normalize to Vec3.
16
+ */
17
+ export type PointInput = Vec3 | Vec2 | readonly [number, number, number] | readonly [number, number];
18
+ /** Normalize any point input to Vec3
19
+ *
20
+ * @param p - Point input to normalize.
21
+ * @returns The point as a `Vec3` (missing z defaults to 0).
22
+ */
23
+ export declare function toVec3(p: PointInput): Vec3;
24
+ /** Normalize to Vec2 (drops z)
25
+ *
26
+ * @param p - Point input to normalize.
27
+ * @returns The point as a `Vec2` (z component dropped).
28
+ */
29
+ export declare function toVec2(p: PointInput): Vec2;
30
+ /** Direction shorthand — a named axis (`'X'`, `'Y'`, `'Z'`) or an explicit {@link Vec3}. */
31
+ export type Direction = Vec3 | 'X' | 'Y' | 'Z';
32
+ /**
33
+ * Resolve a {@link Direction} shorthand to a unit {@link Vec3}.
34
+ *
35
+ * @param d - Direction shorthand to resolve.
36
+ * @returns The direction as a unit `Vec3`.
37
+ * @throws If the string is not a recognised axis name.
38
+ */
39
+ export declare function resolveDirection(d: Direction): Vec3;
40
+ /** A row of a 4x4 matrix. */
41
+ type Row4 = [number, number, number, number];
42
+ /** 4x4 affine transformation matrix in row-major order. Bottom row must be [0,0,0,1]. */
43
+ export type Matrix4x4 = [Row4, Row4, Row4, Row4];
44
+ /** Structured matrix input: 3x3 linear part + translation vector. */
45
+ export interface MatrixTransform {
46
+ /** 3x3 linear part in row-major order: [r00, r01, r02, r10, r11, r12, r20, r21, r22]. */
47
+ readonly linear: readonly [
48
+ number,
49
+ number,
50
+ number,
51
+ number,
52
+ number,
53
+ number,
54
+ number,
55
+ number,
56
+ number
57
+ ];
58
+ /** Translation vector [tx, ty, tz]. */
59
+ readonly translation: Vec3;
60
+ }
61
+ /** Input accepted by `applyMatrix`: either a raw 4x4 array or a structured object. */
62
+ export type MatrixInput = Matrix4x4 | MatrixTransform;
63
+ export {};
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/brepjs-compat/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,mCAAmC;AACnC,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7C;;;GAGG;AACH,MAAM,MAAM,UAAU,GACpB,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAG1C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAE1C;AAED,4FAA4F;AAC5F,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAQ/C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAOnD;AAMD,6BAA6B;AAC7B,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7C,yFAAyF;AACzF,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjD,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;KACP,CAAC;IACF,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;CAC5B;AAED,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Core type definitions(compat 面类型底座)。
3
+ *
4
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
5
+ * `src/core/types.ts`(同源复制,签名不变)。
6
+ * Vec3 tuples replace the old Vector class.
7
+ * All operations on vectors are pure functions in vecOps.ts.
8
+ */
9
+ /** Normalize any point input to Vec3
10
+ *
11
+ * @param p - Point input to normalize.
12
+ * @returns The point as a `Vec3` (missing z defaults to 0).
13
+ */
14
+ export function toVec3(p) {
15
+ if (p.length === 2)
16
+ return [p[0], p[1], 0];
17
+ return [p[0], p[1], p[2]];
18
+ }
19
+ /** Normalize to Vec2 (drops z)
20
+ *
21
+ * @param p - Point input to normalize.
22
+ * @returns The point as a `Vec2` (z component dropped).
23
+ */
24
+ export function toVec2(p) {
25
+ return [p[0], p[1]];
26
+ }
27
+ const DIRECTIONS = {
28
+ X: [1, 0, 0],
29
+ Y: [0, 1, 0],
30
+ Z: [0, 0, 1],
31
+ };
32
+ /**
33
+ * Resolve a {@link Direction} shorthand to a unit {@link Vec3}.
34
+ *
35
+ * @param d - Direction shorthand to resolve.
36
+ * @returns The direction as a unit `Vec3`.
37
+ * @throws If the string is not a recognised axis name.
38
+ */
39
+ export function resolveDirection(d) {
40
+ if (typeof d === 'string') {
41
+ const dir = DIRECTIONS[d];
42
+ if (!dir)
43
+ throw new Error(`Unknown direction: ${d}`);
44
+ return dir;
45
+ }
46
+ return d;
47
+ }
48
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/brepjs-compat/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,CAAa;IAClC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,CAAa;IAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAKD,MAAM,UAAU,GAAyB;IACvC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACb,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAY;IAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC","sourcesContent":["/**\n * Core type definitions(compat 面类型底座)。\n *\n * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs\n * `src/core/types.ts`(同源复制,签名不变)。\n * Vec3 tuples replace the old Vector class.\n * All operations on vectors are pure functions in vecOps.ts.\n */\n\n/** 3D vector/point as a readonly tuple */\nexport type Vec3 = readonly [number, number, number];\n\n/** 2D point as a readonly tuple */\nexport type Vec2 = readonly [number, number];\n\n/**\n * Flexible point input — accepts various formats for convenience.\n * Use `toVec3()` to normalize to Vec3.\n */\nexport type PointInput =\n Vec3 | Vec2 | readonly [number, number, number] | readonly [number, number];\n\n/** Normalize any point input to Vec3\n *\n * @param p - Point input to normalize.\n * @returns The point as a `Vec3` (missing z defaults to 0).\n */\nexport function toVec3(p: PointInput): Vec3 {\n if (p.length === 2) return [p[0], p[1], 0];\n return [p[0], p[1], p[2]];\n}\n\n/** Normalize to Vec2 (drops z)\n *\n * @param p - Point input to normalize.\n * @returns The point as a `Vec2` (z component dropped).\n */\nexport function toVec2(p: PointInput): Vec2 {\n return [p[0], p[1]];\n}\n\n/** Direction shorthand — a named axis (`'X'`, `'Y'`, `'Z'`) or an explicit {@link Vec3}. */\nexport type Direction = Vec3 | 'X' | 'Y' | 'Z';\n\nconst DIRECTIONS: Record<string, Vec3> = {\n X: [1, 0, 0],\n Y: [0, 1, 0],\n Z: [0, 0, 1],\n};\n\n/**\n * Resolve a {@link Direction} shorthand to a unit {@link Vec3}.\n *\n * @param d - Direction shorthand to resolve.\n * @returns The direction as a unit `Vec3`.\n * @throws If the string is not a recognised axis name.\n */\nexport function resolveDirection(d: Direction): Vec3 {\n if (typeof d === 'string') {\n const dir = DIRECTIONS[d];\n if (!dir) throw new Error(`Unknown direction: ${d}`);\n return dir;\n }\n return d;\n}\n\n// ---------------------------------------------------------------------------\n// Matrix types for applyMatrix (OpenSCAD multmatrix equivalent)\n// ---------------------------------------------------------------------------\n\n/** A row of a 4x4 matrix. */\ntype Row4 = [number, number, number, number];\n\n/** 4x4 affine transformation matrix in row-major order. Bottom row must be [0,0,0,1]. */\nexport type Matrix4x4 = [Row4, Row4, Row4, Row4];\n\n/** Structured matrix input: 3x3 linear part + translation vector. */\nexport interface MatrixTransform {\n /** 3x3 linear part in row-major order: [r00, r01, r02, r10, r11, r12, r20, r21, r22]. */\n readonly linear: readonly [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n ];\n /** Translation vector [tx, ty, tz]. */\n readonly translation: Vec3;\n}\n\n/** Input accepted by `applyMatrix`: either a raw 4x4 array or a structured object. */\nexport type MatrixInput = Matrix4x4 | MatrixTransform;\n"]}