@faicad/faijs 0.29.3 → 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 (614) 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 +136 -0
  7. package/dist/api/appearance.d.ts.map +1 -0
  8. package/dist/api/appearance.js +228 -0
  9. package/dist/api/appearance.js.map +1 -0
  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/import-step.d.ts.map +1 -1
  257. package/dist/api/import-step.js +28 -0
  258. package/dist/api/import-step.js.map +1 -1
  259. package/dist/api/index.d.ts +19 -6
  260. package/dist/api/index.d.ts.map +1 -1
  261. package/dist/api/index.js +31 -8
  262. package/dist/api/index.js.map +1 -1
  263. package/dist/api/internal/compat-op.d.ts +4 -30
  264. package/dist/api/internal/compat-op.d.ts.map +1 -1
  265. package/dist/api/internal/compat-op.js +10 -42
  266. package/dist/api/internal/compat-op.js.map +1 -1
  267. package/dist/api/internal/compat-projection.d.ts +5 -5
  268. package/dist/api/internal/compat-projection.js +5 -5
  269. package/dist/api/internal/compat-projection.js.map +1 -1
  270. package/dist/api/internal/dual-form-args.d.ts +0 -2
  271. package/dist/api/internal/dual-form-args.d.ts.map +1 -1
  272. package/dist/api/internal/dual-form-args.js +1 -3
  273. package/dist/api/internal/dual-form-args.js.map +1 -1
  274. package/dist/api/internal/l3-bridge.d.ts +5 -37
  275. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  276. package/dist/api/internal/l3-bridge.js +7 -76
  277. package/dist/api/internal/l3-bridge.js.map +1 -1
  278. package/dist/api/internal/profile-wire.d.ts +1 -1
  279. package/dist/api/internal/profile-wire.js +1 -1
  280. package/dist/api/internal/profile-wire.js.map +1 -1
  281. package/dist/api/internal/result-unwrap.d.ts +4 -6
  282. package/dist/api/internal/result-unwrap.d.ts.map +1 -1
  283. package/dist/api/internal/result-unwrap.js +4 -6
  284. package/dist/api/internal/result-unwrap.js.map +1 -1
  285. package/dist/api/knurl.d.ts.map +1 -1
  286. package/dist/api/knurl.js +5 -3
  287. package/dist/api/knurl.js.map +1 -1
  288. package/dist/api/loft.d.ts +2 -2
  289. package/dist/api/loft.d.ts.map +1 -1
  290. package/dist/api/loft.js +2 -2
  291. package/dist/api/loft.js.map +1 -1
  292. package/dist/api/measurement/index.d.ts +3 -3
  293. package/dist/api/measurement/index.js +3 -3
  294. package/dist/api/measurement/index.js.map +1 -1
  295. package/dist/api/meta.d.ts +91 -0
  296. package/dist/api/meta.d.ts.map +1 -0
  297. package/dist/api/meta.js +97 -0
  298. package/dist/api/meta.js.map +1 -0
  299. package/dist/api/offset2d.d.ts +49 -0
  300. package/dist/api/offset2d.d.ts.map +1 -0
  301. package/dist/api/offset2d.js +86 -0
  302. package/dist/api/offset2d.js.map +1 -0
  303. package/dist/api/pattern.js +3 -3
  304. package/dist/api/pattern.js.map +1 -1
  305. package/dist/api/primitives.d.ts.map +1 -1
  306. package/dist/api/primitives.js +124 -8
  307. package/dist/api/primitives.js.map +1 -1
  308. package/dist/api/replicate.d.ts +2 -2
  309. package/dist/api/replicate.d.ts.map +1 -1
  310. package/dist/api/replicate.js +12 -12
  311. package/dist/api/replicate.js.map +1 -1
  312. package/dist/api/result.d.ts +1 -1
  313. package/dist/api/result.js +1 -1
  314. package/dist/api/result.js.map +1 -1
  315. package/dist/api/revolve.d.ts +2 -2
  316. package/dist/api/revolve.js +3 -3
  317. package/dist/api/revolve.js.map +1 -1
  318. package/dist/api/screw.d.ts +1 -1
  319. package/dist/api/screw.d.ts.map +1 -1
  320. package/dist/api/screw.js +5 -4
  321. package/dist/api/screw.js.map +1 -1
  322. package/dist/api/sdf.d.ts.map +1 -1
  323. package/dist/api/sdf.js +3 -2
  324. package/dist/api/sdf.js.map +1 -1
  325. package/dist/api/shape-type/index.d.ts +141 -0
  326. package/dist/api/shape-type/index.d.ts.map +1 -0
  327. package/dist/api/shape-type/index.js +182 -0
  328. package/dist/api/shape-type/index.js.map +1 -0
  329. package/dist/api/shell.d.ts +2 -2
  330. package/dist/api/shell.js +2 -2
  331. package/dist/api/shell.js.map +1 -1
  332. package/dist/api/solid-from-faces.d.ts +45 -0
  333. package/dist/api/solid-from-faces.d.ts.map +1 -0
  334. package/dist/api/solid-from-faces.js +72 -0
  335. package/dist/api/solid-from-faces.js.map +1 -0
  336. package/dist/api/solid-offset/index.d.ts +67 -0
  337. package/dist/api/solid-offset/index.d.ts.map +1 -0
  338. package/dist/api/solid-offset/index.js +132 -0
  339. package/dist/api/solid-offset/index.js.map +1 -0
  340. package/dist/api/surface/arg-spec.d.ts +35 -33
  341. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  342. package/dist/api/surface/arg-spec.js +222 -224
  343. package/dist/api/surface/arg-spec.js.map +1 -1
  344. package/dist/api/surface-face/index.d.ts +104 -0
  345. package/dist/api/surface-face/index.d.ts.map +1 -0
  346. package/dist/api/surface-face/index.js +217 -0
  347. package/dist/api/surface-face/index.js.map +1 -0
  348. package/dist/api/surface.d.ts +44 -0
  349. package/dist/api/surface.d.ts.map +1 -0
  350. package/dist/api/surface.js +66 -0
  351. package/dist/api/surface.js.map +1 -0
  352. package/dist/api/sweep.d.ts +59 -9
  353. package/dist/api/sweep.d.ts.map +1 -1
  354. package/dist/api/sweep.js +11 -6
  355. package/dist/api/sweep.js.map +1 -1
  356. package/dist/api/thicken.d.ts +1 -1
  357. package/dist/api/thicken.js +1 -1
  358. package/dist/api/thicken.js.map +1 -1
  359. package/dist/api/transform.d.ts +5 -5
  360. package/dist/api/transform.d.ts.map +1 -1
  361. package/dist/api/transform.js +11 -10
  362. package/dist/api/transform.js.map +1 -1
  363. package/dist/api/view/cameraFns.d.ts +1 -1
  364. package/dist/api/view/cameraFns.d.ts.map +1 -1
  365. package/dist/api/view/cameraFns.js +1 -1
  366. package/dist/api/view/cameraFns.js.map +1 -1
  367. package/dist/api/view/index.d.ts +0 -2
  368. package/dist/api/view/index.d.ts.map +1 -1
  369. package/dist/api/view/index.js +0 -2
  370. package/dist/api/view/index.js.map +1 -1
  371. package/dist/api/view/projectionPlanes.d.ts +1 -1
  372. package/dist/api/view/projectionPlanes.d.ts.map +1 -1
  373. package/dist/api/view/projectionPlanes.js.map +1 -1
  374. package/dist/api/view/view-camera.d.ts +7 -9
  375. package/dist/api/view/view-camera.d.ts.map +1 -1
  376. package/dist/api/view/view-camera.js +4 -6
  377. package/dist/api/view/view-camera.js.map +1 -1
  378. package/dist/api/view/view-projection.d.ts +0 -2
  379. package/dist/api/view/view-projection.d.ts.map +1 -1
  380. package/dist/api/view/view-projection.js +0 -2
  381. package/dist/api/view/view-projection.js.map +1 -1
  382. package/dist/api/view/view-sheet.d.ts +0 -2
  383. package/dist/api/view/view-sheet.d.ts.map +1 -1
  384. package/dist/api/view/view-sheet.js +0 -2
  385. package/dist/api/view/view-sheet.js.map +1 -1
  386. package/dist/api/view-export/index.d.ts +97 -0
  387. package/dist/api/view-export/index.d.ts.map +1 -0
  388. package/dist/api/view-export/index.js +118 -0
  389. package/dist/api/view-export/index.js.map +1 -0
  390. package/dist/brep/brep-ops.d.ts +89 -1
  391. package/dist/brep/brep-ops.d.ts.map +1 -1
  392. package/dist/brep/brep-ops.js +204 -13
  393. package/dist/brep/brep-ops.js.map +1 -1
  394. package/dist/brep/brep-topology.d.ts +20 -0
  395. package/dist/brep/brep-topology.d.ts.map +1 -1
  396. package/dist/brep/brep-topology.js +46 -0
  397. package/dist/brep/brep-topology.js.map +1 -1
  398. package/dist/brep/engine/adapters/occt.d.ts +1 -1
  399. package/dist/brep/engine/adapters/occt.js +8 -8
  400. package/dist/brep/engine/adapters/occt.js.map +1 -1
  401. package/dist/brep/engine/primitives.d.ts +2 -3
  402. package/dist/brep/engine/primitives.d.ts.map +1 -1
  403. package/dist/brep/engine/primitives.js +1 -2
  404. package/dist/brep/engine/primitives.js.map +1 -1
  405. package/dist/brep/engine/registry.d.ts +1 -1
  406. package/dist/brep/engine/registry.js +1 -1
  407. package/dist/brep/engine/registry.js.map +1 -1
  408. package/dist/brep/engine/types.d.ts +2 -2
  409. package/dist/brep/engine/types.js.map +1 -1
  410. package/dist/brep/export/export-model.d.ts +40 -0
  411. package/dist/brep/export/export-model.d.ts.map +1 -1
  412. package/dist/brep/export/export-model.js +268 -25
  413. package/dist/brep/export/export-model.js.map +1 -1
  414. package/dist/brep/export/step-meta-header.d.ts +102 -0
  415. package/dist/brep/export/step-meta-header.d.ts.map +1 -0
  416. package/dist/brep/export/step-meta-header.js +225 -0
  417. package/dist/brep/export/step-meta-header.js.map +1 -0
  418. package/dist/brep/export/step.d.ts +5 -1
  419. package/dist/brep/export/step.d.ts.map +1 -1
  420. package/dist/brep/export/step.js +11 -2
  421. package/dist/brep/export/step.js.map +1 -1
  422. package/dist/brep/handle-bridge.d.ts +2 -2
  423. package/dist/brep/handle-bridge.js +2 -2
  424. package/dist/brep/handle-bridge.js.map +1 -1
  425. package/dist/brep/index.d.ts +6 -3
  426. package/dist/brep/index.d.ts.map +1 -1
  427. package/dist/brep/index.js +6 -3
  428. package/dist/brep/index.js.map +1 -1
  429. package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
  430. package/dist/brepkit-kernel/brepkitKernel.js +2 -2
  431. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  432. package/dist/browser.d.ts +2 -2
  433. package/dist/browser.d.ts.map +1 -1
  434. package/dist/browser.js +5 -4
  435. package/dist/browser.js.map +1 -1
  436. package/dist/cad-runtime/admit-compat-lib.d.ts +3 -10
  437. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  438. package/dist/cad-runtime/admit-compat-lib.js +3 -9
  439. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  440. package/dist/cad-runtime/backend-dispatch.js +12 -3
  441. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  442. package/dist/cad-runtime/direct-executor.d.ts +6 -3
  443. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  444. package/dist/cad-runtime/direct-executor.js +31 -9
  445. package/dist/cad-runtime/direct-executor.js.map +1 -1
  446. package/dist/cad-runtime/interp/env.d.ts +1 -1
  447. package/dist/cad-runtime/interp/env.js.map +1 -1
  448. package/dist/cad-runtime/lib-id.d.ts +0 -2
  449. package/dist/cad-runtime/lib-id.d.ts.map +1 -1
  450. package/dist/cad-runtime/lib-id.js +0 -2
  451. package/dist/cad-runtime/lib-id.js.map +1 -1
  452. package/dist/cad-runtime/live-shapes.d.ts +3 -5
  453. package/dist/cad-runtime/live-shapes.d.ts.map +1 -1
  454. package/dist/cad-runtime/live-shapes.js +8 -10
  455. package/dist/cad-runtime/live-shapes.js.map +1 -1
  456. package/dist/cad-runtime/ports.d.ts +3 -3
  457. package/dist/cad-runtime/ports.js.map +1 -1
  458. package/dist/cad-runtime/runtime.d.ts +21 -7
  459. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  460. package/dist/cad-runtime/runtime.js +45 -6
  461. package/dist/cad-runtime/runtime.js.map +1 -1
  462. package/dist/define-op.d.ts +4 -3
  463. package/dist/define-op.d.ts.map +1 -1
  464. package/dist/define-op.js +65 -3
  465. package/dist/define-op.js.map +1 -1
  466. package/dist/geometry2d/bridge/plane.d.ts +1 -1
  467. package/dist/geometry2d/bridge/plane.js +1 -1
  468. package/dist/geometry2d/bridge/plane.js.map +1 -1
  469. package/dist/geometry2d/curve2d.d.ts +1 -1
  470. package/dist/geometry2d/curve2d.js +1 -1
  471. package/dist/geometry2d/curve2d.js.map +1 -1
  472. package/dist/index.d.ts +1 -1
  473. package/dist/index.d.ts.map +1 -1
  474. package/dist/index.js +10 -4
  475. package/dist/index.js.map +1 -1
  476. package/dist/io/fai-zip/container-read.d.ts +16 -0
  477. package/dist/io/fai-zip/container-read.d.ts.map +1 -1
  478. package/dist/io/fai-zip/container-read.js +22 -0
  479. package/dist/io/fai-zip/container-read.js.map +1 -1
  480. package/dist/io/fai-zip/index.d.ts +1 -1
  481. package/dist/io/fai-zip/index.d.ts.map +1 -1
  482. package/dist/io/fai-zip/index.js +1 -1
  483. package/dist/io/fai-zip/index.js.map +1 -1
  484. package/dist/lang/code-to-args.d.ts.map +1 -1
  485. package/dist/lang/code-to-args.js +10 -1
  486. package/dist/lang/code-to-args.js.map +1 -1
  487. package/dist/lang/determinism-scanner.d.ts.map +1 -1
  488. package/dist/lang/determinism-scanner.js +22 -9
  489. package/dist/lang/determinism-scanner.js.map +1 -1
  490. package/dist/lang/metadata-extractor.d.ts +27 -6
  491. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  492. package/dist/lang/metadata-extractor.js +90 -29
  493. package/dist/lang/metadata-extractor.js.map +1 -1
  494. package/dist/lang/parse-error.d.ts +4 -0
  495. package/dist/lang/parse-error.d.ts.map +1 -1
  496. package/dist/lang/parse-error.js.map +1 -1
  497. package/dist/lang/security-scanner.d.ts +27 -2
  498. package/dist/lang/security-scanner.d.ts.map +1 -1
  499. package/dist/lang/security-scanner.js +29 -2
  500. package/dist/lang/security-scanner.js.map +1 -1
  501. package/dist/lang/source-edit.d.ts +2 -2
  502. package/dist/lang/source-edit.js.map +1 -1
  503. package/dist/lang/symbol-table.generated.d.ts +36 -0
  504. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  505. package/dist/lang/symbol-table.generated.js +36 -0
  506. package/dist/lang/symbol-table.generated.js.map +1 -1
  507. package/dist/lang/types.d.ts +5 -6
  508. package/dist/lang/types.d.ts.map +1 -1
  509. package/dist/lang/types.js.map +1 -1
  510. package/dist/mesh/import-model.d.ts +94 -0
  511. package/dist/mesh/import-model.d.ts.map +1 -0
  512. package/dist/mesh/import-model.js +15 -0
  513. package/dist/mesh/import-model.js.map +1 -0
  514. package/dist/mesh/index.d.ts +19 -58
  515. package/dist/mesh/index.d.ts.map +1 -1
  516. package/dist/mesh/index.js +19 -70
  517. package/dist/mesh/index.js.map +1 -1
  518. package/dist/mesh/io.d.ts +39 -16
  519. package/dist/mesh/io.d.ts.map +1 -1
  520. package/dist/mesh/io.js +151 -22
  521. package/dist/mesh/io.js.map +1 -1
  522. package/dist/mesh/primitives.d.ts.map +1 -1
  523. package/dist/mesh/primitives.js +42 -7
  524. package/dist/mesh/primitives.js.map +1 -1
  525. package/dist/mesh/threemf-bambu.d.ts +12 -1
  526. package/dist/mesh/threemf-bambu.d.ts.map +1 -1
  527. package/dist/mesh/threemf-bambu.js +68 -16
  528. package/dist/mesh/threemf-bambu.js.map +1 -1
  529. package/dist/mesh/threemf-loader.d.ts +37 -1
  530. package/dist/mesh/threemf-loader.d.ts.map +1 -1
  531. package/dist/mesh/threemf-loader.js +205 -14
  532. package/dist/mesh/threemf-loader.js.map +1 -1
  533. package/dist/mesh/transform.d.ts +1 -1
  534. package/dist/mesh/transform.js +1 -1
  535. package/dist/mesh/transform.js.map +1 -1
  536. package/dist/mesh/types.d.ts +43 -5
  537. package/dist/mesh/types.d.ts.map +1 -1
  538. package/dist/mesh/types.js.map +1 -1
  539. package/dist/node-host/cli.d.ts +49 -1
  540. package/dist/node-host/cli.d.ts.map +1 -1
  541. package/dist/node-host/cli.js +125 -19
  542. package/dist/node-host/cli.js.map +1 -1
  543. package/dist/node-host/execute-script.d.ts +55 -0
  544. package/dist/node-host/execute-script.d.ts.map +1 -0
  545. package/dist/node-host/execute-script.js +46 -0
  546. package/dist/node-host/execute-script.js.map +1 -0
  547. package/dist/node.d.ts +2 -0
  548. package/dist/node.d.ts.map +1 -1
  549. package/dist/node.js +3 -0
  550. package/dist/node.js.map +1 -1
  551. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +260 -0
  552. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +1 -0
  553. package/dist/occt-kernel/generated/occtPlatform.generated.js +875 -0
  554. package/dist/occt-kernel/generated/occtPlatform.generated.js.map +1 -0
  555. package/dist/occt-kernel/highLevelApi.d.ts +4 -1
  556. package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
  557. package/dist/occt-kernel/highLevelApi.js +4 -2
  558. package/dist/occt-kernel/highLevelApi.js.map +1 -1
  559. package/dist/occt-kernel/hullGeometry.d.ts +2 -2
  560. package/dist/occt-kernel/hullGeometry.js +2 -3
  561. package/dist/occt-kernel/hullGeometry.js.map +1 -1
  562. package/dist/occt-kernel/hullOps.d.ts +3 -3
  563. package/dist/occt-kernel/hullOps.js +4 -4
  564. package/dist/occt-kernel/hullOps.js.map +1 -1
  565. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  566. package/dist/occt-kernel/occt-primitives.js +32 -5
  567. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  568. package/dist/occt-kernel/occtKernel.d.ts +1 -1
  569. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  570. package/dist/occt-kernel/occtKernel.js +19 -1
  571. package/dist/occt-kernel/occtKernel.js.map +1 -1
  572. package/dist/occt-kernel/stepMetaParser.d.ts +44 -0
  573. package/dist/occt-kernel/stepMetaParser.d.ts.map +1 -0
  574. package/dist/occt-kernel/stepMetaParser.js +166 -0
  575. package/dist/occt-kernel/stepMetaParser.js.map +1 -0
  576. package/dist/occt-scan/recognize.d.ts +58 -0
  577. package/dist/occt-scan/recognize.d.ts.map +1 -0
  578. package/dist/occt-scan/recognize.js +216 -0
  579. package/dist/occt-scan/recognize.js.map +1 -0
  580. package/dist/primitives/brep-primitives.js +7 -7
  581. package/dist/primitives/brep-primitives.js.map +1 -1
  582. package/dist/result/bug.d.ts +1 -1
  583. package/dist/result/bug.js +1 -1
  584. package/dist/result/bug.js.map +1 -1
  585. package/dist/result/errors.d.ts +2 -2
  586. package/dist/result/errors.d.ts.map +1 -1
  587. package/dist/result/errors.js +1 -1
  588. package/dist/result/errors.js.map +1 -1
  589. package/dist/result/vec3.d.ts +1 -1
  590. package/dist/result/vec3.js +1 -1
  591. package/dist/result/vec3.js.map +1 -1
  592. package/dist/runtime-state.d.ts +16 -0
  593. package/dist/runtime-state.d.ts.map +1 -1
  594. package/dist/runtime-state.js +27 -0
  595. package/dist/runtime-state.js.map +1 -1
  596. package/dist/script-globals.d.ts +24 -0
  597. package/dist/script-globals.d.ts.map +1 -0
  598. package/dist/script-globals.js +24 -0
  599. package/dist/script-globals.js.map +1 -0
  600. package/dist/shape.d.ts +35 -3
  601. package/dist/shape.d.ts.map +1 -1
  602. package/dist/shape.js +44 -2
  603. package/dist/shape.js.map +1 -1
  604. package/dist/step/stepMetaParser.d.ts +55 -0
  605. package/dist/step/stepMetaParser.d.ts.map +1 -0
  606. package/dist/step/stepMetaParser.js +177 -0
  607. package/dist/step/stepMetaParser.js.map +1 -0
  608. package/dist/topology/naming/lineage.d.ts +3 -2
  609. package/dist/topology/naming/lineage.d.ts.map +1 -1
  610. package/dist/topology/naming/lineage.js.map +1 -1
  611. package/dist/weapp.d.ts +1 -1
  612. package/dist/weapp.js +1 -1
  613. package/dist/weapp.js.map +1 -1
  614. package/package.json +9 -11
