brepjs 18.61.0 → 18.62.1

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 (76) hide show
  1. package/README.md +30 -0
  2. package/dist/2d.cjs +6 -6
  3. package/dist/2d.js +6 -6
  4. package/dist/{blueprint-U7q8mCkd.js → blueprint-C6RmibWk.js} +5 -5
  5. package/dist/{blueprint-oAHtiBNZ.cjs → blueprint-DLu8ye65.cjs} +5 -5
  6. package/dist/{blueprintFns-BXIg6yIJ.cjs → blueprintFns-DV-H9feq.cjs} +2 -2
  7. package/dist/{blueprintFns-B430IS5G.js → blueprintFns-Dq_Pd0wn.js} +2 -2
  8. package/dist/{blueprintSketcher-BMy4GYLb.cjs → blueprintSketcher-CHXFt247.cjs} +3 -3
  9. package/dist/{blueprintSketcher-CpYK3eMF.js → blueprintSketcher-LjvOXfG9.js} +3 -3
  10. package/dist/{boolean2D-BVGfOj7k.js → boolean2D-CXgu27uZ.js} +4 -4
  11. package/dist/{boolean2D-CalRrd7P.cjs → boolean2D-Yi64P8Lm.cjs} +4 -4
  12. package/dist/{booleanFns-BF1OlY3H.js → booleanFns-BDQnkWFg.js} +4 -4
  13. package/dist/{booleanFns-CejWQwHg.cjs → booleanFns-Dc6okcNf.cjs} +4 -4
  14. package/dist/brepjs.cjs +24 -24
  15. package/dist/brepjs.js +24 -24
  16. package/dist/{cameraFns-CDmeZqa_.js → cameraFns-0-J1bY6t.js} +2 -2
  17. package/dist/{cameraFns-DkasWoY3.cjs → cameraFns-DomX3Plu.cjs} +2 -2
  18. package/dist/core.cjs +1 -1
  19. package/dist/core.js +1 -1
  20. package/dist/{cornerFinder-mUvhWdNG.js → cornerFinder-CegWolhx.js} +1 -1
  21. package/dist/{cornerFinder-mHD8eDmo.cjs → cornerFinder-ClMOrRzh.cjs} +1 -1
  22. package/dist/{curveFns-Ba1IEqn_.cjs → curveFns-DbKwrIkB.cjs} +1 -1
  23. package/dist/{curveFns-C_va_3Js.js → curveFns-Sd40KJvV.js} +1 -1
  24. package/dist/{drawFns-DGENZIVf.cjs → drawFns-C8SC0CG1.cjs} +12 -12
  25. package/dist/{drawFns-zcgjasyw.js → drawFns-DQqbUdj_.js} +12 -12
  26. package/dist/{extrudeFns-DiIGGA5r.cjs → extrudeFns-BE5tD51l.cjs} +1 -1
  27. package/dist/{extrudeFns-BkOhPexa.js → extrudeFns-g_5oi_Z7.js} +1 -1
  28. package/dist/{faceFns-eCr0tWic.cjs → faceFns-BQTKMhAC.cjs} +2 -2
  29. package/dist/{faceFns-DUmTMdax.js → faceFns-Bbix8B9u.js} +2 -2
  30. package/dist/{helpers-Cpw0iU4L.cjs → helpers-BfHmMhUR.cjs} +6 -6
  31. package/dist/{helpers-C7WpHbhO.js → helpers-Dd-L1roG.js} +6 -6
  32. package/dist/{historyFns-BVNMHteL.js → historyFns-B9o7aDyd.js} +4 -4
  33. package/dist/{historyFns-B5zXm33l.cjs → historyFns-BarNZqzL.cjs} +4 -4
  34. package/dist/{importFns-BQEVbZwt.cjs → importFns-B5lQLt1L.cjs} +2 -2
  35. package/dist/{importFns-DcUisQj3.js → importFns-lLr9YlOX.js} +2 -2
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/{measureFns-BdYuCuf9.js → measureFns-Bd4JAmjS.js} +3 -3
  39. package/dist/{measureFns-Bve7WG1g.cjs → measureFns-C4vQUvbq.cjs} +3 -3
  40. package/dist/measurement.cjs +1 -1
  41. package/dist/measurement.js +1 -1
  42. package/dist/{meshFns-Hxj3Vngd.cjs → meshFns-Dpfjcbrg.cjs} +3 -3
  43. package/dist/{meshFns-BtjQFcwe.js → meshFns-DykZRUnb.js} +3 -3
  44. package/dist/operations.cjs +2 -2
  45. package/dist/operations.js +2 -2
  46. package/dist/{primitiveFns-n-OA8SFM.cjs → primitiveFns-CW8_7RPe.cjs} +7 -7
  47. package/dist/{primitiveFns-ODt9feUB.js → primitiveFns-vOwZZo8w.js} +7 -7
  48. package/dist/projection.cjs +1 -1
  49. package/dist/projection.js +1 -1
  50. package/dist/query.cjs +2 -2
  51. package/dist/query.js +2 -2
  52. package/dist/{shapeFns-Dl7cAveQ.cjs → shapeFns-B7G5VsUD.cjs} +2 -2
  53. package/dist/{shapeFns-CGiJTWpD.js → shapeFns-xQvCdTPe.js} +2 -2
  54. package/dist/shapeRef.cjs +1 -1
  55. package/dist/shapeRef.js +1 -1
  56. package/dist/{shapeRefFns-CqLB7rA2.js → shapeRefFns-CAdRRwOu.js} +4 -4
  57. package/dist/{shapeRefFns-DppFONN_.cjs → shapeRefFns-DNMvu2Nc.cjs} +4 -4
  58. package/dist/{shapeTypes-DgN4lV-c.cjs → shapeTypes-DVlIrfVF.cjs} +103 -117
  59. package/dist/{shapeTypes-BGeihZZ2.js → shapeTypes-DsbDmdSa.js} +103 -117
  60. package/dist/sketching.cjs +3 -3
  61. package/dist/sketching.js +3 -3
  62. package/dist/{solidBuilders-C8x5hl-i.cjs → solidBuilders-BPfkZU5h.cjs} +2 -2
  63. package/dist/{solidBuilders-C_i7lfl1.js → solidBuilders-vD_StQ_i.js} +2 -2
  64. package/dist/{surfaceBuilders-OuKORf6n.js → surfaceBuilders-2qnBuaeF.js} +2 -2
  65. package/dist/{surfaceBuilders-8Q5NVxkT.cjs → surfaceBuilders-Bj6wi_Vf.cjs} +2 -2
  66. package/dist/text.cjs +2 -2
  67. package/dist/text.js +2 -2
  68. package/dist/{textBlueprints-CMszuH5i.cjs → textBlueprints-CrXC83B_.cjs} +7 -7
  69. package/dist/{textBlueprints-CjWzCUDy.js → textBlueprints-WI8cd6vk.js} +7 -7
  70. package/dist/{textMetrics-ogNOndAW.cjs → textMetrics-BkLQQDnZ.cjs} +1 -1
  71. package/dist/{textMetrics-nDL3MTCV.js → textMetrics-C4zPIVKl.js} +1 -1
  72. package/dist/topology.cjs +7 -7
  73. package/dist/topology.js +7 -7
  74. package/dist/{topologyQueryFns-CTq8qOKc.cjs → topologyQueryFns-C1iv5CpR.cjs} +1 -1
  75. package/dist/{topologyQueryFns-B_zXrMDh.js → topologyQueryFns-CCLGa2wQ.js} +1 -1
  76. package/package.json +1 -1
