brepjs 12.8.2 → 12.10.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 (294) hide show
  1. package/dist/2d/blueprints/{approximations.d.ts → blueprintApproximations.d.ts} +1 -1
  2. package/dist/2d/blueprints/blueprintApproximations.d.ts.map +1 -0
  3. package/dist/2d/blueprints/{customCorners.d.ts → blueprintCustomCorners.d.ts} +1 -1
  4. package/dist/2d/blueprints/blueprintCustomCorners.d.ts.map +1 -0
  5. package/dist/2d/blueprints/blueprintFns.d.ts +17 -3
  6. package/dist/2d/blueprints/blueprintFns.d.ts.map +1 -1
  7. package/dist/2d/blueprints/{offset.d.ts → blueprintOffset.d.ts} +1 -1
  8. package/dist/2d/blueprints/blueprintOffset.d.ts.map +1 -0
  9. package/dist/2d/blueprints/index.d.ts +4 -4
  10. package/dist/2d/blueprints/index.d.ts.map +1 -1
  11. package/dist/2d/lib/Curve2D.d.ts +1 -1
  12. package/dist/2d/lib/Curve2D.d.ts.map +1 -1
  13. package/dist/2d/lib/svgPath.d.ts.map +1 -1
  14. package/dist/2d/lib/vectorOperations.d.ts +4 -1
  15. package/dist/2d/lib/vectorOperations.d.ts.map +1 -1
  16. package/dist/2d-CzEysb7A.js +108 -0
  17. package/dist/2d-DCxS_sb_.cjs +107 -0
  18. package/dist/2d.cjs +24 -88
  19. package/dist/2d.d.ts +1 -1
  20. package/dist/2d.js +34 -99
  21. package/dist/{Blueprint-CQ28WJhz.cjs → Blueprint-BoC0DsDm.cjs} +15 -45
  22. package/dist/{Blueprint-DbVaf6k7.js → Blueprint-CQNRtmYG.js} +33 -63
  23. package/dist/{boolean2D-y3E92F0u.js → boolean2D-DXAt4GAK.js} +132 -62
  24. package/dist/{boolean2D-0blbVtJ8.cjs → boolean2D-N9Pgumgg.cjs} +112 -42
  25. package/dist/{booleanFns-BCTjYZAg.js → booleanFns-BXV7Oh0h.js} +53 -50
  26. package/dist/{booleanFns-gmsX3Cv2.cjs → booleanFns-CxArUj_q.cjs} +43 -40
  27. package/dist/brepjs.cjs +448 -379
  28. package/dist/brepjs.js +1634 -1563
  29. package/dist/core/dimensionTypes.d.ts +52 -0
  30. package/dist/core/dimensionTypes.d.ts.map +1 -0
  31. package/dist/core/disposal.d.ts +18 -0
  32. package/dist/core/disposal.d.ts.map +1 -1
  33. package/dist/core/errors.d.ts +7 -8
  34. package/dist/core/errors.d.ts.map +1 -1
  35. package/dist/core/kernelErrorTranslation.d.ts +15 -0
  36. package/dist/core/kernelErrorTranslation.d.ts.map +1 -0
  37. package/dist/core/planeOps.d.ts +14 -0
  38. package/dist/core/planeOps.d.ts.map +1 -1
  39. package/dist/core/result.d.ts +4 -0
  40. package/dist/core/result.d.ts.map +1 -1
  41. package/dist/core/shapeTypes.d.ts +14 -146
  42. package/dist/core/shapeTypes.d.ts.map +1 -1
  43. package/dist/core/{definitionMaps.d.ts → typeDiscriminants.d.ts} +5 -1
  44. package/dist/core/typeDiscriminants.d.ts.map +1 -0
  45. package/dist/core/validityTypes.d.ts +100 -0
  46. package/dist/core/validityTypes.d.ts.map +1 -0
  47. package/dist/core.cjs +52 -11
  48. package/dist/core.d.ts +1 -1
  49. package/dist/core.d.ts.map +1 -1
  50. package/dist/core.js +119 -76
  51. package/dist/{curveFns-BZngcnQ1.cjs → curveFns-CWZRuXQ3.cjs} +2 -2
  52. package/dist/{curveFns-mROFhiuG.js → curveFns-OmbtFSG8.js} +14 -14
  53. package/dist/{drawFns-Bwakrq7w.js → drawFns-8S0ULGRj.js} +146 -118
  54. package/dist/{drawFns-CjRc1NfQ.cjs → drawFns-voV2wEp8.cjs} +153 -125
  55. package/dist/{faceFns-B8GnxjdY.js → faceFns-Bn2seBfp.js} +16 -24
  56. package/dist/{faceFns-DB1Fc5gy.cjs → faceFns-CmIrjdt1.cjs} +2 -10
  57. package/dist/{helpers-X0juxnwj.js → helpers-CEn618MW.js} +89 -21
  58. package/dist/{helpers-C8NoT0Wu.cjs → helpers-mipaxDTy.cjs} +77 -9
  59. package/dist/index.d.ts +20 -19
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/io/gltfImportFns.d.ts +18 -0
  62. package/dist/io/gltfImportFns.d.ts.map +1 -0
  63. package/dist/io/ioUtils.d.ts +16 -0
  64. package/dist/io/ioUtils.d.ts.map +1 -0
  65. package/dist/io/objImportFns.d.ts.map +1 -1
  66. package/dist/io/threemfImportFns.d.ts.map +1 -1
  67. package/dist/io.cjs +4 -4
  68. package/dist/io.js +4 -4
  69. package/dist/kernel/brepkit/booleanOps.d.ts +23 -0
  70. package/dist/kernel/brepkit/booleanOps.d.ts.map +1 -0
  71. package/dist/kernel/brepkit/constructionOps.d.ts +51 -0
  72. package/dist/kernel/brepkit/constructionOps.d.ts.map +1 -0
  73. package/dist/kernel/brepkit/evolutionOps.d.ts +31 -0
  74. package/dist/kernel/brepkit/evolutionOps.d.ts.map +1 -0
  75. package/dist/kernel/brepkit/geometryOps.d.ts +56 -0
  76. package/dist/kernel/brepkit/geometryOps.d.ts.map +1 -0
  77. package/dist/kernel/brepkit/helpers.d.ts +84 -0
  78. package/dist/kernel/brepkit/helpers.d.ts.map +1 -0
  79. package/dist/kernel/brepkit/internalOps.d.ts +28 -0
  80. package/dist/kernel/brepkit/internalOps.d.ts.map +1 -0
  81. package/dist/kernel/brepkit/ioOps.d.ts +43 -0
  82. package/dist/kernel/brepkit/ioOps.d.ts.map +1 -0
  83. package/dist/kernel/brepkit/measureOps.d.ts +30 -0
  84. package/dist/kernel/brepkit/measureOps.d.ts.map +1 -0
  85. package/dist/kernel/brepkit/meshOps.d.ts +7 -0
  86. package/dist/kernel/brepkit/meshOps.d.ts.map +1 -0
  87. package/dist/kernel/brepkit/modifierOps.d.ts +15 -0
  88. package/dist/kernel/brepkit/modifierOps.d.ts.map +1 -0
  89. package/dist/kernel/brepkit/repairOps.d.ts +14 -0
  90. package/dist/kernel/brepkit/repairOps.d.ts.map +1 -0
  91. package/dist/kernel/brepkit/sweepOps.d.ts +27 -0
  92. package/dist/kernel/brepkit/sweepOps.d.ts.map +1 -0
  93. package/dist/kernel/brepkit/topologyOps.d.ts +16 -0
  94. package/dist/kernel/brepkit/topologyOps.d.ts.map +1 -0
  95. package/dist/kernel/brepkit/transformOps.d.ts +14 -0
  96. package/dist/kernel/brepkit/transformOps.d.ts.map +1 -0
  97. package/dist/kernel/brepkitAdapter.d.ts +1 -1
  98. package/dist/kernel/brepkitAdapter.d.ts.map +1 -1
  99. package/dist/kernel/brepkitWasmTypes.d.ts +8 -0
  100. package/dist/kernel/brepkitWasmTypes.d.ts.map +1 -1
  101. package/dist/kernel/defaultAdapter.d.ts.map +1 -1
  102. package/dist/kernel/extendedConstructorOps.d.ts +9 -1
  103. package/dist/kernel/extendedConstructorOps.d.ts.map +1 -1
  104. package/dist/kernel/index.d.ts +1 -0
  105. package/dist/kernel/index.d.ts.map +1 -1
  106. package/dist/kernel/interfaces/boolean-ops.d.ts +25 -0
  107. package/dist/kernel/interfaces/boolean-ops.d.ts.map +1 -0
  108. package/dist/kernel/interfaces/builder-ops.d.ts +57 -0
  109. package/dist/kernel/interfaces/builder-ops.d.ts.map +1 -0
  110. package/dist/kernel/interfaces/core.d.ts +30 -0
  111. package/dist/kernel/interfaces/core.d.ts.map +1 -0
  112. package/dist/kernel/interfaces/curve-ops.d.ts +41 -0
  113. package/dist/kernel/interfaces/curve-ops.d.ts.map +1 -0
  114. package/dist/kernel/interfaces/evolution-ops.d.ts +19 -0
  115. package/dist/kernel/interfaces/evolution-ops.d.ts.map +1 -0
  116. package/dist/kernel/interfaces/index.d.ts +37 -0
  117. package/dist/kernel/interfaces/index.d.ts.map +1 -0
  118. package/dist/kernel/interfaces/io-ops.d.ts +66 -0
  119. package/dist/kernel/interfaces/io-ops.d.ts.map +1 -0
  120. package/dist/kernel/interfaces/measure-ops.d.ts +35 -0
  121. package/dist/kernel/interfaces/measure-ops.d.ts.map +1 -0
  122. package/dist/kernel/interfaces/mesh-ops.d.ts +21 -0
  123. package/dist/kernel/interfaces/mesh-ops.d.ts.map +1 -0
  124. package/dist/kernel/interfaces/modifier-ops.d.ts +22 -0
  125. package/dist/kernel/interfaces/modifier-ops.d.ts.map +1 -0
  126. package/dist/kernel/interfaces/primitive-ops.d.ts +13 -0
  127. package/dist/kernel/interfaces/primitive-ops.d.ts.map +1 -0
  128. package/dist/kernel/interfaces/repair-ops.d.ts +36 -0
  129. package/dist/kernel/interfaces/repair-ops.d.ts.map +1 -0
  130. package/dist/kernel/interfaces/surface-ops.d.ts +50 -0
  131. package/dist/kernel/interfaces/surface-ops.d.ts.map +1 -0
  132. package/dist/kernel/interfaces/sweep-ops.d.ts +49 -0
  133. package/dist/kernel/interfaces/sweep-ops.d.ts.map +1 -0
  134. package/dist/kernel/interfaces/topology-ops.d.ts +30 -0
  135. package/dist/kernel/interfaces/topology-ops.d.ts.map +1 -0
  136. package/dist/kernel/interfaces/transform-ops.d.ts +35 -0
  137. package/dist/kernel/interfaces/transform-ops.d.ts.map +1 -0
  138. package/dist/kernel/modifierOps.d.ts +2 -2
  139. package/dist/kernel/modifierOps.d.ts.map +1 -1
  140. package/dist/kernel/types.d.ts +2 -446
  141. package/dist/kernel/types.d.ts.map +1 -1
  142. package/dist/measurement/measureCache.d.ts +11 -9
  143. package/dist/measurement/measureCache.d.ts.map +1 -1
  144. package/dist/measurement/measureFns.d.ts +24 -71
  145. package/dist/measurement/measureFns.d.ts.map +1 -1
  146. package/dist/measurement/measureTypes.d.ts +30 -0
  147. package/dist/measurement/measureTypes.d.ts.map +1 -0
  148. package/dist/{measurement-D8EJ694A.js → measurement-fJWDEpz0.js} +53 -34
  149. package/dist/measurement-ph-kanQ7.cjs +154 -0
  150. package/dist/measurement.cjs +2 -1
  151. package/dist/measurement.d.ts +1 -1
  152. package/dist/measurement.d.ts.map +1 -1
  153. package/dist/measurement.js +4 -3
  154. package/dist/{meshFns-BnV0ZR8w.cjs → meshFns-B9p4EVV8.cjs} +4 -4
  155. package/dist/{meshFns-nQjK38EC.js → meshFns-D0qIoxm-.js} +3 -3
  156. package/dist/operations/compoundOpsFns.d.ts +38 -0
  157. package/dist/operations/compoundOpsFns.d.ts.map +1 -0
  158. package/dist/operations/convexHullFns.d.ts +21 -0
  159. package/dist/operations/convexHullFns.d.ts.map +1 -0
  160. package/dist/operations/extrudeFns.d.ts +2 -93
  161. package/dist/operations/extrudeFns.d.ts.map +1 -1
  162. package/dist/operations/guidedSweepFns.d.ts +3 -22
  163. package/dist/operations/guidedSweepFns.d.ts.map +1 -1
  164. package/dist/operations/multiSweepFns.d.ts +3 -29
  165. package/dist/operations/multiSweepFns.d.ts.map +1 -1
  166. package/dist/operations/roofFns.d.ts +2 -2
  167. package/dist/operations/roofFns.d.ts.map +1 -1
  168. package/dist/operations/straightSkeleton.d.ts.map +1 -1
  169. package/dist/operations/sweepFns.d.ts +121 -0
  170. package/dist/operations/sweepFns.d.ts.map +1 -0
  171. package/dist/{operations-BfbkK6DU.js → operations-DX_qy_TB.js} +29 -177
  172. package/dist/{operations-CYpmLSC4.cjs → operations-Ds4xoyxR.cjs} +6 -154
  173. package/dist/operations.cjs +6 -10
  174. package/dist/operations.d.ts +0 -2
  175. package/dist/operations.d.ts.map +1 -1
  176. package/dist/operations.js +26 -30
  177. package/dist/originTrackingFns-BOCAMfd0.js +137 -0
  178. package/dist/originTrackingFns-SPU7ly3_.cjs +136 -0
  179. package/dist/query/edgeFinder.d.ts +4 -14
  180. package/dist/query/edgeFinder.d.ts.map +1 -1
  181. package/dist/query/faceFinder.d.ts +4 -14
  182. package/dist/query/faceFinder.d.ts.map +1 -1
  183. package/dist/query/finderCore.d.ts +6 -0
  184. package/dist/query/finderCore.d.ts.map +1 -1
  185. package/dist/query/shapeFinders.d.ts +32 -0
  186. package/dist/query/shapeFinders.d.ts.map +1 -0
  187. package/dist/query/wireFinder.d.ts +4 -9
  188. package/dist/query/wireFinder.d.ts.map +1 -1
  189. package/dist/query.cjs +54 -32
  190. package/dist/query.js +56 -34
  191. package/dist/{result-BaSD1fqR.js → result-CoDaWsvc.js} +48 -90
  192. package/dist/{result-fAX0OZzI.cjs → result-DULetAht.cjs} +17 -59
  193. package/dist/result.cjs +1 -1
  194. package/dist/result.js +23 -23
  195. package/dist/shapeFns-BZ6zk7nd.js +34 -0
  196. package/dist/shapeFns-bRkrwI8R.cjs +33 -0
  197. package/dist/{shapeTypes-7xEam9Ri.cjs → shapeTypes-T0n6mRmt.cjs} +170 -137
  198. package/dist/{shapeTypes-CpSaBLDv.js → shapeTypes-dhhm-T5A.js} +205 -172
  199. package/dist/sketching/CompoundSketch.d.ts +4 -4
  200. package/dist/sketching/CompoundSketch.d.ts.map +1 -1
  201. package/dist/sketching/Sketch.d.ts +3 -3
  202. package/dist/sketching/Sketch.d.ts.map +1 -1
  203. package/dist/sketching/Sketcher.d.ts.map +1 -1
  204. package/dist/sketching/Sketches.d.ts +1 -1
  205. package/dist/sketching/Sketches.d.ts.map +1 -1
  206. package/dist/sketching/draw.d.ts +1 -20
  207. package/dist/sketching/draw.d.ts.map +1 -1
  208. package/dist/sketching/draw3d.d.ts +22 -0
  209. package/dist/sketching/draw3d.d.ts.map +1 -0
  210. package/dist/sketching/sketchFns.d.ts +3 -3
  211. package/dist/sketching/sketchFns.d.ts.map +1 -1
  212. package/dist/sketching/sketchLib.d.ts +2 -2
  213. package/dist/sketching/sketchLib.d.ts.map +1 -1
  214. package/dist/sketching.cjs +2 -2
  215. package/dist/sketching.d.ts +2 -1
  216. package/dist/sketching.d.ts.map +1 -1
  217. package/dist/sketching.js +2 -2
  218. package/dist/{solidBuilders-994_MQwB.cjs → solidBuilders-BEAoLYvr.cjs} +3 -3
  219. package/dist/{solidBuilders-DmwhTCCd.js → solidBuilders-tVmD3R7Z.js} +12 -12
  220. package/dist/{surfaceBuilders-5VA34a3_.cjs → surfaceBuilders-DYS8AMSS.cjs} +3 -3
  221. package/dist/{surfaceBuilders-nQdJ56fe.js → surfaceBuilders-Dl0ATFbO.js} +15 -15
  222. package/dist/sweepFns-BKnQs59A.js +215 -0
  223. package/dist/sweepFns-COqeYIUp.cjs +214 -0
  224. package/dist/text/textBlueprints.d.ts +4 -3
  225. package/dist/text/textBlueprints.d.ts.map +1 -1
  226. package/dist/topology/booleanFns.d.ts.map +1 -1
  227. package/dist/topology/cast.d.ts +1 -5
  228. package/dist/topology/cast.d.ts.map +1 -1
  229. package/dist/topology/compoundOpsFns.d.ts +3 -35
  230. package/dist/topology/compoundOpsFns.d.ts.map +1 -1
  231. package/dist/topology/curveFns.d.ts +1 -1
  232. package/dist/topology/curveFns.d.ts.map +1 -1
  233. package/dist/topology/index.d.ts +2 -3
  234. package/dist/topology/index.d.ts.map +1 -1
  235. package/dist/topology/{colorFns.d.ts → metadata/colorFns.d.ts} +2 -2
  236. package/dist/topology/metadata/colorFns.d.ts.map +1 -0
  237. package/dist/topology/{faceTagFns.d.ts → metadata/faceTagFns.d.ts} +2 -2
  238. package/dist/topology/metadata/faceTagFns.d.ts.map +1 -0
  239. package/dist/topology/metadata/metadataPropagation.d.ts +30 -0
  240. package/dist/topology/metadata/metadataPropagation.d.ts.map +1 -0
  241. package/dist/topology/metadata/originTrackingFns.d.ts +23 -0
  242. package/dist/topology/metadata/originTrackingFns.d.ts.map +1 -0
  243. package/dist/topology/modifierFns.d.ts.map +1 -1
  244. package/dist/topology/shapeFns.d.ts +6 -120
  245. package/dist/topology/shapeFns.d.ts.map +1 -1
  246. package/dist/topology/topologyQueryFns.d.ts +67 -0
  247. package/dist/topology/topologyQueryFns.d.ts.map +1 -0
  248. package/dist/topology/transformFns.d.ts +49 -0
  249. package/dist/topology/transformFns.d.ts.map +1 -0
  250. package/dist/topology/wrapperFns.d.ts.map +1 -1
  251. package/dist/{topology-C7x98OVn.js → topology-C1oUQXZS.js} +235 -50
  252. package/dist/{topology-ANwCzGL8.cjs → topology-xyDYbkHW.cjs} +205 -20
  253. package/dist/topology.cjs +18 -17
  254. package/dist/topology.js +97 -96
  255. package/dist/topologyQueryFns-0IptTUCo.cjs +118 -0
  256. package/dist/topologyQueryFns-Dj4Xd5kx.js +119 -0
  257. package/dist/{types-CWDdqcrq.js → types-CcKqsmd0.js} +2 -2
  258. package/dist/utils/precisionRound.d.ts +4 -0
  259. package/dist/utils/precisionRound.d.ts.map +1 -1
  260. package/dist/utils/vec2d.d.ts +5 -0
  261. package/dist/utils/vec2d.d.ts.map +1 -1
  262. package/dist/{vecOps-ZDdZWbwT.js → vecOps-LTN--A58.js} +15 -15
  263. package/dist/{vectors-Bx8wkNui.js → vectors-B8juLsQB.js} +15 -7
  264. package/dist/{vectors-D_IiZx0q.cjs → vectors-I_0zdD3O.cjs} +9 -1
  265. package/dist/vectors.cjs +1 -1
  266. package/dist/vectors.js +23 -23
  267. package/package.json +9 -9
  268. package/dist/2d/blueprints/approximations.d.ts.map +0 -1
  269. package/dist/2d/blueprints/customCorners.d.ts.map +0 -1
  270. package/dist/2d/blueprints/offset.d.ts.map +0 -1
  271. package/dist/core/definitionMaps.d.ts.map +0 -1
  272. package/dist/core/geometryHelpers.d.ts +0 -30
  273. package/dist/core/geometryHelpers.d.ts.map +0 -1
  274. package/dist/core/memory.d.ts +0 -6
  275. package/dist/core/memory.d.ts.map +0 -1
  276. package/dist/core/typeErrors.d.ts +0 -17
  277. package/dist/core/typeErrors.d.ts.map +0 -1
  278. package/dist/cornerFinder-Ckz-mPHE.js +0 -59
  279. package/dist/cornerFinder-ZmOyOOsh.cjs +0 -58
  280. package/dist/loft-Bhw-FMoL.js +0 -228
  281. package/dist/loft-hp3pc1M7.cjs +0 -227
  282. package/dist/measurement-BoNTUBAp.cjs +0 -135
  283. package/dist/operations/extrude.d.ts +0 -72
  284. package/dist/operations/extrude.d.ts.map +0 -1
  285. package/dist/operations/loft.d.ts +0 -33
  286. package/dist/operations/loft.d.ts.map +0 -1
  287. package/dist/shapeFns-C2SnNvdH.cjs +0 -468
  288. package/dist/shapeFns-FDuKkrDR.js +0 -469
  289. package/dist/topology/colorFns.d.ts.map +0 -1
  290. package/dist/topology/faceTagFns.d.ts.map +0 -1
  291. package/dist/utils/round2.d.ts +0 -3
  292. package/dist/utils/round2.d.ts.map +0 -1
  293. package/dist/utils/round5.d.ts +0 -3
  294. package/dist/utils/round5.d.ts.map +0 -1