@@ -2,6 +2,10 @@
2
2
  * generated/view.ts — 生成文件,勿手改。
3
3
  * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。
4
4
  * view 模块:3 个投影符号。
5
+ * A6(2026-10-06)口径指认:本文件是 brepjs 投影面的**增量**清单;脚本面全集的
6
+ * 权威来源是 generated/script-face.ts + gen-symbol-table 产物
7
+ * lang/symbol-table.generated.ts(cad 脚本面 95 op)。两个清单回答不同问题,
8
+ * 互不为超集——禁止用本文件的名字反推脚本面能力。
5
9
  */
6
10
  export { viewCamera } from '../view/index.js';
7
11
  export { projectView } from '../view/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/api/generated/view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/api/generated/view.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
@@ -2,6 +2,10 @@
2
2
  * generated/view.ts — 生成文件,勿手改。
3
3
  * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。
4
4
  * view 模块:3 个投影符号。
5
+ * A6(2026-10-06)口径指认:本文件是 brepjs 投影面的**增量**清单;脚本面全集的
6
+ * 权威来源是 generated/script-face.ts + gen-symbol-table 产物
7
+ * lang/symbol-table.generated.ts(cad 脚本面 95 op)。两个清单回答不同问题,
8
+ * 互不为超集——禁止用本文件的名字反推脚本面能力。
5
9
  */
