brepjs 14.4.2 → 14.5.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 (71) hide show
  1. package/dist/2d.cjs +5 -5
  2. package/dist/2d.js +5 -5
  3. package/dist/{blueprint-B8rEQQdf.js → blueprint-DFEgFJYq.js} +5 -5
  4. package/dist/{blueprint-C1RD1rAU.cjs → blueprint-Dy7ARPXJ.cjs} +5 -5
  5. package/dist/{blueprintFns-BPoxNVIv.js → blueprintFns-Dc000lbc.js} +2 -2
  6. package/dist/{blueprintFns-Bilzq76z.cjs → blueprintFns-H2WJG5n2.cjs} +2 -2
  7. package/dist/{boolean2D-BhbQR9n5.cjs → boolean2D-Bsdb31mM.cjs} +7 -7
  8. package/dist/{boolean2D-CM-RGkmM.js → boolean2D-Bw-6hKCf.js} +7 -7
  9. package/dist/{booleanFns-DrG85G2W.cjs → booleanFns-BLDTDLSF.cjs} +51 -3
  10. package/dist/{booleanFns-Kn0xAXHX.js → booleanFns-D-U1zAnb.js} +46 -4
  11. package/dist/brepjs.cjs +20 -19
  12. package/dist/brepjs.js +20 -20
  13. package/dist/core.cjs +1 -1
  14. package/dist/core.js +1 -1
  15. package/dist/{cornerFinder-Cgz_yVTl.js → cornerFinder-B6rKiYRI.js} +1 -1
  16. package/dist/{cornerFinder-DcTlpavc.cjs → cornerFinder-TYHShzGu.cjs} +1 -1
  17. package/dist/{curveFns-DxeAWfSe.js → curveFns-DLlD1hFL.js} +1 -1
  18. package/dist/{curveFns-Dp1LYNHp.cjs → curveFns-DZQqrcS8.cjs} +1 -1
  19. package/dist/{drawFns-BWSOeCPI.js → drawFns-CUqNgF0l.js} +11 -11
  20. package/dist/{drawFns-B-V2Okjj.cjs → drawFns-CvuNVDJc.cjs} +11 -11
  21. package/dist/{extrudeFns-C4_eTRoy.cjs → extrudeFns-C2dk_SwT.cjs} +1 -1
  22. package/dist/{extrudeFns-BlynH9YI.js → extrudeFns-D83bFc01.js} +1 -1
  23. package/dist/{faceFns-B68JCstG.cjs → faceFns-DVeZQZfD.cjs} +1 -1
  24. package/dist/{faceFns-C4DVYLxO.js → faceFns-iqaDWGL2.js} +1 -1
  25. package/dist/{helpers-DeLTd7PH.cjs → helpers-DcOHqOfT.cjs} +5 -5
  26. package/dist/{helpers-B_k7J_4D.js → helpers-HH_F9BEl.js} +5 -5
  27. package/dist/{historyFns-D-1_ncCz.cjs → historyFns-By2rvfdT.cjs} +4 -4
  28. package/dist/{historyFns-cW_Dcz2M.js → historyFns-C5LVTRMt.js} +4 -4
  29. package/dist/{importFns-BLbkoMr-.js → importFns-CAjnoUsl.js} +2 -2
  30. package/dist/{importFns-Be58G9Qg.cjs → importFns-Cg8ra1G0.cjs} +2 -2
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/io.cjs +2 -2
  34. package/dist/io.js +2 -2
  35. package/dist/kernel/interfaces/booleanOps.d.ts +8 -0
  36. package/dist/kernel/interfaces/booleanOps.d.ts.map +1 -1
  37. package/dist/kernel/occt/booleanPipelineOps.d.ts +17 -0
  38. package/dist/kernel/occt/booleanPipelineOps.d.ts.map +1 -0
  39. package/dist/kernel/occt/defaultAdapter.d.ts +7 -0
  40. package/dist/kernel/occt/defaultAdapter.d.ts.map +1 -1
  41. package/dist/{measureFns-zT6IVHAu.js → measureFns-C0ExdINB.js} +2 -2
  42. package/dist/{measureFns-CGnA2Hz1.cjs → measureFns-DSukVpI5.cjs} +2 -2
  43. package/dist/measurement.cjs +1 -1
  44. package/dist/measurement.js +1 -1
  45. package/dist/{meshFns-BDJ7GT7C.js → meshFns-B1hHBGHc.js} +2 -2
  46. package/dist/{meshFns-B6Q3ymfV.cjs → meshFns-GMWq80aT.cjs} +2 -2
  47. package/dist/operations.cjs +2 -2
  48. package/dist/operations.js +2 -2
  49. package/dist/{primitiveFns-CYpiAvj4.cjs → primitiveFns-DFzP5EBQ.cjs} +5 -5
  50. package/dist/{primitiveFns-DdGSiMcZ.js → primitiveFns-WminpA8h.js} +5 -5
  51. package/dist/query.cjs +2 -2
  52. package/dist/query.js +2 -2
  53. package/dist/{shapeFns-DUbyg6UB.js → shapeFns-BW0QajQq.js} +2 -2
  54. package/dist/{shapeFns-CCrR-7JE.cjs → shapeFns-DqOoRUkg.cjs} +2 -2
  55. package/dist/shapeRef.cjs +1 -1
  56. package/dist/shapeRef.js +1 -1
  57. package/dist/{shapeRefFns-DOdTZgmb.js → shapeRefFns-C3GwXcJ2.js} +3 -3
  58. package/dist/{shapeRefFns-CPPOk97a.cjs → shapeRefFns-DbAIYWMa.cjs} +3 -3
  59. package/dist/{shapeTypes-06dQA9ET.js → shapeTypes-CvGzaTYd.js} +30 -0
  60. package/dist/{shapeTypes-BnE1sBpb.cjs → shapeTypes-h0bo6yCZ.cjs} +30 -0
  61. package/dist/sketching.cjs +2 -2
  62. package/dist/sketching.js +2 -2
  63. package/dist/{solidBuilders-Z_qVHPZi.cjs → solidBuilders-Buy3oAve.cjs} +2 -2
  64. package/dist/{solidBuilders-B79DrN13.js → solidBuilders-Cf9BpIew.js} +2 -2
  65. package/dist/{surfaceBuilders-DPgf9Azk.cjs → surfaceBuilders-CSkzjM8v.cjs} +2 -2
  66. package/dist/{surfaceBuilders-bHZt62DR.js → surfaceBuilders-XPdFhdcS.js} +2 -2
  67. package/dist/topology/booleanFns.d.ts +18 -0
  68. package/dist/topology/booleanFns.d.ts.map +1 -1
  69. package/dist/topology.cjs +6 -6
  70. package/dist/topology.js +6 -6
  71. package/package.json +1 -1
package/dist/2d.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
3
3
  const require_errors = require("./errors-9zQcQK1H.cjs");
4
- const require_faceFns = require("./faceFns-B68JCstG.cjs");
5
- const require_boolean2D = require("./boolean2D-BhbQR9n5.cjs");
6
- const require_blueprint = require("./blueprint-C1RD1rAU.cjs");
7
- const require_blueprintFns = require("./blueprintFns-Bilzq76z.cjs");
4
+ const require_faceFns = require("./faceFns-DVeZQZfD.cjs");
5
+ const require_boolean2D = require("./boolean2D-Bsdb31mM.cjs");
6
+ const require_blueprint = require("./blueprint-Dy7ARPXJ.cjs");
7
+ const require_blueprintFns = require("./blueprintFns-H2WJG5n2.cjs");
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
package/dist/2d.js CHANGED
@@ -1,9 +1,9 @@
1
- import { X as getKernel2D, a as createEdge, z as createKernelHandle } from "./shapeTypes-06dQA9ET.js";
1
+ import { X as getKernel2D, a as createEdge, z as createKernelHandle } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
3
- import { C as kernelCallRaw } from "./faceFns-C4DVYLxO.js";
4
- import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CM-RGkmM.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-B8rEQQdf.js";
6
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-BPoxNVIv.js";
3
+ import { C as kernelCallRaw } from "./faceFns-iqaDWGL2.js";
4
+ import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-Bw-6hKCf.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-DFEgFJYq.js";
6
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Dc000lbc.js";
7
7
  //#region src/core/curve2dHandle.ts