@@ -43,22 +43,22 @@ var __callDispose = (stack, error, hasError) => {
43
43
  };
44
44
  return next();
45
45
  };
46
- import { b as bug, v as unwrap, h as isOk, C as safeIndex, e as err, z as validationError, o as ok } from "./result-BaSD1fqR.js";
47
- import { r as resolvePlane, b as planeToWorld } from "./vectors-Bx8wkNui.js";
48
- import { a as toVec3 } from "./types-CWDdqcrq.js";
49
- import { j as vecNormalize, b as vecCross, o as vecSub, n as vecScale, m as vecRotate, D as DEG2RAD, g as vecLength } from "./vecOps-ZDdZWbwT.js";
50
- import { b as Flatbush, B as BaseSketcher2d, S as Sketch, r as roundedRectangleBlueprint, c as Blueprints, C as CompoundBlueprint, d as cut2D, i as intersectCurves, f as fuse2D, m as make2dOffset, e as filletCurves, g as chamferCurves, o as organiseBlueprints, a as BlueprintSketcher, h as intersect2D, p as polysidesBlueprint } from "./boolean2D-y3E92F0u.js";
51
- import { d as downcast, c as cast, e as faceCenter, n as normalAt, o as outerWire } from "./faceFns-B8GnxjdY.js";
52
- import { o as offsetWire2D } from "./curveFns-mROFhiuG.js";
53
- import { b as assembleWire, d as addHolesInFace, m as makeFace, e as makeCircle, f as makeEllipse, c as makeHelix, g as makeBSplineApproximation } from "./surfaceBuilders-nQdJ56fe.js";
54
- import { D as DisposalScope, G as createWire, I as createFace, B as getKernel, k as isFace, c as castShape } from "./shapeTypes-CpSaBLDv.js";
55
- import { c as curvesAsEdgesOnPlane, m as mirror, B as Blueprint, C as Curve2D, a as make2dSegmentCurve, b as make2dArcFromCenter, d as approximateAsSvgCompatibleCurve, e as BoundingBox2d, f as edgeToCurve, g as make2dInerpolatedBSplineCurve, h as make2dCircle, i as make2dEllipse, j as deserializeCurve2D } from "./Blueprint-DbVaf6k7.js";
56
- import { s as samePoint$1, P as PRECISION_OFFSET, f as squareDistance2d, e as subtract2d, c as add2d } from "./helpers-X0juxnwj.js";
57
- import { d as getEdges } from "./shapeFns-FDuKkrDR.js";
58
- import { a as makeCompound, b as makeSolid } from "./solidBuilders-DmwhTCCd.js";
59
- import { b as basicFaceExtrusion, r as revolution, c as complexExtrude, t as twistExtrude } from "./loft-Bhw-FMoL.js";
46
+ import { d as bug, u as unwrap, c as isOk, s as safeIndex, e as err, v as validationError, B as BrepErrorCode, o as ok, i as ioError } from "./result-CoDaWsvc.js";
47
+ import { r as resolvePlane, p as planeToWorld } from "./vectors-B8juLsQB.js";
48
+ import { t as toVec3 } from "./types-CcKqsmd0.js";
49
+ import { c as vecNormalize, e as vecCross, f as vecSub, b as vecScale, g as vecRotate, D as DEG2RAD, v as vecLength } from "./vecOps-LTN--A58.js";
50
+ import { b as Flatbush, B as BaseSketcher2d, S as Sketch, e as extrude, r as revolve, c as roundedRectangleBlueprint, d as Blueprints, C as CompoundBlueprint, f as cut2D, i as intersectCurves, g as fuse2D, m as make2dOffset, h as filletCurves, j as chamferCurves, o as organiseBlueprints, a as BlueprintSketcher, k as intersect2D, p as polysidesBlueprint } from "./boolean2D-DXAt4GAK.js";
51
+ import { d as downcast, c as cast, a as faceCenter, n as normalAt, o as outerWire } from "./faceFns-Bn2seBfp.js";
52
+ import { o as offsetWire2D } from "./curveFns-OmbtFSG8.js";
53
+ import { D as DisposalScope, g as getKernel, l as createWire, n as createFace, o as isFace, c as castShape } from "./shapeTypes-dhhm-T5A.js";
54
+ import { a as assembleWire, b as addHolesInFace, m as makeFace, c as makeCircle, d as makeEllipse, e as makeHelix, f as makeBSplineApproximation } from "./surfaceBuilders-Dl0ATFbO.js";
55
+ import { c as curvesAsEdgesOnPlane, B as Blueprint, C as Curve2D, m as make2dSegmentCurve, a as make2dArcFromCenter, b as approximateAsSvgCompatibleCurve, d as BoundingBox2d, e as make2dInerpolatedBSplineCurve, f as make2dCircle, g as make2dEllipse, h as deserializeCurve2D, i as edgeToCurve } from "./Blueprint-CQNRtmYG.js";
56
+ import { s as samePoint$1, P as PRECISION_OFFSET, e as squareDistance2d, c as subtract2d, b as add2d } from "./helpers-CEn618MW.js";
57
+ import { d as getEdges } from "./topologyQueryFns-Dj4Xd5kx.js";
58
+ import { m as makeCompound, a as makeSolid } from "./solidBuilders-tVmD3R7Z.js";
59
+ import { c as complexExtrude, t as twistExtrude } from "./sweepFns-BKnQs59A.js";
60
60
  import opentype from "opentype.js";