6
10
  export { viewCamera } from '../view/index.js';
7
11
  export { projectView } from '../view/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/api/generated/view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA","sourcesContent":["/**\n * generated/view.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * view 模块:3 个投影符号。\n */\nexport { viewCamera } from '../view/index.js'\n\nexport { projectView } from '../view/index.js'\n\nexport { projectSheet } from '../view/index.js'\n"]}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/api/generated/view.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA","sourcesContent":["/**\n * generated/view.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * view 模块:3 个投影符号。\n * A6(2026-10-06)口径指认:本文件是 brepjs 投影面的**增量**清单;脚本面全集的\n * 权威来源是 generated/script-face.ts + gen-symbol-table 产物\n * lang/symbol-table.generated.ts(cad 脚本面 95 op)。两个清单回答不同问题,\n * 互不为超集——禁止用本文件的名字反推脚本面能力。\n */\nexport { viewCamera } from '../view/index.js'\n\nexport { projectView } from '../view/index.js'\n\nexport { projectSheet } from '../view/index.js'\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
3
+ * `src/core/constants.ts`(同源复制,签名不变)。
4
+ */
5
+ /** Maximum hash code value for kernel shape hashing (2^31 - 1). */
6
+ export declare const HASH_CODE_MAX = 2147483647;
7
+ /** Multiply degrees by this constant to convert to radians. */
8
+ export declare const DEG2RAD: number;
9
+ /** Multiply radians by this constant to convert to degrees. */
10
+ export declare const RAD2DEG: number;
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/api/geom-types/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mEAAmE;AACnE,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,+DAA+D;AAC/D,eAAO,MAAM,OAAO,QAAgB,CAAC;AAErC,+DAA+D;AAC/D,eAAO,MAAM,OAAO,QAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs
3
+ * `src/core/constants.ts`(同源复制,签名不变)。
4
+ */
5
+ /** Maximum hash code value for kernel shape hashing (2^31 - 1). */
6
+ export const HASH_CODE_MAX = 2147483647;
7
+ /** Multiply degrees by this constant to convert to radians. */
8
+ export const DEG2RAD = Math.PI / 180;
9
+ /** Multiply radians by this constant to convert to degrees. */
10
+ export const RAD2DEG = 180 / Math.PI;
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/api/geom-types/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC","sourcesContent":["/**\n * 第一方模块(2026-09-25 core-decouple Phase 1):复制自 brepjs\n * `src/core/constants.ts`(同源复制,签名不变)。\n */\n\n/** Maximum hash code value for kernel shape hashing (2^31 - 1). */\nexport const HASH_CODE_MAX = 2147483647;\n\n/** Multiply degrees by this constant to convert to radians. */\nexport const DEG2RAD = Math.PI / 180;\n\n/** Multiply radians by this constant to convert to degrees. */\nexport const RAD2DEG = 180 / Math.PI;\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * BREP-TS compatibility surface (P21) — 2026-09-25 core-decouple rewrite.
3
+ *
4
+ * The old BREP TS tree (packages/brepjs) is deleted (裁决 9). Every
5
+ * op projection (primitives / booleans / evolutions / topology queries /
6
+ * sketching DSL / raw 2D-morph ports) is gone with it — those symbols have no
7
+ * receiver (裁决 1). What remains in this module is the ④ group only: the pure
8
+ * combinators / types inlined into core (§5.2) — Result, vectors, planes,
9
+ * errors, constants — which stay flat-exported from the core facade for
10
+ * library authors (import { ok, vecAdd } from '@faicad/faijs').
11
+ */
12
+ export { ok, err, isOk, isErr, unwrap, unwrapOr, map, andThen, } from '../../result/result.js';
13
+ export type { Result, Ok, Err } from '../../result/result.js';
14
+ export { vecAdd, vecSub, vecScale, vecDot, vecCross, vecLength, vecNormalize, } from './vecOps.js';
15
+ export { createPlane, createNamedPlane, resolvePlane, } from './planeOps.js';
16
+ export { kernelError, validationError } from '../../result/errors.js';
17
+ export type { BrepError } from '../../result/errors.js';
18
+ export { DEG2RAD, RAD2DEG } from './constants.js';
19
+ export type { Plane, PlaneName, PlaneInput } from './planeTypes.js';
20
+ export type { Vec3, PointInput } from './types.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/geom-types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EACL,EAAE,EACF,GAAG,EACH,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,OAAO,GACR,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE1D,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;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE9C,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEhE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * BREP-TS compatibility surface (P21) — 2026-09-25 core-decouple rewrite.
3
+ *
4
+ * The old BREP TS tree (packages/brepjs) is deleted (裁决 9). Every
5
+ * op projection (primitives / booleans / evolutions / topology queries /
6
+ * sketching DSL / raw 2D-morph ports) is gone with it — those symbols have no
7
+ * receiver (裁决 1). What remains in this module is the ④ group only: the pure
8
+ * combinators / types inlined into core (§5.2) — Result, vectors, planes,
9
+ * errors, constants — which stay flat-exported from the core facade for
10
+ * library authors (import { ok, vecAdd } from '@faicad/faijs').
11
+ */
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ // ④ combinators / pure helpers / types(2026-09-25 core-decouple:op 投影面
14
+ // ① ② ③ ⑤ 已随旧子包删除;④ 全部为 core 内联实现,保留为本文件的
15
+ // 唯一内容。旧句柄类型(Vertex/Edge/…/Shape3D/ValidSolid)随裁决 9 删除)
16
+ // ─────────────────────────────────────────────────────────────────────────────
17
+ export { ok, err, isOk, isErr, unwrap, unwrapOr, map, andThen, } from '../../result/result.js';
18
+ export { vecAdd, vecSub, vecScale, vecDot, vecCross, vecLength, vecNormalize, } from './vecOps.js';
19
+ export { createPlane, createNamedPlane, resolvePlane, } from './planeOps.js';
20
+ export { kernelError, validationError } from '../../result/errors.js';
21
+ export { DEG2RAD, RAD2DEG } from './constants.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/geom-types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,gFAAgF;AAChF,uEAAuE;AACvE,0CAA0C;AAC1C,wDAAwD;AACxD,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 old 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// ① ② ③ ⑤ 已随旧子包删除;④ 全部为 core 内联实现,保留为本文件的\n// 唯一内容。旧句柄类型(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/geom-types/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/geom-types/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/geom-types/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/geom-types/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/geom-types/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/geom-types/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"]}