8
8
  /**
9
9
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -1,13 +1,13 @@
1
- import { H as registerForCleanup, W as unregisterFromCleanup, X as getKernel2D, Y as getKernel, a as createEdge, u as createWire } from "./shapeTypes-06dQA9ET.js";
1
+ import { H as registerForCleanup, W as unregisterFromCleanup, X as getKernel2D, Y as getKernel, a as createEdge, u as createWire } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, h as bug, n as computationError } from "./errors-C-cgQA3w.js";
3
- import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-C4DVYLxO.js";
3
+ import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-iqaDWGL2.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-B9u763C3.js";
5
5
  import { r as toVec3 } from "./types-BWBlwp6w.js";
6
6
  import { r as makePlane } from "./planeOps-gTOEarV2.js";
7
- import { f as getOrientation } from "./curveFns-DxeAWfSe.js";
7
+ import { f as getOrientation } from "./curveFns-DLlD1hFL.js";
8
8
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-xxcB3YNq.js";
9
- import { r as makeFace } from "./surfaceBuilders-bHZt62DR.js";
10
- import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-B_k7J_4D.js";
9
+ import { r as makeFace } from "./surfaceBuilders-XPdFhdcS.js";
10
+ import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-HH_F9BEl.js";
11
11
  //#region src/2d/lib/definitions.ts
12
12
  /** Type guard that checks whether a value is a `Point2D`. */