61
- import { c as cornerFinder } from "./cornerFinder-Ckz-mPHE.js";
61
+ import { cornerFinder } from "./query.js";
62
62
  const stitchCurves = (curves, precision = 1e-7) => {
63
63
  const startPoints = new Flatbush(curves.length);
64
64
  curves.forEach((c) => {
@@ -174,7 +174,7 @@ class Sketcher extends BaseSketcher2d {
174
174
  const startToEndVector = vecNormalize(diff);
175
175
  const normal = vecCross(startToEndVector, this.plane.zDir);
176
176
  const clonedWrapped = unwrap(downcast(wire.wrapped));
177
- const mirroredRaw = mirror(clonedWrapped, normal, pointer3d);
177
+ const mirroredRaw = getKernel().mirror(clonedWrapped, toVec3(pointer3d), toVec3(normal));
178
178
  const mirroredWrapped = unwrap(downcast(mirroredRaw));
179
179
  const mirroredWire = createWire(mirroredWrapped);
180
180
  const combinedWire = unwrap(assembleWire([wire, mirroredWire]));
@@ -312,7 +312,7 @@ class CompoundSketch {
312
312
  )
313
313
  );
314
314
  } else {
315
- result = basicFaceExtrusion(this.face(), extrusionVec);
315
+ result = unwrap(extrude(this.face(), extrusionVec));
316
316
  }
317
317
  return result;
318
318
  }
@@ -321,13 +321,9 @@ class CompoundSketch {
321
321
  * (defaults to the sketch origin)
322
322
  */
323
323
  revolve(revolutionAxis, { origin } = {}) {
324
- return unwrap(
325
- revolution(
326
- this.face(),
327
- origin ? toVec3(origin) : this.outerSketch.defaultOrigin,
328
- revolutionAxis
329
- )
330
- );
324
+ const center = origin ? toVec3(origin) : this.outerSketch.defaultOrigin;
325
+ const dir = revolutionAxis ? toVec3(revolutionAxis) : [0, 0, 1];
326
+ return unwrap(revolve(this.face(), center, dir));
331
327
  }
332
328
  /** Loft between this compound sketch and another with matching sub-sketch counts. */
333
329
  loftWith(otherCompound, loftConfig) {
@@ -338,7 +334,9 @@ class CompoundSketch {
338
334
  );
339
335
  const shells = this.sketches.map((base, cIndex) => {
340
336
  const outer = otherCompound.sketches[cIndex];
341
- return base.clone().loftWith(outer.clone(), { ruled: loftConfig.ruled }, true);
337
+ const loftOpts = {};
338
+ if (loftConfig.ruled !== void 0) loftOpts.ruled = loftConfig.ruled;
339
+ return base.clone().loftWith(outer.clone(), loftOpts, true);
342
340
  });
343
341
  const baseFaceRaw = this.face();
344
342
  const baseFace = createFace(unwrap(downcast(baseFaceRaw.wrapped)));
@@ -791,7 +789,7 @@ function wrapSketchDataArray(dataArr) {
791
789
  const FONT_REGISTER = {};
792
790
  async function loadFont(fontPath, fontFamily = "default", force = false) {
793
791
  if (!force && FONT_REGISTER[fontFamily]) {
794
- return FONT_REGISTER[fontFamily];
792
+ return ok(FONT_REGISTER[fontFamily]);
795
793
  }
796
794
  let fontData;
797
795
  if (typeof fontPath === "string") {
@@ -799,14 +797,20 @@ async function loadFont(fontPath, fontFamily = "default", force = false) {
799
797
  try {
800
798
  response = await fetch(fontPath);
801
799
  } catch (e) {
802
- throw new Error(
803
- `Failed to fetch font from ${fontPath}: ${e instanceof Error ? e.message : String(e)}`,
804
- { cause: e }
800
+ return err(
801
+ ioError(
802
+ BrepErrorCode.FONT_FETCH_FAILED,
803
+ `Failed to fetch font from ${fontPath}: ${e instanceof Error ? e.message : String(e)}`,
804
+ e
805
+ )
805
806
  );
806
807
  }
807
808
  if (!response.ok) {
808
- throw new Error(
809
- `Failed to fetch font from ${fontPath}: HTTP ${response.status} ${response.statusText}`
809
+ return err(
810
+ ioError(
811
+ BrepErrorCode.FONT_FETCH_FAILED,
812
+ `Failed to fetch font from ${fontPath}: HTTP ${response.status} ${response.statusText}`
813
+ )
810
814
  );
811
815
  }
812
816
  fontData = await response.arrayBuffer();
@@ -817,13 +821,17 @@ async function loadFont(fontPath, fontFamily = "default", force = false) {
817
821
  try {
818
822
  font = opentype.parse(fontData);
819
823
  } catch (e) {
820
- throw new Error(`Failed to parse font data: ${e instanceof Error ? e.message : String(e)}`, {
821
- cause: e
822
- });
824
+ return err(
825
+ ioError(
826
+ BrepErrorCode.FONT_PARSE_FAILED,
827
+ `Failed to parse font data: ${e instanceof Error ? e.message : String(e)}`,
828
+ e
829
+ )
830
+ );
823
831
  }
824
832
  FONT_REGISTER[fontFamily] = font;
825
833
  if (!FONT_REGISTER["default"]) FONT_REGISTER["default"] = font;
826
- return font;
834
+ return ok(font);
827
835
  }
828
836
  const getFont = (fontFamily = "default") => {
829
837
  return FONT_REGISTER[fontFamily];
@@ -883,107 +891,48 @@ function sketchText(text, textConfig, planeConfig = {}) {
883
891
  function textMetrics(text, options) {
884
892
  const fontSize = options?.fontSize ?? 1;
885
893
  const font = getFont(options?.fontFamily);
886
- if (!font) throw new Error("No font loaded. Call loadFont() first.");
894
+ if (!font) {
895
+ return err(
896
+ validationError(
897
+ BrepErrorCode.NO_FONT_LOADED,
898
+ "No font loaded. Call loadFont() first.",
899
+ void 0,
900
+ void 0,
901
+ "Load a font with loadFont() before calling textMetrics()"
902
+ )
903
+ );
904
+ }
887
905
  const width = font.getAdvanceWidth(text, fontSize);
888
906
  const scale = fontSize / font.unitsPerEm;
889
907
  const ascender = font.ascender * scale;
890
908
  const descender = font.descender * scale;
891
- return { width, height: ascender - descender, ascender, descender };
909
+ return ok({ width, height: ascender - descender, ascender, descender });
892
910
  }
893
911
  function fontMetrics(options) {
894
912
  const fontSize = options?.fontSize ?? 1;
895
913
  const font = getFont(options?.fontFamily);
896
- if (!font) throw new Error("No font loaded. Call loadFont() first.");
914
+ if (!font) {
915
+ return err(
916
+ validationError(
917
+ BrepErrorCode.NO_FONT_LOADED,
918
+ "No font loaded. Call loadFont() first.",
919
+ void 0,
920
+ void 0,
921
+ "Load a font with loadFont() before calling fontMetrics()"
922
+ )
923
+ );
924
+ }
897
925
  const scale = fontSize / font.unitsPerEm;
898
926
  const ascender = font.ascender * scale;
899
927
  const descender = font.descender * scale;
900
928
  const lineGap = (font.tables?.os2?.sTypoLineGap ?? 0) * scale;
901
- return {
929
+ return ok({
902
930
  ascender,
903
931
  descender,
904
932
  unitsPerEm: font.unitsPerEm,
905
933
  lineHeight: ascender - descender + lineGap
906
- };
907
- }
908
- const PROJECTION_PLANES = {
909
- XY: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
910
- XZ: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
911
- YZ: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
912
- YX: { dir: [0, 0, -1], xAxis: [0, 1, 0] },
913
- ZX: { dir: [0, 1, 0], xAxis: [0, 0, 1] },
914
- ZY: { dir: [-1, 0, 0], xAxis: [0, 0, 1] },
915
- front: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
916
- back: { dir: [0, 1, 0], xAxis: [-1, 0, 0] },
917
- right: { dir: [-1, 0, 0], xAxis: [0, -1, 0] },
918
- left: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
919
- bottom: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
920
- top: { dir: [0, 0, -1], xAxis: [1, 0, 0] }
921
- };
922
- function isProjectionPlane(plane) {
923
- return typeof plane === "string" && plane in PROJECTION_PLANES;
924
- }
925
- const getEdgesFromOc = (shape) => {
926
- if (shape.IsNull()) return [];
927
- return getEdges(castShape(shape));
928
- };
929
- function makeProjectedEdges(shape, camera, withHiddenLines = true) {
930
- const projected = getKernel().projectEdges(
931
- shape.wrapped,
932
- [...camera.position],
933
- [...camera.direction],
934
- [...camera.xAxis]
935
- );
936
- const visible = [
937
- ...getEdgesFromOc(projected.visible.sharp),
938
- ...getEdgesFromOc(projected.visible.smooth),
939
- ...getEdgesFromOc(projected.visible.outline)
940
- ];
941
- const hidden = withHiddenLines ? [
942
- ...getEdgesFromOc(projected.hidden.sharp),
943
- ...getEdgesFromOc(projected.hidden.smooth),
944
- ...getEdgesFromOc(projected.hidden.outline)
945
- ] : [];
946
- return { visible, hidden };
947
- }
948
- function createCamera(position = [0, 0, 0], direction = [0, 0, 1], xAxis) {
949
- const dirLength = vecLength(direction);
950
- if (dirLength < 1e-12) {
951
- return err(
952
- validationError("CAMERA_ZERO_DIRECTION", "Camera direction cannot be a zero-length vector")
953
- );
954
- }
955
- let resolvedXAxis;
956
- if (xAxis) {
957
- resolvedXAxis = vecNormalize(xAxis);
958
- } else {
959
- let cross = vecCross([0, 0, 1], direction);
960
- if (vecLength(cross) < 1e-12) {
961
- cross = vecCross([0, 1, 0], direction);
962
- }
963
- if (vecLength(cross) < 1e-12) {
964
- cross = vecCross([1, 0, 0], direction);
965
- }
966
- resolvedXAxis = vecNormalize(cross);
967
- }
968
- const yAxis = vecNormalize(vecCross(direction, resolvedXAxis));
969
- return ok({
970
- position,
971
- direction: vecNormalize(direction),
972
- xAxis: resolvedXAxis,
973
- yAxis
974
934
  });
975
935
  }
976
- function cameraLookAt(camera, target) {
977
- const direction = vecNormalize(vecSub(camera.position, target));
978
- return createCamera(camera.position, direction);
979
- }
980
- function cameraFromPlane(planeName) {
981
- const config = PROJECTION_PLANES[planeName];
982
- return createCamera([0, 0, 0], config.dir, config.xAxis);
983
- }
984
- function projectEdges(shape, camera, withHiddenLines = true) {
985
- return makeProjectedEdges(shape, camera, withHiddenLines);
986
- }
987
936
  function wrapBlueprintResult(shape, result) {
988
937
  if (shape instanceof Blueprint) {
989
938
  return wrapSketchData(result);
@@ -1266,6 +1215,85 @@ const drawParametricFunction = (func, { pointsCount = 400, start = 0, stop = 1,
1266
1215
  });
1267
1216
  return drawPointsInterpolation(points, approximationConfig, { closeShape });
1268
1217
  };
1218
+ const PROJECTION_PLANES = {
1219
+ XY: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
1220
+ XZ: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
1221
+ YZ: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
1222
+ YX: { dir: [0, 0, -1], xAxis: [0, 1, 0] },
1223
+ ZX: { dir: [0, 1, 0], xAxis: [0, 0, 1] },
1224
+ ZY: { dir: [-1, 0, 0], xAxis: [0, 0, 1] },
1225
+ front: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
1226
+ back: { dir: [0, 1, 0], xAxis: [-1, 0, 0] },
1227
+ right: { dir: [-1, 0, 0], xAxis: [0, -1, 0] },
1228
+ left: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
1229
+ bottom: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
1230
+ top: { dir: [0, 0, -1], xAxis: [1, 0, 0] }
1231
+ };
1232
+ function isProjectionPlane(plane) {
1233
+ return typeof plane === "string" && plane in PROJECTION_PLANES;
1234
+ }
1235
+ const getEdgesFromOc = (shape) => {
1236
+ if (shape.IsNull()) return [];
1237
+ return getEdges(castShape(shape));
1238
+ };
1239
+ function makeProjectedEdges(shape, camera, withHiddenLines = true) {
1240
+ const projected = getKernel().projectEdges(
1241
+ shape.wrapped,
1242
+ [...camera.position],
1243
+ [...camera.direction],
1244
+ [...camera.xAxis]
1245
+ );
1246
+ const visible = [
1247
+ ...getEdgesFromOc(projected.visible.sharp),
1248
+ ...getEdgesFromOc(projected.visible.smooth),
1249
+ ...getEdgesFromOc(projected.visible.outline)
1250
+ ];
1251
+ const hidden = withHiddenLines ? [
1252
+ ...getEdgesFromOc(projected.hidden.sharp),
1253
+ ...getEdgesFromOc(projected.hidden.smooth),
1254
+ ...getEdgesFromOc(projected.hidden.outline)
1255
+ ] : [];
1256
+ return { visible, hidden };
1257
+ }
1258
+ function createCamera(position = [0, 0, 0], direction = [0, 0, 1], xAxis) {
1259
+ const dirLength = vecLength(direction);
1260
+ if (dirLength < 1e-12) {
1261
+ return err(
1262
+ validationError("CAMERA_ZERO_DIRECTION", "Camera direction cannot be a zero-length vector")
1263
+ );
1264
+ }
1265
+ let resolvedXAxis;
1266
+ if (xAxis) {
1267
+ resolvedXAxis = vecNormalize(xAxis);
1268
+ } else {
1269
+ let cross = vecCross([0, 0, 1], direction);
1270
+ if (vecLength(cross) < 1e-12) {
1271
+ cross = vecCross([0, 1, 0], direction);
1272
+ }
1273
+ if (vecLength(cross) < 1e-12) {
1274
+ cross = vecCross([1, 0, 0], direction);
1275
+ }
1276
+ resolvedXAxis = vecNormalize(cross);
1277
+ }
1278
+ const yAxis = vecNormalize(vecCross(direction, resolvedXAxis));
1279
+ return ok({
1280
+ position,
1281
+ direction: vecNormalize(direction),
1282
+ xAxis: resolvedXAxis,
1283
+ yAxis
1284
+ });
1285
+ }
1286
+ function cameraLookAt(camera, target) {
1287
+ const direction = vecNormalize(vecSub(camera.position, target));
1288
+ return createCamera(camera.position, direction);
1289
+ }
1290
+ function cameraFromPlane(planeName) {
1291
+ const config = PROJECTION_PLANES[planeName];
1292
+ return createCamera([0, 0, 0], config.dir, config.xAxis);
1293
+ }
1294
+ function projectEdges(shape, camera, withHiddenLines = true) {
1295
+ return makeProjectedEdges(shape, camera, withHiddenLines);
1296
+ }
1269
1297
  const edgesToDrawing = (edges) => {
1270
1298
  var _stack = [];
1271
1299
  try {