@@ -387,7 +387,7 @@ function iterShapesJS(oc, shape, type) {
387
387
  /**
388
388
  * Iterates sub-shapes of a given type, using C++ bulk extraction when available.
389
389
  */
390
- function iterShapes$1(oc, shape, type) {
390
+ function iterShapes$2(oc, shape, type) {
391
391
  if (oc.TopologyExtractor) return iterShapesBulk(oc, shape, type);
392
392
  return iterShapesJS(oc, shape, type);
393
393
  }
@@ -416,7 +416,7 @@ function getShapeTypeMap(oc) {
416
416
  /**
417
417
  * Returns the shape type string for a given shape.
418
418
  */
419
- function shapeType$1(oc, shape) {
419
+ function shapeType$2(oc, shape) {
420
420
  if (shape.IsNull()) throw new Error("Cannot determine shape type: shape is null");
421
421
  const result = getShapeTypeMap(oc).get(shape.ShapeType());
422
422
  if (!result) throw new Error("Unknown shape type enum value");
@@ -468,7 +468,7 @@ function iterShapeList$1(oc, list, callback) {
468
468
  /**
469
469
  * Checks if two shapes are the same (same TShape, location, and orientation).
470
470
  */
471
- function isSame$1(a, b) {
471
+ function isSame$2(a, b) {
472
472
  return a.IsSame(b);
473
473
  }
474
474
  /**
@@ -480,12 +480,12 @@ function isEqual$1(a, b) {
480
480
  /** Co-located factory: returns the topology-iteration slice of {@link KernelAdapter} bound to `oc`. */
481
481
  function makeTopologyOps$2(oc) {
482
482
  return {
483
- iterShapes: (shape, type) => iterShapes$1(oc, shape, type),
483
+ iterShapes: (shape, type) => iterShapes$2(oc, shape, type),
484
484
  iterShapeList: (list, callback) => {
485
485
  iterShapeList$1(oc, list, callback);
486
486
  },
487
- shapeType: (shape) => shapeType$1(oc, shape),
488
- isSame: (a, b) => isSame$1(a, b),
487
+ shapeType: (shape) => shapeType$2(oc, shape),
488
+ isSame: (a, b) => isSame$2(a, b),
489
489
  isEqual: (a, b) => isEqual$1(a, b),
490
490
  isValid: (shape) => isValid$1(oc, shape),
491
491
  sew: (shapes, tolerance) => sew$1(oc, shapes, tolerance)
@@ -874,7 +874,7 @@ function makeFace$1(oc, wire, planar = true) {
874
874
  return face;
875
875
  }
876
876
  const builder = new oc.BRepOffsetAPI_MakeFilling(3, 15, 2, false, 1e-5, 1e-4, .01, .1, 8, 9);
877
- const edges = iterShapes$1(oc, wire, "edge");
877
+ const edges = iterShapes$2(oc, wire, "edge");
878
878
  for (const edge of edges) builder.Add_1(edge, oc.GeomAbs_Shape.GeomAbs_C0, true);
879
879
  const progress = new oc.Message_ProgressRange_1();
880
880
  builder.Build(progress);
@@ -2772,11 +2772,11 @@ function shapeTypeStr(oc, shape) {
2772
2772
  return "compound";
2773
2773
  }
2774
2774
  /** Get the hash code of a shape. */
2775
- function hashCode$1(oc, shape, upperBound) {
2775
+ function hashCode$2(oc, shape, upperBound) {
2776
2776
  return oc.shapeHashCode(shape, upperBound);
2777
2777
  }
2778
2778
  /** Check if a shape is null. */
2779
- function isNull$1(_oc, shape) {
2779
+ function isNull$2(_oc, shape) {
2780
2780
  return shape.IsNull();
2781
2781
  }
2782
2782
  /** Return a copy of the shape with reversed orientation. */
@@ -2871,8 +2871,8 @@ function makeGeometryQueryOps(oc) {
2871
2871
  curveParameters: (shape) => curveParameters$1(oc, shape),
2872
2872
  shapeOrientation: (shape) => shapeOrientation$1(oc, shape),
2873
2873
  downcast: (shape, type) => downcast$1(oc, shape, type),
2874
- hashCode: (shape, upperBound) => hashCode$1(oc, shape, upperBound),
2875
- isNull: (shape) => isNull$1(oc, shape),
2874
+ hashCode: (shape, upperBound) => hashCode$2(oc, shape, upperBound),
2875
+ isNull: (shape) => isNull$2(oc, shape),
2876
2876
  hasTriangulation: (shape) => hasTriangulation$2(oc, shape),
2877
2877
  meshShape: (shape, tolerance, angularTolerance) => {
2878
2878
  meshShape$2(oc, shape, tolerance, angularTolerance);
@@ -5130,7 +5130,7 @@ function fillSurface$1(oc, wires, options = {}) {
5130
5130
  const { order = 3, nbPtsOnCur = 15, nbIter = 2, tol3d = 1e-5, tol2d = 1e-4, maxDeg = 8, maxSeg = 9 } = options;
5131
5131
  const builder = new oc.BRepOffsetAPI_MakeFilling(order, nbPtsOnCur, nbIter, false, tol3d, tol2d, .01, .1, maxDeg, maxSeg);
5132
5132
  for (let wi = 0; wi < wires.length; wi++) {
5133
- const edges = iterShapes$1(oc, wires[wi], "edge");
5133
+ const edges = iterShapes$2(oc, wires[wi], "edge");
5134
5134
  for (const edge of edges) builder.Add_1(edge, oc.GeomAbs_Shape.GeomAbs_C0, wi === 0);
5135
5135
  }
5136
5136
  const progress = new oc.Message_ProgressRange_1();
@@ -5590,9 +5590,9 @@ function resolveUniformAngle(faces, angleDeg) {
5590
5590
  //#region src/kernel/brepkit/topologyOps.ts
5591
5591
  function iterCompound(bk, h, type) {
5592
5592
  const children = syntheticCompounds.get(h);
5593
- if (children) return children.flatMap((child) => child.type === type ? [child] : iterShapes(bk, child, type));
5593
+ if (children) return children.flatMap((child) => child.type === type ? [child] : iterShapes$1(bk, child, type));
5594
5594
  if (type === "solid") return toArray(bk.getCompoundSolids(h)).map(solidHandle);
5595
- if (type === "face" || type === "edge" || type === "vertex" || type === "wire") return toArray(bk.getCompoundSolids(h)).map(solidHandle).flatMap((s) => iterShapes(bk, s, type));
5595
+ if (type === "face" || type === "edge" || type === "vertex" || type === "wire") return toArray(bk.getCompoundSolids(h)).map(solidHandle).flatMap((s) => iterShapes$1(bk, s, type));
5596
5596
  return [];
5597
5597
  }
5598
5598
  function iterSolid(bk, h, type) {
@@ -5608,7 +5608,7 @@ function iterShellChildren(bk, h, type) {
5608
5608
  const faces = toArray(bk.getShellFaces(h)).map(faceHandle);
5609
5609
  const seen = /* @__PURE__ */ new Set();
5610
5610
  const results = [];
5611
- for (const face of faces) for (const child of iterShapes(bk, face, type)) {
5611
+ for (const face of faces) for (const child of iterShapes$1(bk, face, type)) {
5612
5612
  const childId = unwrap$1(child);
5613
5613
  if (seen.has(childId)) continue;
5614
5614
  seen.add(childId);
@@ -5668,7 +5668,7 @@ function iterEdge(bk, shape, h, type) {
5668
5668
  }
5669
5669
  return [];
5670
5670
  }
5671
- function iterShapes(bk, shape, type) {
5671
+ function iterShapes$1(bk, shape, type) {
5672
5672
  const h = unwrap$1(shape);
5673
5673
  switch (shape.type) {
5674
5674
  case "compound": return iterCompound(bk, h, type);
@@ -5683,31 +5683,31 @@ function iterShapes(bk, shape, type) {
5683
5683
  function iterShapeList(_bk, list, callback) {
5684
5684
  if (Array.isArray(list)) for (const item of list) callback(item);
5685
5685
  }
5686
- function shapeType(_bk, shape) {
5686
+ function shapeType$1(_bk, shape) {
5687
5687
  if (isBrepkitHandle(shape)) return shape.type;
5688
5688
  throw new Error("brepkit: cannot determine shape type of non-brepkit handle");
5689
5689
  }
5690
- function isSame(_bk, a, b) {
5690
+ function isSame$1(_bk, a, b) {
5691
5691
  return isBrepkitHandle(a) && isBrepkitHandle(b) && a.id === b.id && a.type === b.type;
5692
5692
  }
5693
5693
  function isEqual(_bk, a, b) {
5694
- return isSame(_bk, a, b);
5694
+ return isSame$1(_bk, a, b);
5695
5695
  }
5696
5696
  function downcast(_bk, shape, _type) {
5697
5697
  return shape;
5698
5698
  }
5699
- function hashCode(_bk, shape, upperBound) {
5699
+ function hashCode$1(_bk, shape, upperBound) {
5700
5700
  if (!isBrepkitHandle(shape)) return 0;
5701
5701
  return shape.id % upperBound;
5702
5702
  }
5703
- function isNull(_bk, shape) {
5703
+ function isNull$1(_bk, shape) {
5704
5704
  return !shape || !isBrepkitHandle(shape);
5705
5705
  }
5706
5706
  function shapeOrientation(bk, shape) {
5707
5707
  const h = unwrap$1(shape);
5708
5708
  return bk.getShapeOrientation(h);
5709
5709
  }
5710
- function edgeToFaceMap(bk, shape) {
5710
+ function edgeToFaceMap$1(bk, shape) {
5711
5711
  const solidId = unwrapSolidOrThrow(shape, "edgeToFaceMap");
5712
5712
  return bk.edgeToFaceMap(solidId);
5713
5713
  }
@@ -5716,7 +5716,7 @@ function sharedEdges(bk, faceA, faceB) {
5716
5716
  const bId = unwrap$1(faceB, "face");
5717
5717
  return Array.from(bk.sharedEdges(aId, bId)).map((id) => edgeHandle(id));
5718
5718
  }
5719
- function adjacentFaces(bk, shape, face) {
5719
+ function adjacentFaces$1(bk, shape, face) {
5720
5720
  const solidId = unwrapSolidOrThrow(shape, "adjacentFaces");
5721
5721
  const faceId = unwrap$1(face, "face");
5722
5722
  return Array.from(bk.adjacentFaces(solidId, faceId)).map((id) => faceHandle(id));
@@ -5741,20 +5741,20 @@ function sew(bk, shapes, tolerance) {
5741
5741
  /** Co-located factory: returns the topology-iteration slice of {@link KernelAdapter} bound to `bk`. */
5742
5742
  function makeTopologyOps$1(bk) {
5743
5743
  return {
5744
- iterShapes: (shape, type) => iterShapes(bk, shape, type),
5744
+ iterShapes: (shape, type) => iterShapes$1(bk, shape, type),
5745
5745
  iterShapeList: (list, callback) => {
5746
5746
  iterShapeList(bk, list, callback);
5747
5747
  },
5748
- shapeType: (shape) => shapeType(bk, shape),
5749
- isSame: (a, b) => isSame(bk, a, b),
5748
+ shapeType: (shape) => shapeType$1(bk, shape),
5749
+ isSame: (a, b) => isSame$1(bk, a, b),
5750
5750
  isEqual: (a, b) => isEqual(bk, a, b),
5751
5751
  downcast: (shape, type) => downcast(bk, shape, type),
5752
- hashCode: (shape, upperBound) => hashCode(bk, shape, upperBound),
5753
- isNull: (shape) => isNull(bk, shape),
5752
+ hashCode: (shape, upperBound) => hashCode$1(bk, shape, upperBound),
5753
+ isNull: (shape) => isNull$1(bk, shape),
5754
5754
  shapeOrientation: (shape) => shapeOrientation(bk, shape),
5755
- edgeToFaceMap: (shape) => edgeToFaceMap(bk, shape),
5755
+ edgeToFaceMap: (shape) => edgeToFaceMap$1(bk, shape),
5756
5756
  sharedEdges: (faceA, faceB) => sharedEdges(bk, faceA, faceB),
5757
- adjacentFaces: (shape, face) => adjacentFaces(bk, shape, face),
5757
+ adjacentFaces: (shape, face) => adjacentFaces$1(bk, shape, face),
5758
5758
  sew: (shapes, tolerance) => sew(bk, shapes, tolerance)
5759
5759
  };
5760
5760
  }
@@ -5900,7 +5900,7 @@ function curvePeriod(bk, shape) {
5900
5900
  }
5901
5901
  function curveType(bk, shape) {
5902
5902
  if (shape.type === "wire") {
5903
- const first = iterShapes(bk, shape, "edge")[0];
5903
+ const first = iterShapes$1(bk, shape, "edge")[0];
5904
5904
  if (first) return bk.getEdgeCurveType(unwrap$1(first, "edge"));
5905
5905
  return "LINE";
5906
5906
  }
@@ -5976,7 +5976,7 @@ function recognizeFeatures(bk, shape, tolerance) {
5976
5976
  return bk.recognizeFeatures(solidId, tolerance);
5977
5977
  }
5978
5978
  function projectEdges(bk, shape, _cameraOrigin, _cameraDirection, _cameraXAxis) {
5979
- const edges = iterShapes(bk, shape, "edge");
5979
+ const edges = iterShapes$1(bk, shape, "edge");
5980
5980
  const emptyCompound = edges.length > 0 ? edges[0] : shape;
5981
5981
  return {
5982
5982
  visible: {
@@ -6231,7 +6231,7 @@ function extractPlaneFromFace(bk, faceShape) {
6231
6231
  let faceId;
6232
6232
  const h = faceShape;
6233
6233
  if (h.type === "solid" || h.type === "compound") {
6234
- const faces = iterShapes(bk, faceShape, "face");
6234
+ const faces = iterShapes$1(bk, faceShape, "face");
6235
6235
  if (faces.length === 0) throw new Error("brepkit: extractPlaneFromFace: no faces found");
6236
6236
  const firstFace = faces[0];
6237
6237
  if (!firstFace) throw new Error("brepkit: extractPlaneFromFace: no faces found");
@@ -7377,7 +7377,7 @@ function brepkitJoinType(joinType) {
7377
7377
  }
7378
7378
  function offsetWire2D(bk, wire, offsetVal, joinType) {
7379
7379
  if (typeof bk.offsetWire2DWithJoin === "function") return wireHandle(bk.offsetWire2DWithJoin(unwrap$1(wire, "wire"), offsetVal, brepkitJoinType(joinType)));
7380
- const edges = iterShapes(bk, wire, "edge");
7380
+ const edges = iterShapes$1(bk, wire, "edge");
7381
7381
  if (edges.length === 0) return wire;
7382
7382
  const coords2d = [];
7383
7383
  for (const edge of edges) {
@@ -8780,7 +8780,7 @@ function fixWireOnFace(wire, _face, _tolerance) {
8780
8780
  }
8781
8781
  function fillSurface(bk, wires, _options) {
8782
8782
  if (wires.length >= 1) {
8783
- const wireEdges = iterShapes(bk, wires[0], "edge");
8783
+ const wireEdges = iterShapes$1(bk, wires[0], "edge");
8784
8784
  if (wireEdges.length === 4) {
8785
8785
  const allCoords = [];
8786
8786
  const curveLengths = [];
@@ -8892,7 +8892,7 @@ function volume$1(bk, shape) {
8892
8892
  const h = shape;
8893
8893
  if (h.type === "solid") return bk.volume(unwrap$1(shape), DEFAULT_DEFLECTION);
8894
8894
  if (h.type === "compound") {
8895
- const solids = iterShapes(bk, shape, "solid");
8895
+ const solids = iterShapes$1(bk, shape, "solid");
8896
8896
  let total = 0;
8897
8897
  for (const s of solids) total += bk.volume(unwrap$1(s), DEFAULT_DEFLECTION);
8898
8898
  return total;
@@ -8904,7 +8904,7 @@ function area$1(bk, shape) {
8904
8904
  if (h.type === "face") return bk.faceArea(unwrap$1(shape), DEFAULT_DEFLECTION);
8905
8905
  if (h.type === "solid") return bk.surfaceArea(unwrap$1(shape), DEFAULT_DEFLECTION);
8906
8906
  if (h.type === "compound") {
8907
- const faces = iterShapes(bk, shape, "face");
8907
+ const faces = iterShapes$1(bk, shape, "face");
8908
8908
  let total = 0;
8909
8909
  for (const face of faces) total += bk.faceArea(unwrap$1(face), DEFAULT_DEFLECTION);
8910
8910
  return total;
@@ -8935,7 +8935,7 @@ function centerOfMass$1(bk, shape) {
8935
8935
  }
8936
8936
  if (h.type === "edge") return edgeMidpoint(bk, h.id);
8937
8937
  if (h.type === "vertex") return vertexPosition(bk, shape);
8938
- const vertices = iterShapes(bk, shape, "vertex");
8938
+ const vertices = iterShapes$1(bk, shape, "vertex");
8939
8939
  if (vertices.length > 0) {
8940
8940
  let sx = 0, sy = 0, sz = 0;
8941
8941
  for (const v of vertices) {
@@ -8977,7 +8977,7 @@ function boundingBox$1(bk, shape) {
8977
8977
  max: [...pos]
8978
8978
  };
8979
8979
  }
8980
- const vertices = iterShapes(bk, shape, "vertex");
8980
+ const vertices = iterShapes$1(bk, shape, "vertex");
8981
8981
  if (vertices.length === 0) return {
8982
8982
  min: [
8983
8983
  0,
@@ -9409,7 +9409,7 @@ function sweep(bk, wire, spine, options) {
9409
9409
  const profileHandle = wire;
9410
9410
  const faceId = profileHandle.type === "wire" ? bk.makeFaceFromWire(profileHandle.id) : unwrap$1(wire, "face");
9411
9411
  if (spine.type === "wire") {
9412
- const edgeIds = iterShapes(bk, spine, "edge").map((e) => unwrap$1(e, "edge"));
9412
+ const edgeIds = iterShapes$1(bk, spine, "edge").map((e) => unwrap$1(e, "edge"));
9413
9413
  if (contactMode && edgeIds.length === 1) {
9414
9414
  const edgeId = edgeIds[0];
9415
9415
  if (edgeId !== void 0) return solidHandle(bk.sweepWithOptions(faceId, edgeId, contactMode, [], 0, "transformed"));
@@ -9429,7 +9429,7 @@ function simplePipe(bk, profile, spine) {
9429
9429
  const profileHandle = profile;
9430
9430
  const faceId = profileHandle.type === "wire" ? bk.makeFaceFromWire(profileHandle.id) : unwrap$1(profile, "face");
9431
9431
  if (spine.type === "wire") {
9432
- const edgeIds = iterShapes(bk, spine, "edge").map((e) => unwrap$1(e, "edge"));
9432
+ const edgeIds = iterShapes$1(bk, spine, "edge").map((e) => unwrap$1(e, "edge"));
9433
9433
  return solidHandle(bk.sweepAlongEdges(faceId, edgeIds));
9434
9434
  }
9435
9435
  const nurbsData = extractNurbsFromEdge(bk, spine);
@@ -9472,7 +9472,7 @@ function tryContactModeSweep(bk, faceId, edgeId, contactMode) {
9472
9472
  function resolveContactModeEdge(bk, spine) {
9473
9473
  try {
9474
9474
  if (spine.type !== "wire") return { edgeId: unwrap$1(spine, "edge") };
9475
- const edges = iterShapes(bk, spine, "edge");
9475
+ const edges = iterShapes$1(bk, spine, "edge");
9476
9476
  if (edges.length === 1) {
9477
9477
  const first = edges[0];
9478
9478
  if (first) return { edgeId: unwrap$1(first, "edge") };
@@ -9738,12 +9738,11 @@ function nodeOf(shape) {
9738
9738
  function asManifoldShape(shape) {
9739
9739
  if (shape && typeof shape === "object" && "manifold" in shape && "node" in shape) return shape;
9740
9740
  }
9741
+ var OCCT_FAMILY_IDS = ["occt", "occt-wasm"];
9741
9742
  function resolveOcct() {
9742
- try {
9743
- return getKernel("occt");
9744
- } catch {
9745
- return;
9746
- }
9743
+ for (const id of OCCT_FAMILY_IDS) try {
9744
+ return getKernel(id);
9745
+ } catch {}
9747
9746
  }
9748
9747
  function occtOrThrow(method) {
9749
9748
  const occt = resolveOcct();
@@ -12068,79 +12067,70 @@ function brepOf(shape, method) {
12068
12067
  brep
12069
12068
  };
12070
12069
  }
12070
+ function shapeType(shape) {
12071
+ if (asManifoldShape(shape)) return "solid";
12072
+ const { occt, brep } = brepOf(shape, "shapeType");
12073
+ return occt.shapeType(brep);
12074
+ }
12075
+ function isSame(a, b) {
12076
+ const sa = asManifoldShape(a);
12077
+ const sb = asManifoldShape(b);
12078
+ if (!sa || !sb) return false;
12079
+ return sa.manifold === sb.manifold;
12080
+ }
12081
+ function hashCode(shape, upperBound) {
12082
+ if (!asManifoldShape(shape)) return 0;
12083
+ const { occt, brep } = brepOf(shape, "hashCode");
12084
+ return occt.hashCode(brep, upperBound);
12085
+ }
12086
+ function isNull(shape) {
12087
+ const s = asManifoldShape(shape);
12088
+ if (!s) return true;
12089
+ const solid = unwrap(s);
12090
+ return !solid || typeof solid.isEmpty === "function" && solid.isEmpty();
12091
+ }
12092
+ function iterShapes(shape, type) {
12093
+ const s = asManifoldShape(shape);
12094
+ if (!s) return [];
12095
+ if (type === "solid") return [shape];
12096
+ if (type !== "edge" && type !== "face") return [];
12097
+ if (!s.node.replayable) return [];
12098
+ const occt = resolveOcct();
12099
+ if (!occt) return [];
12100
+ const brep = brepCache.get(s.node) ?? (() => {
12101
+ const b = replay(s.node, occt);
12102
+ brepCache.set(s.node, b);
12103
+ return b;
12104
+ })();
12105
+ return occt.iterShapes(brep, type).map((sub, index) => ({
12106
+ __manifoldSub: true,
12107
+ index,
12108
+ box: occt.boundingBox(sub)
12109
+ }));
12110
+ }
12111
+ function edgeToFaceMap(shape) {
12112
+ const { occt, brep } = brepOf(shape, "edgeToFaceMap");
12113
+ return occt.edgeToFaceMap(brep);
12114
+ }
12115
+ function adjacentFaces(shape, face) {
12116
+ const { occt, brep } = brepOf(shape, "adjacentFaces");
12117
+ return occt.adjacentFaces(brep, face);
12118
+ }
12071
12119
  function makeTopologyOps(_module) {
12072
- function shapeType(shape) {
12073
- const { occt, brep } = brepOf(shape, "shapeType");
12074
- return occt.shapeType(brep);
12075
- }
12076
- function isSame(a, b) {
12077
- const sa = asManifoldShape(a);
12078
- const sb = asManifoldShape(b);
12079
- if (!sa || !sb) return false;
12080
- return sa.manifold === sb.manifold;
12081
- }
12082
- function isEqual(a, b) {
12083
- return isSame(a, b);
12084
- }
12085
- function hashCode(shape, upperBound) {
12086
- if (!asManifoldShape(shape)) return 0;
12087
- const { occt, brep } = brepOf(shape, "hashCode");
12088
- return occt.hashCode(brep, upperBound);
12089
- }
12090
- function isNull(shape) {
12091
- const s = asManifoldShape(shape);
12092
- if (!s) return true;
12093
- const solid = unwrap(s);
12094
- return !solid || typeof solid.isEmpty === "function" && solid.isEmpty();
12095
- }
12096
- function shapeOrientation(_shape) {
12097
- return "forward";
12098
- }
12099
- function iterShapes(shape, type) {
12100
- const s = asManifoldShape(shape);
12101
- if (!s) return [];
12102
- if (type === "solid") return [shape];
12103
- if (type !== "edge" && type !== "face") return [];
12104
- if (!s.node.replayable) return [];
12105
- const occt = resolveOcct();
12106
- if (!occt) return [];
12107
- const brep = brepCache.get(s.node) ?? (() => {
12108
- const b = replay(s.node, occt);
12109
- brepCache.set(s.node, b);
12110
- return b;
12111
- })();
12112
- return occt.iterShapes(brep, type).map((sub, index) => ({
12113
- __manifoldSub: true,
12114
- index,
12115
- box: occt.boundingBox(sub)
12116
- }));
12117
- }
12118
- function iterShapeList(list, callback) {
12119
- occtOrThrow("iterShapeList").iterShapeList(list, callback);
12120
- }
12121
- function edgeToFaceMap(shape) {
12122
- const { occt, brep } = brepOf(shape, "edgeToFaceMap");
12123
- return occt.edgeToFaceMap(brep);
12124
- }
12125
- function sharedEdges(faceA, faceB) {
12126
- return occtOrThrow("sharedEdges").sharedEdges(faceA, faceB);
12127
- }
12128
- function adjacentFaces(shape, face) {
12129
- const { occt, brep } = brepOf(shape, "adjacentFaces");
12130
- return occt.adjacentFaces(brep, face);
12131
- }
12132
12120
  return {
12133
12121
  iterShapes,
12134
- iterShapeList,
12122
+ iterShapeList: (list, callback) => {
12123
+ occtOrThrow("iterShapeList").iterShapeList(list, callback);
12124
+ },
12135
12125
  shapeType,
12136
12126
  isSame,
12137
- isEqual,
12127
+ isEqual: isSame,
12138
12128
  downcast: (shape) => shape,
12139
12129
  hashCode,
12140
12130
  isNull,
12141
- shapeOrientation,
12131
+ shapeOrientation: (_shape) => "forward",
12142
12132
  edgeToFaceMap,
12143
- sharedEdges,
12133
+ sharedEdges: (faceA, faceB) => occtOrThrow("sharedEdges").sharedEdges(faceA, faceB),
12144
12134
  adjacentFaces,
12145
12135
  sew: () => {
12146
12136
  throw new Error("manifold: sew is unsupported on the mesh kernel; use a B-rep kernel");
@@ -12888,12 +12878,8 @@ var KERNEL_2D_METHODS = [
12888
12878
  "fillSurface"
12889
12879
  ];
12890
12880
  function resolveOcct2D(method) {
12891
- let occt;
12892
- try {
12893
- occt = getKernel("occt");
12894
- } catch {
12895
- throw new Error(`manifold: ${method} unsupported on manifold kernel; no B-rep kernel registered`);
12896
- }
12881
+ const occt = resolveOcct();
12882
+ if (!occt) throw new Error(`manifold: ${method} unsupported on manifold kernel; no B-rep kernel registered`);
12897
12883
  return occt;
12898
12884
  }
12899
12885
  function makeKernel2DOps(_module) {
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-CMszuH5i.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-BMy4GYLb.cjs");
4
- const require_drawFns = require("./drawFns-DGENZIVf.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-CrXC83B_.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-CHXFt247.cjs");
4
+ const require_drawFns = require("./drawFns-C8SC0CG1.cjs");
5
5
  //#region src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-CpYK3eMF.js";
2
- import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-zcgjasyw.js";
3
- import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-CjWzCUDy.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-LjvOXfG9.js";
2
+ import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-DQqbUdj_.js";
3
+ import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-WI8cd6vk.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DgN4lV-c.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DVlIrfVF.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-eCr0tWic.cjs");
3
+ const require_faceFns = require("./faceFns-BQTKMhAC.cjs");
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-BGeihZZ2.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-DsbDmdSa.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { _ as downcast, g as cast } from "./faceFns-DUmTMdax.js";
3
+ import { _ as downcast, g as cast } from "./faceFns-Bbix8B9u.js";
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-BGeihZZ2.js";
1
+ import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-DsbDmdSa.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { g as cast, l as outerWire } from "./faceFns-DUmTMdax.js";
3
+ import { g as cast, l as outerWire } from "./faceFns-Bbix8B9u.js";
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DgN4lV-c.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DVlIrfVF.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-eCr0tWic.cjs");
3
+ const require_faceFns = require("./faceFns-BQTKMhAC.cjs");
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
package/dist/text.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-CMszuH5i.cjs");
3
- const require_textMetrics = require("./textMetrics-ogNOndAW.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-CrXC83B_.cjs");
3
+ const require_textMetrics = require("./textMetrics-BkLQQDnZ.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-CjWzCUDy.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-nDL3MTCV.js";
1
+ import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-WI8cd6vk.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-C4zPIVKl.js";
3
3
  export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
@@ -29,18 +29,18 @@ 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-DgN4lV-c.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-DVlIrfVF.cjs");
33
33
  const require_errors = require("./errors-CXJtc4I7.cjs");
34
34
  const require_types = require("./types-KjA8tY4Y.cjs");
35
35
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
36
36
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
37
- const require_faceFns = require("./faceFns-eCr0tWic.cjs");
38
- const require_curveFns = require("./curveFns-Ba1IEqn_.cjs");
37
+ const require_faceFns = require("./faceFns-BQTKMhAC.cjs");
38
+ const require_curveFns = require("./curveFns-DbKwrIkB.cjs");
39
39
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
40
- const require_surfaceBuilders = require("./surfaceBuilders-8Q5NVxkT.cjs");
41
- const require_blueprintSketcher = require("./blueprintSketcher-BMy4GYLb.cjs");
42
- const require_solidBuilders = require("./solidBuilders-C8x5hl-i.cjs");
43
- const require_extrudeFns = require("./extrudeFns-DiIGGA5r.cjs");
40
+ const require_surfaceBuilders = require("./surfaceBuilders-Bj6wi_Vf.cjs");
41
+ const require_blueprintSketcher = require("./blueprintSketcher-CHXFt247.cjs");
42
+ const require_solidBuilders = require("./solidBuilders-BPfkZU5h.cjs");
43
+ const require_extrudeFns = require("./extrudeFns-BE5tD51l.cjs");
44
44
  let opentype_js = require("opentype.js");
45
45
  opentype_js = __toESM(opentype_js, 1);
46
46
  //#region src/operations/loftFns.ts
@@ -1,15 +1,15 @@
1
- import { Z as getKernel, h as isShape3D, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-BGeihZZ2.js";
1
+ import { Z as getKernel, h as isShape3D, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-DsbDmdSa.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, r as ioError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
3
  import { r as toVec3 } from "./types-D24Y27N0.js";
4
4
  import { d as vecNormalize, h as vecScale, r as vecCross } from "./vecOps-SKPRvPH-.js";
5
5
  import { n as createPlane } from "./planeOps-DSjjtrjg.js";
6
- import { _ as downcast, g as cast } from "./faceFns-DUmTMdax.js";
7
- import { c as curveStartPoint, l as curveTangentAt } from "./curveFns-C_va_3Js.js";
6
+ import { _ as downcast, g as cast } from "./faceFns-Bbix8B9u.js";
7
+ import { c as curveStartPoint, l as curveTangentAt } from "./curveFns-Sd40KJvV.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
9
- import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-OuKORf6n.js";
10
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-CpYK3eMF.js";
11
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-C_i7lfl1.js";
12
- import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-BkOhPexa.js";
9
+ import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-2qnBuaeF.js";
10
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-LjvOXfG9.js";
11
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-vD_StQ_i.js";
12
+ import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-g_5oi_Z7.js";
13
13
  import opentype from "opentype.js";
14
14
  //#region src/operations/loftFns.ts
15
15
  /**
@@ -1,4 +1,4 @@
1
- const require_textBlueprints = require("./textBlueprints-CMszuH5i.cjs");
1
+ const require_textBlueprints = require("./textBlueprints-CrXC83B_.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  //#region src/text/sketchText.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
2
- import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-CjWzCUDy.js";
2
+ import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-WI8cd6vk.js";
3
3
  //#region src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
package/dist/topology.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_topologyQueryFns = require("./topologyQueryFns-CTq8qOKc.cjs");
3
- const require_faceFns = require("./faceFns-eCr0tWic.cjs");
4
- const require_shapeFns = require("./shapeFns-Dl7cAveQ.cjs");
5
- const require_curveFns = require("./curveFns-Ba1IEqn_.cjs");
6
- const require_meshFns = require("./meshFns-Hxj3Vngd.cjs");
7
- const require_booleanFns = require("./booleanFns-CejWQwHg.cjs");
8
- const require_primitiveFns = require("./primitiveFns-n-OA8SFM.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-C1iv5CpR.cjs");
3
+ const require_faceFns = require("./faceFns-BQTKMhAC.cjs");
4
+ const require_shapeFns = require("./shapeFns-B7G5VsUD.cjs");
5
+ const require_curveFns = require("./curveFns-DbKwrIkB.cjs");
6
+ const require_meshFns = require("./meshFns-Dpfjcbrg.cjs");
7
+ const require_booleanFns = require("./booleanFns-Dc6okcNf.cjs");
8
+ const require_primitiveFns = require("./primitiveFns-CW8_7RPe.cjs");
9
9
  exports.addHoles = require_primitiveFns.addHoles;
10
10
  exports.adjacentFaces = require_primitiveFns.adjacentFaces;
11
11
  exports.approximateCurve = require_curveFns.approximateCurve;