13
13
  function isPoint2D(point) {
@@ -1,13 +1,13 @@
1
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
- const require_faceFns = require("./faceFns-B68JCstG.cjs");
3
+ const require_faceFns = require("./faceFns-DVeZQZfD.cjs");
4
4
  const require_constants = require("./constants-unWN8k4c.cjs");
5
5
  const require_types = require("./types-BjDcsS7l.cjs");
6
6
  const require_planeOps = require("./planeOps-6Wu7dMDN.cjs");
7
- const require_curveFns = require("./curveFns-Dp1LYNHp.cjs");
7
+ const require_curveFns = require("./curveFns-DZQqrcS8.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-DPgf9Azk.cjs");
10
- const require_helpers = require("./helpers-DeLTd7PH.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-CSkzjM8v.cjs");
10
+ const require_helpers = require("./helpers-DcOHqOfT.cjs");
11
11
  //#region src/2d/lib/definitions.ts
12
12
  /** Type guard that checks whether a value is a `Point2D`. */
13
13
  function isPoint2D(point) {
@@ -1,6 +1,6 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
2
- import { g as CompoundBlueprint } from "./boolean2D-CM-RGkmM.js";
3
- import { t as Blueprint } from "./blueprint-B8rEQQdf.js";
2
+ import { g as CompoundBlueprint } from "./boolean2D-Bw-6hKCf.js";
3
+ import { t as Blueprint } from "./blueprint-DFEgFJYq.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,6 +1,6 @@
1
1
  const require_errors = require("./errors-9zQcQK1H.cjs");
2
- const require_boolean2D = require("./boolean2D-BhbQR9n5.cjs");
3
- const require_blueprint = require("./blueprint-C1RD1rAU.cjs");
2
+ const require_boolean2D = require("./boolean2D-Bsdb31mM.cjs");
3
+ const require_blueprint = require("./blueprint-Dy7ARPXJ.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,16 +1,16 @@
1
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
- const require_faceFns = require("./faceFns-B68JCstG.cjs");
3
+ const require_faceFns = require("./faceFns-DVeZQZfD.cjs");
4
4
  const require_constants = require("./constants-unWN8k4c.cjs");
5
5
  const require_types = require("./types-BjDcsS7l.cjs");
6
6
  const require_vecOps = require("./vecOps-BXvBYIor.cjs");
7
7
  const require_planeOps = require("./planeOps-6Wu7dMDN.cjs");
8
- const require_curveFns = require("./curveFns-Dp1LYNHp.cjs");
8
+ const require_curveFns = require("./curveFns-DZQqrcS8.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
10
- const require_surfaceBuilders = require("./surfaceBuilders-DPgf9Azk.cjs");
11
- const require_helpers = require("./helpers-DeLTd7PH.cjs");
12
- const require_blueprint = require("./blueprint-C1RD1rAU.cjs");
13
- const require_extrudeFns = require("./extrudeFns-C4_eTRoy.cjs");
10
+ const require_surfaceBuilders = require("./surfaceBuilders-CSkzjM8v.cjs");
11
+ const require_helpers = require("./helpers-DcOHqOfT.cjs");
12
+ const require_blueprint = require("./blueprint-Dy7ARPXJ.cjs");
13
+ const require_extrudeFns = require("./extrudeFns-C2dk_SwT.cjs");
14
14
  //#region node_modules/flatqueue/index.js
15
15
  /** @template T */
16
16
  var FlatQueue = class {
@@ -1,16 +1,16 @@
1
- import { J as _usingCtx, L as DisposalScope, X as getKernel2D, Y as getKernel, a as createEdge, h as isShape3D, o as createFace, t as castShape, u as createWire } from "./shapeTypes-06dQA9ET.js";
1
+ import { J as _usingCtx, L as DisposalScope, X as getKernel2D, Y as getKernel, a as createEdge, h as isShape3D, o as createFace, t as castShape, u as createWire } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, i as kernelError, l as typeCastError, n as computationError, s as safeIndex } from "./errors-C-cgQA3w.js";
3
- import { _ as downcast, c as normalAt, p as uvBounds, u as pointOnSurface } from "./faceFns-C4DVYLxO.js";
3
+ import { _ as downcast, c as normalAt, p as uvBounds, u as pointOnSurface } from "./faceFns-iqaDWGL2.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-B9u763C3.js";
5
5
  import { r as toVec3 } from "./types-BWBlwp6w.js";
6
6
  import { d as vecNormalize, h as vecScale, r as vecCross } from "./vecOps-D9etjPgV.js";
7
7
  import { n as createPlane } from "./planeOps-gTOEarV2.js";
8
- import { c as curveStartPoint, l as curveTangentAt, r as curveIsClosed } from "./curveFns-DxeAWfSe.js";
8
+ import { c as curveStartPoint, l as curveTangentAt, r as curveIsClosed } from "./curveFns-DLlD1hFL.js";
9
9
  import { r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-xxcB3YNq.js";
10
- import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-bHZt62DR.js";
11
- import { _ as samePoint$1, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, s as PRECISION_INTERSECTION, v as scalarMultiply2d } from "./helpers-B_k7J_4D.js";
12
- import { _ as Curve2D, b as removeDuplicatePoints, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-B8rEQQdf.js";
13
- import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-BlynH9YI.js";
10
+ import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-XPdFhdcS.js";
11
+ import { _ as samePoint$1, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, s as PRECISION_INTERSECTION, v as scalarMultiply2d } from "./helpers-HH_F9BEl.js";
12
+ import { _ as Curve2D, b as removeDuplicatePoints, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-DFEgFJYq.js";
13
+ import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-D83bFc01.js";
14
14
  //#region node_modules/flatqueue/index.js
15
15
  /** @template T */
16
16
  var FlatQueue = class {
@@ -1,11 +1,11 @@
1
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
3
  const require_constants = require("./constants-unWN8k4c.cjs");
4
4
  const require_vecOps = require("./vecOps-BXvBYIor.cjs");
5
5
  const require_planeOps = require("./planeOps-6Wu7dMDN.cjs");
6
- const require_shapeFns = require("./shapeFns-CCrR-7JE.cjs");
6
+ const require_shapeFns = require("./shapeFns-DqOoRUkg.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
8
- const require_surfaceBuilders = require("./surfaceBuilders-DPgf9Azk.cjs");
8
+ const require_surfaceBuilders = require("./surfaceBuilders-CSkzjM8v.cjs");
9
9
  //#region src/topology/booleanFns.ts
10
10
  /**
11
11
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -387,7 +387,55 @@ function slice(shape, planes, options = {}) {
387
387
  }
388
388
  return require_errors.ok(results);
389
389
  }
390
+ /**
391
+ * Execute a chained boolean pipeline in a single WASM call.
392
+ *
393
+ * More efficient than sequential fuse/cut calls for long chains (e.g., 16-step
394
+ * spiral staircase). Skips UnifySameDomain on intermediate results — only
395
+ * simplifies the final shape.
396
+ *
397
+ * Falls back to sequential operations when the C++ pipeline class is not
398
+ * available in the WASM build.
399
+ */
400
+ function booleanPipeline(base, steps, options) {
401
+ if (steps.length === 0) return require_errors.ok(base);
402
+ const glueMode = options?.optimisation === "commonFace" ? 1 : options?.optimisation === "sameFace" ? 2 : 0;
403
+ const k = require_shapeTypes.getKernel();
404
+ const kernelSteps = steps.map((s) => ({
405
+ op: s.op,
406
+ tool: s.tool.wrapped
407
+ }));
408
+ try {
409
+ const result = k.booleanPipeline?.(base.wrapped, kernelSteps, { glueMode });
410
+ if (result === void 0) return booleanPipelineFallback(base, steps, options);
411
+ if (result === null) return require_errors.err(require_errors.kernelError("BOOLEAN_PIPELINE_FAILED", "Boolean pipeline returned null shape"));
412
+ const shape = require_shapeTypes.castShape(result);
413
+ if (!require_shapeTypes.isShape3D(shape)) return require_errors.err(require_errors.typeCastError("BOOLEAN_PIPELINE_NOT_3D", "Pipeline result is not a 3D shape"));
414
+ return require_errors.ok(shape);
415
+ } catch (e) {
416
+ return require_errors.err(require_errors.kernelError("BOOLEAN_PIPELINE_FAILED", e instanceof Error ? e.message : String(e)));
417
+ }
418
+ }
419
+ function booleanPipelineFallback(base, steps, options) {
420
+ let current = base;
421
+ const boolOpts = {
422
+ ...options?.optimisation ? { optimisation: options.optimisation } : {},
423
+ unsafe: true
424
+ };
425
+ for (const step of steps) {
426
+ const r = step.op === "fuse" ? fuse(current, step.tool, boolOpts) : step.op === "cut" ? cut(current, step.tool, boolOpts) : intersect(current, step.tool, boolOpts);
427
+ if (require_errors.isErr(r)) return r;
428
+ current = require_errors.unwrap(r);
429
+ }
430
+ return require_errors.ok(current);
431
+ }
390
432
  //#endregion
433
+ Object.defineProperty(exports, "booleanPipeline", {
434
+ enumerable: true,
435
+ get: function() {
436
+ return booleanPipeline;
437
+ }
438
+ });
391
439
  Object.defineProperty(exports, "cut", {
392
440
  enumerable: true,
393
441
  get: function() {
@@ -1,11 +1,11 @@
1
- import { Y as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-06dQA9ET.js";
1
+ import { Y as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-C-cgQA3w.js";
3
3
  import { n as HASH_CODE_MAX } from "./constants-B9u763C3.js";
4
4
  import { h as vecScale, t as vecAdd } from "./vecOps-D9etjPgV.js";
5
5
  import { o as resolvePlane } from "./planeOps-gTOEarV2.js";
6
- import { F as getVertices, I as getWires, M as getEdges, _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-DUbyg6UB.js";
6
+ import { F as getVertices, I as getWires, M as getEdges, _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-BW0QajQq.js";
7
7
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-xxcB3YNq.js";
8
- import { r as makeFace } from "./surfaceBuilders-bHZt62DR.js";
8
+ import { r as makeFace } from "./surfaceBuilders-XPdFhdcS.js";
9
9
  //#region src/topology/booleanFns.ts
10
10
  /**
11
11
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -387,5 +387,47 @@ function slice(shape, planes, options = {}) {
387
387
  }
388
388
  return ok(results);
389
389
  }
390
+ /**
391
+ * Execute a chained boolean pipeline in a single WASM call.
392
+ *
393
+ * More efficient than sequential fuse/cut calls for long chains (e.g., 16-step
394
+ * spiral staircase). Skips UnifySameDomain on intermediate results — only
395
+ * simplifies the final shape.
396
+ *
397
+ * Falls back to sequential operations when the C++ pipeline class is not
398
+ * available in the WASM build.
399
+ */
400
+ function booleanPipeline(base, steps, options) {
401
+ if (steps.length === 0) return ok(base);
402
+ const glueMode = options?.optimisation === "commonFace" ? 1 : options?.optimisation === "sameFace" ? 2 : 0;
403
+ const k = getKernel();
404
+ const kernelSteps = steps.map((s) => ({
405
+ op: s.op,
406
+ tool: s.tool.wrapped
407
+ }));
408
+ try {
409
+ const result = k.booleanPipeline?.(base.wrapped, kernelSteps, { glueMode });
410
+ if (result === void 0) return booleanPipelineFallback(base, steps, options);
411
+ if (result === null) return err(kernelError("BOOLEAN_PIPELINE_FAILED", "Boolean pipeline returned null shape"));
412
+ const shape = castShape(result);
413
+ if (!isShape3D(shape)) return err(typeCastError("BOOLEAN_PIPELINE_NOT_3D", "Pipeline result is not a 3D shape"));
414
+ return ok(shape);
415
+ } catch (e) {
416
+ return err(kernelError("BOOLEAN_PIPELINE_FAILED", e instanceof Error ? e.message : String(e)));
417
+ }
418
+ }
419
+ function booleanPipelineFallback(base, steps, options) {
420
+ let current = base;
421
+ const boolOpts = {
422
+ ...options?.optimisation ? { optimisation: options.optimisation } : {},
423
+ unsafe: true
424
+ };
425
+ for (const step of steps) {
426
+ const r = step.op === "fuse" ? fuse(current, step.tool, boolOpts) : step.op === "cut" ? cut(current, step.tool, boolOpts) : intersect(current, step.tool, boolOpts);
427
+ if (isErr(r)) return r;
428
+ current = unwrap(r);
429
+ }
430
+ return ok(current);
431
+ }
390
432
  //#endregion
391
- export { intersect as a, slice as c, fuseAll as i, split as l, cutAll as n, section as o, fuse as r, sectionToFace as s, cut as t };
433
+ export { fuseAll as a, sectionToFace as c, fuse as i, slice as l, cut as n, intersect as o, cutAll as r, section as s, booleanPipeline as t, split as u };
package/dist/brepjs.cjs CHANGED
@@ -1,29 +1,29 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-B-V2Okjj.cjs");
3
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
2
+ const require_drawFns = require("./drawFns-CvuNVDJc.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
4
4
  const require_errors = require("./errors-9zQcQK1H.cjs");
5
- const require_faceFns = require("./faceFns-B68JCstG.cjs");
5
+ const require_faceFns = require("./faceFns-DVeZQZfD.cjs");
6
6
  const require_constants = require("./constants-unWN8k4c.cjs");
7
7
  const require_types = require("./types-BjDcsS7l.cjs");
8
8
  const require_vecOps = require("./vecOps-BXvBYIor.cjs");
9
9
  const require_planeOps = require("./planeOps-6Wu7dMDN.cjs");
10
- const require_shapeFns = require("./shapeFns-CCrR-7JE.cjs");
11
- const require_curveFns = require("./curveFns-Dp1LYNHp.cjs");
12
- const require_meshFns = require("./meshFns-B6Q3ymfV.cjs");
10
+ const require_shapeFns = require("./shapeFns-DqOoRUkg.cjs");
11
+ const require_curveFns = require("./curveFns-DZQqrcS8.cjs");
12
+ const require_meshFns = require("./meshFns-GMWq80aT.cjs");
13
13
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
14
- const require_surfaceBuilders = require("./surfaceBuilders-DPgf9Azk.cjs");
15
- const require_booleanFns = require("./booleanFns-DrG85G2W.cjs");
16
- const require_primitiveFns = require("./primitiveFns-CYpiAvj4.cjs");
17
- const require_historyFns = require("./historyFns-D-1_ncCz.cjs");
18
- const require_boolean2D = require("./boolean2D-BhbQR9n5.cjs");
19
- const require_helpers = require("./helpers-DeLTd7PH.cjs");
20
- const require_solidBuilders = require("./solidBuilders-Z_qVHPZi.cjs");
21
- const require_measureFns = require("./measureFns-CGnA2Hz1.cjs");
22
- const require_cornerFinder = require("./cornerFinder-DcTlpavc.cjs");
23
- const require_extrudeFns = require("./extrudeFns-C4_eTRoy.cjs");
24
- const require_blueprintFns = require("./blueprintFns-Bilzq76z.cjs");
25
- const require_importFns = require("./importFns-Be58G9Qg.cjs");
26
- const require_shapeRefFns = require("./shapeRefFns-CPPOk97a.cjs");
14
+ const require_surfaceBuilders = require("./surfaceBuilders-CSkzjM8v.cjs");
15
+ const require_booleanFns = require("./booleanFns-BLDTDLSF.cjs");
16
+ const require_primitiveFns = require("./primitiveFns-DFzP5EBQ.cjs");
17
+ const require_historyFns = require("./historyFns-By2rvfdT.cjs");
18
+ const require_boolean2D = require("./boolean2D-Bsdb31mM.cjs");
19
+ const require_helpers = require("./helpers-DcOHqOfT.cjs");
20
+ const require_solidBuilders = require("./solidBuilders-Buy3oAve.cjs");
21
+ const require_measureFns = require("./measureFns-DSukVpI5.cjs");
22
+ const require_cornerFinder = require("./cornerFinder-TYHShzGu.cjs");
23
+ const require_extrudeFns = require("./extrudeFns-C2dk_SwT.cjs");
24
+ const require_blueprintFns = require("./blueprintFns-H2WJG5n2.cjs");
25
+ const require_importFns = require("./importFns-Cg8ra1G0.cjs");
26
+ const require_shapeRefFns = require("./shapeRefFns-DbAIYWMa.cjs");
27
27
  const require_workerHandler = require("./workerHandler-C-7OUJsa.cjs");
28
28
  //#region src/topology/shapeBooleans.ts
29
29
  var BOPAlgo_GlueShift = 1;
@@ -2789,6 +2789,7 @@ exports.assignRoles = require_shapeRefFns.assignRoles;
2789
2789
  exports.autoHeal = require_primitiveFns.autoHeal;
2790
2790
  exports.bezier = require_primitiveFns.bezier;
2791
2791
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
2792
+ exports.booleanPipeline = require_booleanFns.booleanPipeline;
2792
2793
  Object.defineProperty(exports, "booleans", {
2793
2794
  enumerable: true,
2794
2795
  get: function() {
package/dist/brepjs.js CHANGED
@@ -1,28 +1,28 @@
1
- import { $ as prewarm, A as planarWire, B as getDisposalStats, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as is2D, G as withScope, I as is3D, K as withScopeResult, L as DisposalScope, M as getShapeKind, N as as2D, O as orientedFace, P as as3D, Q as initFromOC, R as createHandle, S as isManifoldShell, T as isPlanarWire, U as resetDisposalStats, V as isLive, Y as getKernel, Z as init, _ as isSolid, a as createEdge, at as getPerformanceStats, b as closedWire, c as createSolid, d as isCompound, et as registerKernel, f as isEdge, g as isShell, h as isShape3D, i as createCompound, it as BrepkitAdapter, j as validSolid, k as planarFace, l as createVertex, m as isShape1D, n as castShape3D, nt as supportsConstraintSketch, o as createFace, ot as resetPerformanceStats, p as isFace, q as withScopeResultAsync, rt as supportsProjection, s as createShell, t as castShape, tt as withKernel, u as createWire, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createKernelHandle } from "./shapeTypes-06dQA9ET.js";
1
+ import { $ as prewarm, A as planarWire, B as getDisposalStats, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as is2D, G as withScope, I as is3D, K as withScopeResult, L as DisposalScope, M as getShapeKind, N as as2D, O as orientedFace, P as as3D, Q as initFromOC, R as createHandle, S as isManifoldShell, T as isPlanarWire, U as resetDisposalStats, V as isLive, Y as getKernel, Z as init, _ as isSolid, a as createEdge, at as getPerformanceStats, b as closedWire, c as createSolid, d as isCompound, et as registerKernel, f as isEdge, g as isShell, h as isShape3D, i as createCompound, it as BrepkitAdapter, j as validSolid, k as planarFace, l as createVertex, m as isShape1D, n as castShape3D, nt as supportsConstraintSketch, o as createFace, ot as resetPerformanceStats, p as isFace, q as withScopeResultAsync, rt as supportsProjection, s as createShell, t as castShape, tt as withKernel, u as createWire, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createKernelHandle } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, B as unwrapOr, C as fromNullable, D as mapBoth, E as map, F as tapErr, H as zip, I as tryCatch, L as tryCatchAsync, M as orElse, N as pipeline, O as mapErr, P as tap, R as unwrap, S as flatten, T as isOk, V as unwrapOrElse, _ as all, a as moduleInitError, b as err, c as sketcherStateError, d as validationError, g as OK, h as bug, i as kernelError, j as or, k as match, l as typeCastError, m as BrepBugError, n as computationError, o as queryError, r as ioError, t as BrepErrorCode, u as unsupportedError, v as andThen, w as isErr, x as flatMap, y as collect, z as unwrapErr } from "./errors-C-cgQA3w.js";
3
- import { C as kernelCallRaw, S as kernelCall, _ as downcast, a as flipFaceOrientation, b as iterTopo, c as normalAt, d as projectPointOnFace, f as removeHolesFromFace, g as cast, h as asTopo, i as faceOrientation, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, v as fromBREP, w as kernelCallScoped, x as shapeType, y as isCompSolid } from "./faceFns-C4DVYLxO.js";
3
+ import { C as kernelCallRaw, S as kernelCall, _ as downcast, a as flipFaceOrientation, b as iterTopo, c as normalAt, d as projectPointOnFace, f as removeHolesFromFace, g as cast, h as asTopo, i as faceOrientation, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, v as fromBREP, w as kernelCallScoped, x as shapeType, y as isCompSolid } from "./faceFns-iqaDWGL2.js";
4
4
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-B9u763C3.js";
5
5
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-BWBlwp6w.js";
6
6
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-D9etjPgV.js";
7
7
  import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-gTOEarV2.js";
8
- import { A as describe$1, B as iterVertices, C as findFacesByTag, D as tagFaces, E as setTagMetadata, F as getVertices, H as vertexPosition, I as getWires, L as invalidateShapeCache, M as getEdges, N as getFaces, O as getFaceOrigins, R as iterEdges, S as getShapeColor, T as getTagMetadata, V as iterWires, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$1, h as translate$1, i as isEqualShape, j as getBounds, k as setShapeOrigin, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$1, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$1, w as getFaceTags, x as getFaceColor, y as colorFaces, z as iterFaces } from "./shapeFns-DUbyg6UB.js";
9
- import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-DxeAWfSe.js";
10
- import { a as meshEdges$1, i as mesh$1, n as exportSTEP, o as clearMeshCache, r as exportSTL, s as createMeshCache, t as exportIGES } from "./meshFns-BDJ7GT7C.js";
8
+ import { A as describe$1, B as iterVertices, C as findFacesByTag, D as tagFaces, E as setTagMetadata, F as getVertices, H as vertexPosition, I as getWires, L as invalidateShapeCache, M as getEdges, N as getFaces, O as getFaceOrigins, R as iterEdges, S as getShapeColor, T as getTagMetadata, V as iterWires, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$1, h as translate$1, i as isEqualShape, j as getBounds, k as setShapeOrigin, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$1, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$1, w as getFaceTags, x as getFaceColor, y as colorFaces, z as iterFaces } from "./shapeFns-BW0QajQq.js";
9
+ import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-DLlD1hFL.js";
10
+ import { a as meshEdges$1, i as mesh$1, n as exportSTEP, o as clearMeshCache, r as exportSTL, s as createMeshCache, t as exportIGES } from "./meshFns-B1hHBGHc.js";
11
11
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-xxcB3YNq.js";
12
- import { n as fill, r as makeFace } from "./surfaceBuilders-bHZt62DR.js";
13
- import { a as intersect$1, c as slice$1, i as fuseAll, l as split$1, n as cutAll, o as section$1, r as fuse$1, s as sectionToFace$1, t as cut$1 } from "./booleanFns-Kn0xAXHX.js";
14
- import { $ as getNurbsSurfaceData, A as fixShape, B as offset$1, C as threePointArc, D as wireLoop, E as wire, F as isValid$1, G as chamferWithEvolution, H as thicken$1, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, L as chamfer$1, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as getNurbsCurveData, R as draft$1, S as tangentArc, T as vertex, U as variableFillet, V as shell$1, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, j as heal$1, k as fixSelfIntersection, l as ellipse, lt as toLineGeometryData, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-DdGSiMcZ.js";
15
- import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, f as serializeHistory, g as addChild, h as undoLast, i as deserializeHistory, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-cW_Dcz2M.js";
16
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, f as Sketch, h as organiseBlueprints, i as cutBlueprints, m as loftAll, n as fuse2D, o as intersectBlueprints, p as loft$1, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CM-RGkmM.js";
17
- import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-B_k7J_4D.js";
18
- import { $ as sketchFaceOffset, B as drawSingleCircle, C as cameraFromPlane, D as makeProjectedEdges, E as projectEdges, F as drawParametricFunction, G as loadFont, H as drawText, I as drawPointsInterpolation, J as textMetrics, K as sketchText, L as drawPolysides, M as draw, N as drawCircle, O as isProjectionPlane, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, T as createCamera, U as fontMetrics, V as drawSingleEllipse, W as getFont, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, q as textBlueprints, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, w as cameraLookAt, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-BWSOeCPI.js";
19
- import { r as makeCylinder } from "./solidBuilders-B79DrN13.js";
20
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-zT6IVHAu.js";
21
- import { t as cornerFinder } from "./cornerFinder-Cgz_yVTl.js";
22
- import { a as guidedSweep, c as sweep, i as complexExtrude, l as twistExtrude, n as extrudeAll, o as multiSectionSweep, r as revolve$1, s as supportExtrude, t as extrude$1 } from "./extrudeFns-BlynH9YI.js";
23
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-BPoxNVIv.js";
24
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-BLbkoMr-.js";
25
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-DOdTZgmb.js";
12
+ import { n as fill, r as makeFace } from "./surfaceBuilders-XPdFhdcS.js";
13
+ import { a as fuseAll, c as sectionToFace$1, i as fuse$1, l as slice$1, n as cut$1, o as intersect$1, r as cutAll, s as section$1, t as booleanPipeline, u as split$1 } from "./booleanFns-D-U1zAnb.js";
14
+ import { $ as getNurbsSurfaceData, A as fixShape, B as offset$1, C as threePointArc, D as wireLoop, E as wire, F as isValid$1, G as chamferWithEvolution, H as thicken$1, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, L as chamfer$1, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as getNurbsCurveData, R as draft$1, S as tangentArc, T as vertex, U as variableFillet, V as shell$1, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, j as heal$1, k as fixSelfIntersection, l as ellipse, lt as toLineGeometryData, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-WminpA8h.js";
15
+ import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, f as serializeHistory, g as addChild, h as undoLast, i as deserializeHistory, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-C5LVTRMt.js";
16
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, f as Sketch, h as organiseBlueprints, i as cutBlueprints, m as loftAll, n as fuse2D, o as intersectBlueprints, p as loft$1, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-Bw-6hKCf.js";
17
+ import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-HH_F9BEl.js";
18
+ import { $ as sketchFaceOffset, B as drawSingleCircle, C as cameraFromPlane, D as makeProjectedEdges, E as projectEdges, F as drawParametricFunction, G as loadFont, H as drawText, I as drawPointsInterpolation, J as textMetrics, K as sketchText, L as drawPolysides, M as draw, N as drawCircle, O as isProjectionPlane, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, T as createCamera, U as fontMetrics, V as drawSingleEllipse, W as getFont, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, q as textBlueprints, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, w as cameraLookAt, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-CUqNgF0l.js";
19
+ import { r as makeCylinder } from "./solidBuilders-Cf9BpIew.js";
20
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-C0ExdINB.js";
21
+ import { t as cornerFinder } from "./cornerFinder-B6rKiYRI.js";
22
+ import { a as guidedSweep, c as sweep, i as complexExtrude, l as twistExtrude, n as extrudeAll, o as multiSectionSweep, r as revolve$1, s as supportExtrude, t as extrude$1 } from "./extrudeFns-D83bFc01.js";
23
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Dc000lbc.js";
24
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-CAjnoUsl.js";
25
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-C3GwXcJ2.js";
26
26
  import { a as createTaskQueue, c as isEmpty$1, d as isDisposeRequest, f as isErrorResponse, h as isSuccessResponse, i as createWorkerClient, l as pendingCount, m as isOperationRequest, n as createWorkerHandler, o as dequeueTask, p as isInitRequest, r as registerHandler, s as enqueueTask, t as createOperationRegistry, u as rejectAll } from "./workerHandler-o2xzAfFk.js";
27
27
  //#region \0rolldown/runtime.js
28
28
  var __defProp = Object.defineProperty;
@@ -2763,4 +2763,4 @@ var patterns_exports = /* @__PURE__ */ __exportAll({
2763
2763
  linearPattern: () => linearPattern
2764
2764
  });
2765
2765
  //#endregion
2766
- export { BrepBugError, BrepErrorCode, BrepWrapperError, BrepkitAdapter, CompoundSketch, DEG2RAD, DisposalScope, HASH_CODE_MAX, OK, RAD2DEG, Sketch, Sketches, addChild, addHoles, addMate, addStep, adjacentFaces, all, andThen, applyGlue, applyMatrix, approximateCurve, as2D, as3D, asTopo, assignRoles, autoHeal, bezier, blueprintToDXF, booleans_exports as booleans, boss, box, bsplineApprox, bug, cameraFromPlane, cameraLookAt, captureHint, cast, castShape, castShape3D, chamfer, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkAllInterferences, checkBoolean, checkInterference, circle, circularPattern, classifyPointOnFace, clearMeshCache, clone, closedWire, collect, collectShapes, colorFaces, colorShape, complexExtrude, composeTransforms, compound, compoundSketchExtrude, compoundSketchFace, compoundSketchLoft, compoundSketchRevolve, computationError, computeStraightSkeleton, cone, construction_exports as construction, convexHull, cornerFinder, countNodes, createAssembly, createAssemblyNode, createBlueprint, createCamera, createCompound, createCompoundBlueprint, createDistanceQuery, createEdge, createFace, createHandle, createHistory, createKernelHandle, createMeshCache, createNamedPlane, createOperationRegistry, createPlane, createRef, createRegistry, createShell, createSolid, createTaskQueue, createVertex, createWire, createWorkerClient, createWorkerHandler, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cut, cut2D, cutAll, cutBlueprints, cutWithEvolution, cylinder, defaultScorer, dequeueTask, describe, deserializeDrawing, deserializeHistory, fromBREP as deserializeShape, downcast, draft, draw, drawCircle, drawEllipse, drawFaceOutline, drawParametricFunction, drawPointsInterpolation, drawPolysides, drawProjection, drawRectangle, drawRoundedRectangle, drawSingleCircle, drawSingleEllipse, drawText, drawingChamfer, drawingCut, drawingFillet, drawingFuse, drawingIntersect, drawingToSketchOnPlane, drill, edgeFinder, edgesOfFace, ellipse, ellipseArc, ellipsoid, enqueueTask, err, exportAssemblySTEP, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, extrude, extrudeAll, face, faceCenter, faceFinder, faceGeomType, faceOrientation, facesOfEdge, fill, filledFace, fillet, filletWithEvolution, findFacesByTag, findNode, findStep, fixSelfIntersection, fixShape, flatMap, flatten, flipFaceOrientation, flipOrientation, fontMetrics, fromBREP$1 as fromBREP, fromKernelDir, fromKernelPnt, fromKernelVec, fromNullable, fuse, fuse2D, fuseAll, fuseBlueprints, fuseWithEvolution, getBounds, getBounds2D, getCurveType, getDisposalStats, getEdges, getFaceColor, getFaceOrigins, getFaceTags, getFaces, getFont, getHashCode, getShape as getHistoryShape, getKernel, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getOrientation2D, getPerformanceStats, getShapeColor, getShapeKind, getSingleFace, getSurfaceType, getTagMetadata, getVertices, getWires, guidedSweep, heal, healFace, healSolid, healWire, helix, hull, importDXF, importGLB, importIGES, importOBJ, importSTEP, importSTL, importSVG, importSVGPathD, importThreeMF, init, initFromOC, innerWires, interpolateCurve, intersect, intersect2D, intersectBlueprints, intersectWithEvolution, invalidateShapeCache, ioNs_exports as io, ioError, is2D, is3D, isChamferRadius, isClosedWire, isCompSolid, isCompound, isDisposeRequest, isEdge, isEmpty, isEqualShape, isErr, isErrorResponse, isFace, isFilletRadius, isInitRequest, isInside2D, isLive, isManifoldShell, isNumber, isOk, isOperationRequest, isOrientedFace, isPlanarFace, isPlanarWire, isProjectionPlane, isEmpty$1 as isQueueEmpty, isSameShape, isShape1D, isShape3D, isShell, isSolid, isSuccessResponse, isValid, isValidSolid, isVertex, isWire, iterEdges, iterFaces, iterTopo, iterVertices, iterWires, kernelCall, kernelCallRaw, kernelCallScoped, kernelError, line, linearPattern, loadFont, loft, loftAll, makeBaseBox, makePlane, makeProjectedEdges, manifoldShell, map, mapBoth, mapErr, match, measureArea, measureCurvatureAt, measureCurvatureAtMid, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, measurement_exports as measurement, mesh, meshEdges, minkowski, mirror, mirror2D, mirrorDrawing, mirrorJoin, modifiers_exports as modifiers, modifyStep, moduleInitError, multiSectionSweep, normalAt, offset, offsetFace, offsetWire2D, ok, or, orElse, organiseBlueprints, orientedFace, outerWire, patterns_exports as patterns, pendingCount, pipeline, pivotPlane, planarFace, planarWire, pocket, pointOnSurface, polygon, polyhedron, polysideInnerRadius, polysidesBlueprint, positionOnCurve, prewarm, primitives_exports as primitives, projectEdges, projectPointOnFace, query_exports as query, queryError, rectangularPattern, registerHandler, registerKernel, registerOperation, registerShape, rejectAll, removeChild, removeHolesFromFace, replayFrom, replayHistory, resetDisposalStats, resetPerformanceStats, resize, resolve, resolve3D, resolveDirection, resolvePlane, resolveRef, reverseCurve, revolve, roof, rotate, rotate2D, rotateDrawing, roundedRectangleBlueprint, scale, scale2D, scaleDrawing, section, sectionToFace, serializeHistory, setShapeOrigin, setTagMetadata, sewShells, shape, shapeType, sharedEdges, shell, shellWithEvolution, simplify, sketchCircle, sketchEllipse, sketchExtrude, sketchFace, sketchFaceOffset, sketchHelix, sketchLoft, sketchOnFace2D, sketchOnPlane2D, sketchParametricFunction, sketchPolysides, sketchRectangle, sketchRevolve, sketchRoundedRectangle, sketchSweep, sketchText, sketchWires, sketcherStateError, slice, solid, solidFromShell, solveAssembly, sphere, split, stepCount, stepsFrom, stretch2D, subFace, supportExtrude, supportsConstraintSketch, supportsProjection, surfaceFromGrid, surfaceFromImage, sweep, tagFaces, tangentArc, tap, tapErr, textBlueprints, textMetrics, thicken, threePointArc, toBREP, toBufferGeometryData, toGroupedBufferGeometryData, toKernelVec, toLineGeometryData, toSVGPathD, toVec2, toVec3, torus, transformCopy, transforms_exports as transforms, translate, translate2D, translateDrawing, translatePlane, tryCatch, tryCatchAsync, twistExtrude, typeCastError, undoLast, unsupportedError, unwrap, unwrapErr, unwrapOr, unwrapOrElse, updateNode, updateRoles, uvBounds, uvCoordinates, validSolid, validationError, variableFillet, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub, vertex, vertexFinder, vertexPosition, verticesOfEdge, walkAssembly, wire, wireFinder, wireLoop, wiresOfFace, withKernel, withKernelDir, withKernelPnt, withKernelVec, withScope, withScopeResult, withScopeResultAsync, zip as zipResults };
2766
+ export { BrepBugError, BrepErrorCode, BrepWrapperError, BrepkitAdapter, CompoundSketch, DEG2RAD, DisposalScope, HASH_CODE_MAX, OK, RAD2DEG, Sketch, Sketches, addChild, addHoles, addMate, addStep, adjacentFaces, all, andThen, applyGlue, applyMatrix, approximateCurve, as2D, as3D, asTopo, assignRoles, autoHeal, bezier, blueprintToDXF, booleanPipeline, booleans_exports as booleans, boss, box, bsplineApprox, bug, cameraFromPlane, cameraLookAt, captureHint, cast, castShape, castShape3D, chamfer, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkAllInterferences, checkBoolean, checkInterference, circle, circularPattern, classifyPointOnFace, clearMeshCache, clone, closedWire, collect, collectShapes, colorFaces, colorShape, complexExtrude, composeTransforms, compound, compoundSketchExtrude, compoundSketchFace, compoundSketchLoft, compoundSketchRevolve, computationError, computeStraightSkeleton, cone, construction_exports as construction, convexHull, cornerFinder, countNodes, createAssembly, createAssemblyNode, createBlueprint, createCamera, createCompound, createCompoundBlueprint, createDistanceQuery, createEdge, createFace, createHandle, createHistory, createKernelHandle, createMeshCache, createNamedPlane, createOperationRegistry, createPlane, createRef, createRegistry, createShell, createSolid, createTaskQueue, createVertex, createWire, createWorkerClient, createWorkerHandler, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cut, cut2D, cutAll, cutBlueprints, cutWithEvolution, cylinder, defaultScorer, dequeueTask, describe, deserializeDrawing, deserializeHistory, fromBREP as deserializeShape, downcast, draft, draw, drawCircle, drawEllipse, drawFaceOutline, drawParametricFunction, drawPointsInterpolation, drawPolysides, drawProjection, drawRectangle, drawRoundedRectangle, drawSingleCircle, drawSingleEllipse, drawText, drawingChamfer, drawingCut, drawingFillet, drawingFuse, drawingIntersect, drawingToSketchOnPlane, drill, edgeFinder, edgesOfFace, ellipse, ellipseArc, ellipsoid, enqueueTask, err, exportAssemblySTEP, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, extrude, extrudeAll, face, faceCenter, faceFinder, faceGeomType, faceOrientation, facesOfEdge, fill, filledFace, fillet, filletWithEvolution, findFacesByTag, findNode, findStep, fixSelfIntersection, fixShape, flatMap, flatten, flipFaceOrientation, flipOrientation, fontMetrics, fromBREP$1 as fromBREP, fromKernelDir, fromKernelPnt, fromKernelVec, fromNullable, fuse, fuse2D, fuseAll, fuseBlueprints, fuseWithEvolution, getBounds, getBounds2D, getCurveType, getDisposalStats, getEdges, getFaceColor, getFaceOrigins, getFaceTags, getFaces, getFont, getHashCode, getShape as getHistoryShape, getKernel, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getOrientation2D, getPerformanceStats, getShapeColor, getShapeKind, getSingleFace, getSurfaceType, getTagMetadata, getVertices, getWires, guidedSweep, heal, healFace, healSolid, healWire, helix, hull, importDXF, importGLB, importIGES, importOBJ, importSTEP, importSTL, importSVG, importSVGPathD, importThreeMF, init, initFromOC, innerWires, interpolateCurve, intersect, intersect2D, intersectBlueprints, intersectWithEvolution, invalidateShapeCache, ioNs_exports as io, ioError, is2D, is3D, isChamferRadius, isClosedWire, isCompSolid, isCompound, isDisposeRequest, isEdge, isEmpty, isEqualShape, isErr, isErrorResponse, isFace, isFilletRadius, isInitRequest, isInside2D, isLive, isManifoldShell, isNumber, isOk, isOperationRequest, isOrientedFace, isPlanarFace, isPlanarWire, isProjectionPlane, isEmpty$1 as isQueueEmpty, isSameShape, isShape1D, isShape3D, isShell, isSolid, isSuccessResponse, isValid, isValidSolid, isVertex, isWire, iterEdges, iterFaces, iterTopo, iterVertices, iterWires, kernelCall, kernelCallRaw, kernelCallScoped, kernelError, line, linearPattern, loadFont, loft, loftAll, makeBaseBox, makePlane, makeProjectedEdges, manifoldShell, map, mapBoth, mapErr, match, measureArea, measureCurvatureAt, measureCurvatureAtMid, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, measurement_exports as measurement, mesh, meshEdges, minkowski, mirror, mirror2D, mirrorDrawing, mirrorJoin, modifiers_exports as modifiers, modifyStep, moduleInitError, multiSectionSweep, normalAt, offset, offsetFace, offsetWire2D, ok, or, orElse, organiseBlueprints, orientedFace, outerWire, patterns_exports as patterns, pendingCount, pipeline, pivotPlane, planarFace, planarWire, pocket, pointOnSurface, polygon, polyhedron, polysideInnerRadius, polysidesBlueprint, positionOnCurve, prewarm, primitives_exports as primitives, projectEdges, projectPointOnFace, query_exports as query, queryError, rectangularPattern, registerHandler, registerKernel, registerOperation, registerShape, rejectAll, removeChild, removeHolesFromFace, replayFrom, replayHistory, resetDisposalStats, resetPerformanceStats, resize, resolve, resolve3D, resolveDirection, resolvePlane, resolveRef, reverseCurve, revolve, roof, rotate, rotate2D, rotateDrawing, roundedRectangleBlueprint, scale, scale2D, scaleDrawing, section, sectionToFace, serializeHistory, setShapeOrigin, setTagMetadata, sewShells, shape, shapeType, sharedEdges, shell, shellWithEvolution, simplify, sketchCircle, sketchEllipse, sketchExtrude, sketchFace, sketchFaceOffset, sketchHelix, sketchLoft, sketchOnFace2D, sketchOnPlane2D, sketchParametricFunction, sketchPolysides, sketchRectangle, sketchRevolve, sketchRoundedRectangle, sketchSweep, sketchText, sketchWires, sketcherStateError, slice, solid, solidFromShell, solveAssembly, sphere, split, stepCount, stepsFrom, stretch2D, subFace, supportExtrude, supportsConstraintSketch, supportsProjection, surfaceFromGrid, surfaceFromImage, sweep, tagFaces, tangentArc, tap, tapErr, textBlueprints, textMetrics, thicken, threePointArc, toBREP, toBufferGeometryData, toGroupedBufferGeometryData, toKernelVec, toLineGeometryData, toSVGPathD, toVec2, toVec3, torus, transformCopy, transforms_exports as transforms, translate, translate2D, translateDrawing, translatePlane, tryCatch, tryCatchAsync, twistExtrude, typeCastError, undoLast, unsupportedError, unwrap, unwrapErr, unwrapOr, unwrapOrElse, updateNode, updateRoles, uvBounds, uvCoordinates, validSolid, validationError, variableFillet, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub, vertex, vertexFinder, vertexPosition, verticesOfEdge, walkAssembly, wire, wireFinder, wireLoop, wiresOfFace, withKernel, withKernelDir, withKernelPnt, withKernelVec, withScope, withScopeResult, withScopeResultAsync, zip as zipResults };
package/dist/core.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
3
3
  const require_errors = require("./errors-9zQcQK1H.cjs");
4
4
  const require_constants = require("./constants-unWN8k4c.cjs");
5
5
  const require_types = require("./types-BjDcsS7l.cjs");
package/dist/core.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as is2D, G as withScope, I as is3D, K as withScopeResult, L as DisposalScope, M as getShapeKind, O as orientedFace, R as createHandle, S as isManifoldShell, V as isLive, _ as isSolid, b as closedWire, d as isCompound, f as isEdge, g as isShell, h as isShape3D, j as validSolid, m as isShape1D, p as isFace, q as withScopeResultAsync, t as castShape, v as isVertex, x as isClosedWire, y as isWire, z as createKernelHandle } from "./shapeTypes-06dQA9ET.js";
1
+ import { C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as is2D, G as withScope, I as is3D, K as withScopeResult, L as DisposalScope, M as getShapeKind, O as orientedFace, R as createHandle, S as isManifoldShell, V as isLive, _ as isSolid, b as closedWire, d as isCompound, f as isEdge, g as isShell, h as isShape3D, j as validSolid, m as isShape1D, p as isFace, q as withScopeResultAsync, t as castShape, v as isVertex, x as isClosedWire, y as isWire, z as createKernelHandle } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, B as unwrapOr, E as map, I as tryCatch, L as tryCatchAsync, O as mapErr, R as unwrap, T as isOk, V as unwrapOrElse, a as moduleInitError, b as err, c as sketcherStateError, d as validationError, g as OK, h as bug, i as kernelError, k as match, l as typeCastError, m as BrepBugError, n as computationError, o as queryError, r as ioError, u as unsupportedError, v as andThen, w as isErr, x as flatMap, y as collect, z as unwrapErr } from "./errors-C-cgQA3w.js";
3
3
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-B9u763C3.js";
4
4
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-BWBlwp6w.js";
@@ -1,6 +1,6 @@
1
1
  import { t as DEG2RAD } from "./constants-B9u763C3.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-xxcB3YNq.js";
3
- import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-B_k7J_4D.js";
3
+ import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-HH_F9BEl.js";
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,6 +1,6 @@
1
1
  const require_constants = require("./constants-unWN8k4c.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
3
- const require_helpers = require("./helpers-DeLTd7PH.cjs");
3
+ const require_helpers = require("./helpers-DcOHqOfT.cjs");
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,4 +1,4 @@
1
- import { Y as getKernel, f as isEdge, t as castShape, y as isWire } from "./shapeTypes-06dQA9ET.js";
1
+ import { Y as getKernel, f as isEdge, t as castShape, y as isWire } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, b as err, l as typeCastError } from "./errors-C-cgQA3w.js";
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,20 +1,20 @@
1
- import { J as _usingCtx, L as DisposalScope, Y as getKernel, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-06dQA9ET.js";
1
+ import { J as _usingCtx, L as DisposalScope, Y as getKernel, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, r as ioError, s as safeIndex, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
3
- import { _ as downcast, c as normalAt, g as cast, l as outerWire, n as faceCenter } from "./faceFns-C4DVYLxO.js";
3
+ import { _ as downcast, c as normalAt, g as cast, l as outerWire, n as faceCenter } from "./faceFns-iqaDWGL2.js";
4
4
  import { t as DEG2RAD } from "./constants-B9u763C3.js";
5
5
  import { r as toVec3 } from "./types-BWBlwp6w.js";
6
6
  import { c as vecLength, d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-D9etjPgV.js";
7
7
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-gTOEarV2.js";
8
- import { M as getEdges } from "./shapeFns-DUbyg6UB.js";
9
- import { m as offsetWire2D } from "./curveFns-DxeAWfSe.js";
8
+ import { M as getEdges } from "./shapeFns-BW0QajQq.js";
9
+ import { m as offsetWire2D } from "./curveFns-DLlD1hFL.js";
10
10
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-xxcB3YNq.js";
11
- import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-bHZt62DR.js";
12
- import { S as Flatbush, _ as Blueprints, b as make2dOffset, c as roundedRectangleBlueprint, f as Sketch, g as CompoundBlueprint, h as organiseBlueprints, l as BaseSketcher2d, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D, u as BlueprintSketcher, v as chamferCurves, x as intersectCurves, y as filletCurves } from "./boolean2D-CM-RGkmM.js";
13
- import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-B_k7J_4D.js";
14
- import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-B8rEQQdf.js";
15
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-B79DrN13.js";
16
- import { t as cornerFinder } from "./cornerFinder-Cgz_yVTl.js";
17
- import { i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-BlynH9YI.js";
11
+ import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-XPdFhdcS.js";
12
+ import { S as Flatbush, _ as Blueprints, b as make2dOffset, c as roundedRectangleBlueprint, f as Sketch, g as CompoundBlueprint, h as organiseBlueprints, l as BaseSketcher2d, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D, u as BlueprintSketcher, v as chamferCurves, x as intersectCurves, y as filletCurves } from "./boolean2D-Bw-6hKCf.js";
13
+ import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-HH_F9BEl.js";
14
+ import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-DFEgFJYq.js";
15
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-Cf9BpIew.js";
16
+ import { t as cornerFinder } from "./cornerFinder-B6rKiYRI.js";
17
+ import { i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-D83bFc01.js";
18
18
  import opentype from "opentype.js";
19
19
  //#region src/2d/lib/stitching.ts
20
20
  /**
@@ -29,23 +29,23 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  enumerable: true
30
30
  }) : target, mod));
31
31
  //#endregion
32
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
33
33
  const require_errors = require("./errors-9zQcQK1H.cjs");
34
- const require_faceFns = require("./faceFns-B68JCstG.cjs");
34
+ const require_faceFns = require("./faceFns-DVeZQZfD.cjs");
35
35
  const require_constants = require("./constants-unWN8k4c.cjs");
36
36
  const require_types = require("./types-BjDcsS7l.cjs");
37
37
  const require_vecOps = require("./vecOps-BXvBYIor.cjs");
38
38
  const require_planeOps = require("./planeOps-6Wu7dMDN.cjs");
39
- const require_shapeFns = require("./shapeFns-CCrR-7JE.cjs");
40
- const require_curveFns = require("./curveFns-Dp1LYNHp.cjs");
39
+ const require_shapeFns = require("./shapeFns-DqOoRUkg.cjs");
40
+ const require_curveFns = require("./curveFns-DZQqrcS8.cjs");
41
41
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
42
- const require_surfaceBuilders = require("./surfaceBuilders-DPgf9Azk.cjs");
43
- const require_boolean2D = require("./boolean2D-BhbQR9n5.cjs");
44
- const require_helpers = require("./helpers-DeLTd7PH.cjs");
45
- const require_blueprint = require("./blueprint-C1RD1rAU.cjs");
46
- const require_solidBuilders = require("./solidBuilders-Z_qVHPZi.cjs");
47
- const require_cornerFinder = require("./cornerFinder-DcTlpavc.cjs");
48
- const require_extrudeFns = require("./extrudeFns-C4_eTRoy.cjs");
42
+ const require_surfaceBuilders = require("./surfaceBuilders-CSkzjM8v.cjs");
43
+ const require_boolean2D = require("./boolean2D-Bsdb31mM.cjs");
44
+ const require_helpers = require("./helpers-DcOHqOfT.cjs");
45
+ const require_blueprint = require("./blueprint-Dy7ARPXJ.cjs");
46
+ const require_solidBuilders = require("./solidBuilders-Buy3oAve.cjs");
47
+ const require_cornerFinder = require("./cornerFinder-TYHShzGu.cjs");
48
+ const require_extrudeFns = require("./extrudeFns-C2dk_SwT.cjs");
49
49
  let opentype_js = require("opentype.js");
50
50
  opentype_js = __toESM(opentype_js);
51
51
  //#region src/2d/lib/stitching.ts
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-BnE1sBpb.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-h0bo6yCZ.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
3
  const require_vecOps = require("./vecOps-BXvBYIor.cjs");
4
4
  //#region src/operations/extrudeUtils.ts
@@ -1,4 +1,4 @@
1
- import { Y as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-06dQA9ET.js";
1
+ import { Y as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-CvGzaTYd.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
3
3
  import { c as vecLength, d as vecNormalize, t as vecAdd } from "./vecOps-D9etjPgV.js";
4
4
  //#region src/operations/extrudeUtils.ts