brepjs 15.2.9 → 15.2.11

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 (68) hide show
  1. package/dist/2d.cjs +5 -5
  2. package/dist/2d.js +5 -5
  3. package/dist/{blueprint-CbD0PYLr.cjs → blueprint-BkKnM_9w.cjs} +5 -5
  4. package/dist/{blueprint-CM1OOluq.js → blueprint-BqdFeOSN.js} +5 -5
  5. package/dist/{blueprintFns-_JcjAvPP.cjs → blueprintFns-DMk0Pxr4.cjs} +2 -2
  6. package/dist/{blueprintFns-BngkSCmA.js → blueprintFns-Ds8qYSpU.js} +2 -2
  7. package/dist/{boolean2D-THA5506z.cjs → boolean2D--RWVJEAM.cjs} +14 -8
  8. package/dist/{boolean2D-B-l_kvhp.js → boolean2D-DEiO0Uct.js} +14 -8
  9. package/dist/{booleanFns-D_DVbfzR.js → booleanFns-Cstp5Ep1.js} +4 -4
  10. package/dist/{booleanFns-CQNV8MMq.cjs → booleanFns-CwHfuxWc.cjs} +4 -4
  11. package/dist/brepjs.cjs +24 -23
  12. package/dist/brepjs.js +24 -23
  13. package/dist/core.cjs +1 -1
  14. package/dist/core.js +1 -1
  15. package/dist/{cornerFinder-4PxIzwrl.cjs → cornerFinder-DLxiZcyg.cjs} +1 -1
  16. package/dist/{cornerFinder-Ty3F7kPm.js → cornerFinder-K7cjTnkP.js} +1 -1
  17. package/dist/{curveFns-Bukd9jhv.cjs → curveFns-CQIv_biC.cjs} +1 -1
  18. package/dist/{curveFns-Dn4gbNzG.js → curveFns-D-0yqVb9.js} +1 -1
  19. package/dist/{drawFns-TaKrwQ13.js → drawFns-BU7zRJy2.js} +10 -10
  20. package/dist/{drawFns-C1XeyF0v.cjs → drawFns-CZZsnlAR.cjs} +10 -10
  21. package/dist/{extrudeFns-ClsoGp5V.js → extrudeFns-B3qZ8gzq.js} +49 -22
  22. package/dist/{extrudeFns-BjfEBgIw.cjs → extrudeFns-WHKS4Oef.cjs} +49 -22
  23. package/dist/{faceFns-DMFG-piP.js → faceFns-BQ7czFFV.js} +1 -1
  24. package/dist/{faceFns-CKL9Us23.cjs → faceFns-uX_AVFqu.cjs} +1 -1
  25. package/dist/{helpers-XTeLX4mm.js → helpers-C4r8ovx9.js} +5 -5
  26. package/dist/{helpers-BFyEt7Fv.cjs → helpers-CM63Nn7A.cjs} +5 -5
  27. package/dist/{historyFns-DltXL-vp.js → historyFns-BFuHqN_0.js} +4 -4
  28. package/dist/{historyFns-DBSgZGtF.cjs → historyFns-DkDJpwef.cjs} +4 -4
  29. package/dist/{importFns-C_PgMCn_.js → importFns--VkKJoDs.js} +2 -2
  30. package/dist/{importFns-DRNXwoUG.cjs → importFns--rg42dnv.cjs} +2 -2
  31. package/dist/io.cjs +2 -2
  32. package/dist/io.js +2 -2
  33. package/dist/kernel/occt/advancedOps.d.ts +6 -0
  34. package/dist/kernel/occt/advancedOps.d.ts.map +1 -1
  35. package/dist/kernel/occt/sweepOps.d.ts.map +1 -1
  36. package/dist/{measureFns-C2SnZLhD.cjs → measureFns-BxAZf4Mf.cjs} +2 -2
  37. package/dist/{measureFns-Zc5RWsI4.js → measureFns-D5DbMnQY.js} +2 -2
  38. package/dist/measurement.cjs +1 -1
  39. package/dist/measurement.js +1 -1
  40. package/dist/{meshFns-CO9qVJ24.cjs → meshFns-BdEOTCwK.cjs} +2 -2
  41. package/dist/{meshFns-gTPomZkK.js → meshFns-C9DtKU7q.js} +2 -2
  42. package/dist/operations/compoundOpsFns.d.ts.map +1 -1
  43. package/dist/operations/extrudeFns.d.ts.map +1 -1
  44. package/dist/operations/loftFns.d.ts.map +1 -1
  45. package/dist/operations/sweepFns.d.ts.map +1 -1
  46. package/dist/operations.cjs +2 -2
  47. package/dist/operations.js +2 -2
  48. package/dist/{primitiveFns-BAifgHMW.js → primitiveFns-Bpq2yFqw.js} +5 -5
  49. package/dist/{primitiveFns-CL6lNda-.cjs → primitiveFns-D3FvKWK-.cjs} +5 -5
  50. package/dist/query.cjs +2 -2
  51. package/dist/query.js +2 -2
  52. package/dist/{shapeFns-DkFzoJav.cjs → shapeFns-Dz2GNg2y.cjs} +2 -2
  53. package/dist/{shapeFns-QGgHStIU.js → shapeFns-LgyEtLGl.js} +2 -2
  54. package/dist/shapeRef.cjs +1 -1
  55. package/dist/shapeRef.js +1 -1
  56. package/dist/{shapeRefFns-Gv4-NGJD.js → shapeRefFns-CgnpumqW.js} +3 -3
  57. package/dist/{shapeRefFns-t-5-Aqku.cjs → shapeRefFns-N0wl6XSn.cjs} +3 -3
  58. package/dist/{shapeTypes-Ct7W6h2X.js → shapeTypes-B9a2ed1X.js} +48 -27
  59. package/dist/{shapeTypes-Bfw136X-.cjs → shapeTypes-hQK4eaEw.cjs} +48 -27
  60. package/dist/sketching.cjs +2 -2
  61. package/dist/sketching.js +2 -2
  62. package/dist/{solidBuilders-CQipZFOw.js → solidBuilders-C_-imolZ.js} +2 -2
  63. package/dist/{solidBuilders-DI9d6ZIx.cjs → solidBuilders-DUl2f7gY.cjs} +2 -2
  64. package/dist/{surfaceBuilders-Im6Xef27.js → surfaceBuilders-BY117AaY.js} +2 -2
  65. package/dist/{surfaceBuilders-DzTJA3fK.cjs → surfaceBuilders-D_w11wLr.cjs} +2 -2
  66. package/dist/topology.cjs +6 -6
  67. package/dist/topology.js +6 -6
  68. 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-Bfw136X-.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
3
3
  const require_errors = require("./errors-CXRNVCec.cjs");
4
- const require_faceFns = require("./faceFns-CKL9Us23.cjs");
5
- const require_boolean2D = require("./boolean2D-THA5506z.cjs");
6
- const require_blueprint = require("./blueprint-CbD0PYLr.cjs");
7
- const require_blueprintFns = require("./blueprintFns-_JcjAvPP.cjs");
4
+ const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
5
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
6
+ const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
7
+ const require_blueprintFns = require("./blueprintFns-DMk0Pxr4.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 { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-B9a2ed1X.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
3
- import { z as kernelCallRaw } from "./faceFns-DMFG-piP.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-B-l_kvhp.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-CM1OOluq.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-BngkSCmA.js";
3
+ import { z as kernelCallRaw } from "./faceFns-BQ7czFFV.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-DEiO0Uct.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-BqdFeOSN.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-Ds8qYSpU.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
- const require_shapeTypes = require("./shapeTypes-Bfw136X-.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-CKL9Us23.cjs");
3
+ const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_types = require("./types-gLi9wL0N.cjs");
6
6
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
7
- const require_curveFns = require("./curveFns-Bukd9jhv.cjs");
7
+ const require_curveFns = require("./curveFns-CQIv_biC.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-DzTJA3fK.cjs");
10
- const require_helpers = require("./helpers-BFyEt7Fv.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
10
+ const require_helpers = require("./helpers-CM63Nn7A.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,13 +1,13 @@
1
- import { G as unregisterFromCleanup, U as registerForCleanup, X as getKernel, Z as getKernel2D, a as createEdge, u as createWire } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { G as unregisterFromCleanup, U as registerForCleanup, X as getKernel, Z as getKernel2D, a as createEdge, u as createWire } from "./shapeTypes-B9a2ed1X.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, h as bug, n as computationError } from "./errors-DboJwVCf.js";
3
- import { M as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-DMFG-piP.js";
3
+ import { M as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-BQ7czFFV.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { r as toVec3 } from "./types--GD-LVc6.js";
6
6
  import { r as makePlane } from "./planeOps-sTrM3dcQ.js";
7
- import { f as getOrientation } from "./curveFns-Dn4gbNzG.js";
7
+ import { f as getOrientation } from "./curveFns-D-0yqVb9.js";
8
8
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
9
- import { r as makeFace } from "./surfaceBuilders-Im6Xef27.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-XTeLX4mm.js";
9
+ import { r as makeFace } from "./surfaceBuilders-BY117AaY.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-C4r8ovx9.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,6 +1,6 @@
1
1
  const require_errors = require("./errors-CXRNVCec.cjs");
2
- const require_boolean2D = require("./boolean2D-THA5506z.cjs");
3
- const require_blueprint = require("./blueprint-CbD0PYLr.cjs");
2
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
3
+ const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
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
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
2
- import { g as CompoundBlueprint } from "./boolean2D-B-l_kvhp.js";
3
- import { t as Blueprint } from "./blueprint-CM1OOluq.js";
2
+ import { g as CompoundBlueprint } from "./boolean2D-DEiO0Uct.js";
3
+ import { t as Blueprint } from "./blueprint-BqdFeOSN.js";
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-Bfw136X-.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-CKL9Us23.cjs");
3
+ const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_types = require("./types-gLi9wL0N.cjs");
6
6
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
7
7
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
8
- const require_curveFns = require("./curveFns-Bukd9jhv.cjs");
8
+ const require_curveFns = require("./curveFns-CQIv_biC.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
10
- const require_surfaceBuilders = require("./surfaceBuilders-DzTJA3fK.cjs");
11
- const require_helpers = require("./helpers-BFyEt7Fv.cjs");
12
- const require_blueprint = require("./blueprint-CbD0PYLr.cjs");
13
- const require_extrudeFns = require("./extrudeFns-BjfEBgIw.cjs");
10
+ const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
11
+ const require_helpers = require("./helpers-CM63Nn7A.cjs");
12
+ const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
13
+ const require_extrudeFns = require("./extrudeFns-WHKS4Oef.cjs");
14
14
  //#region node_modules/flatqueue/index.js
15
15
  /** @template T */
16
16
  var FlatQueue = class {
@@ -1063,7 +1063,13 @@ function loftAll(entries) {
1063
1063
  };
1064
1064
  });
1065
1065
  try {
1066
- const shapes = kernel.loftBatch?.(kernelEntries) ?? kernelEntries.map((e) => kernel.loft(e.wires, e.ruled, e.startVertex, e.endVertex));
1066
+ const shapes = kernel.loftBatch?.(kernelEntries) ?? kernelEntries.map((e) => kernel.loftAdvanced(e.wires, {
1067
+ solid: e.solid,
1068
+ ruled: e.ruled,
1069
+ tolerance: e.tolerance,
1070
+ startVertex: e.startVertex,
1071
+ endVertex: e.endVertex
1072
+ }));
1067
1073
  const results = [];
1068
1074
  for (const shape of shapes) {
1069
1075
  const cast = require_shapeTypes.castShape(shape);
@@ -1,16 +1,16 @@
1
- import { R as DisposalScope, X as getKernel, Y as _usingCtx, Z as getKernel2D, a as createEdge, h as isShape3D, o as createFace, t as castShape, u as createWire } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { R as DisposalScope, X as getKernel, Y as _usingCtx, Z as getKernel2D, a as createEdge, h as isShape3D, o as createFace, t as castShape, u as createWire } from "./shapeTypes-B9a2ed1X.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-DboJwVCf.js";
3
- import { N as downcast, c as normalAt, p as uvBounds, u as pointOnSurface } from "./faceFns-DMFG-piP.js";
3
+ import { N as downcast, c as normalAt, p as uvBounds, u as pointOnSurface } from "./faceFns-BQ7czFFV.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { r as toVec3 } from "./types--GD-LVc6.js";
6
6
  import { d as vecNormalize, h as vecScale, r as vecCross } from "./vecOps-B-PCHgyB.js";
7
7
  import { n as createPlane } from "./planeOps-sTrM3dcQ.js";
8
- import { c as curveStartPoint, l as curveTangentAt, r as curveIsClosed } from "./curveFns-Dn4gbNzG.js";
8
+ import { c as curveStartPoint, l as curveTangentAt, r as curveIsClosed } from "./curveFns-D-0yqVb9.js";
9
9
  import { r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
10
- import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-Im6Xef27.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-XTeLX4mm.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-CM1OOluq.js";
13
- import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-ClsoGp5V.js";
10
+ import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-BY117AaY.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-C4r8ovx9.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-BqdFeOSN.js";
13
+ import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-B3qZ8gzq.js";
14
14
  //#region node_modules/flatqueue/index.js
15
15
  /** @template T */
16
16
  var FlatQueue = class {
@@ -1063,7 +1063,13 @@ function loftAll(entries) {
1063
1063
  };
1064
1064
  });
1065
1065
  try {
1066
- const shapes = kernel.loftBatch?.(kernelEntries) ?? kernelEntries.map((e) => kernel.loft(e.wires, e.ruled, e.startVertex, e.endVertex));
1066
+ const shapes = kernel.loftBatch?.(kernelEntries) ?? kernelEntries.map((e) => kernel.loftAdvanced(e.wires, {
1067
+ solid: e.solid,
1068
+ ruled: e.ruled,
1069
+ tolerance: e.tolerance,
1070
+ startVertex: e.startVertex,
1071
+ endVertex: e.endVertex
1072
+ }));
1067
1073
  const results = [];
1068
1074
  for (const shape of shapes) {
1069
1075
  const cast = castShape(shape);
@@ -1,12 +1,12 @@
1
- import { X as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { X as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-B9a2ed1X.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-DboJwVCf.js";
3
- import { C as getVertices, b as getEdges, w as getWires } from "./faceFns-DMFG-piP.js";
3
+ import { C as getVertices, b as getEdges, w as getWires } from "./faceFns-BQ7czFFV.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-csSEYddm.js";
5
5
  import { h as vecScale, t as vecAdd } from "./vecOps-B-PCHgyB.js";
6
6
  import { o as resolvePlane } from "./planeOps-sTrM3dcQ.js";
7
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-QGgHStIU.js";
7
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-LgyEtLGl.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
9
- import { r as makeFace } from "./surfaceBuilders-Im6Xef27.js";
9
+ import { r as makeFace } from "./surfaceBuilders-BY117AaY.js";
10
10
  //#region src/topology/booleanFns.ts
11
11
  /**
12
12
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-Bfw136X-.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-CKL9Us23.cjs");
3
+ const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
6
6
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
7
- const require_shapeFns = require("./shapeFns-DkFzoJav.cjs");
7
+ const require_shapeFns = require("./shapeFns-Dz2GNg2y.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-DzTJA3fK.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
10
10
  //#region src/topology/booleanFns.ts
11
11
  /**
12
12
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
package/dist/brepjs.cjs CHANGED
@@ -1,30 +1,30 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-C1XeyF0v.cjs");
3
- const require_shapeTypes = require("./shapeTypes-Bfw136X-.cjs");
2
+ const require_drawFns = require("./drawFns-CZZsnlAR.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
4
4
  const require_occtWasmAdapter = require("./occtWasmAdapter-CPINzXxh.cjs");
5
5
  const require_errors = require("./errors-CXRNVCec.cjs");
6
- const require_faceFns = require("./faceFns-CKL9Us23.cjs");
6
+ const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
7
7
  const require_constants = require("./constants-BNP_xnBN.cjs");
8
8
  const require_types = require("./types-gLi9wL0N.cjs");
9
9
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
10
10
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
11
- const require_shapeFns = require("./shapeFns-DkFzoJav.cjs");
12
- const require_curveFns = require("./curveFns-Bukd9jhv.cjs");
13
- const require_meshFns = require("./meshFns-CO9qVJ24.cjs");
11
+ const require_shapeFns = require("./shapeFns-Dz2GNg2y.cjs");
12
+ const require_curveFns = require("./curveFns-CQIv_biC.cjs");
13
+ const require_meshFns = require("./meshFns-BdEOTCwK.cjs");
14
14
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
15
- const require_surfaceBuilders = require("./surfaceBuilders-DzTJA3fK.cjs");
16
- const require_booleanFns = require("./booleanFns-CQNV8MMq.cjs");
17
- const require_primitiveFns = require("./primitiveFns-CL6lNda-.cjs");
18
- const require_historyFns = require("./historyFns-DBSgZGtF.cjs");
19
- const require_boolean2D = require("./boolean2D-THA5506z.cjs");
20
- const require_helpers = require("./helpers-BFyEt7Fv.cjs");
21
- const require_solidBuilders = require("./solidBuilders-DI9d6ZIx.cjs");
22
- const require_measureFns = require("./measureFns-C2SnZLhD.cjs");
23
- const require_cornerFinder = require("./cornerFinder-4PxIzwrl.cjs");
24
- const require_extrudeFns = require("./extrudeFns-BjfEBgIw.cjs");
25
- const require_blueprintFns = require("./blueprintFns-_JcjAvPP.cjs");
26
- const require_importFns = require("./importFns-DRNXwoUG.cjs");
27
- const require_shapeRefFns = require("./shapeRefFns-t-5-Aqku.cjs");
15
+ const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
16
+ const require_booleanFns = require("./booleanFns-CwHfuxWc.cjs");
17
+ const require_primitiveFns = require("./primitiveFns-D3FvKWK-.cjs");
18
+ const require_historyFns = require("./historyFns-DkDJpwef.cjs");
19
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
20
+ const require_helpers = require("./helpers-CM63Nn7A.cjs");
21
+ const require_solidBuilders = require("./solidBuilders-DUl2f7gY.cjs");
22
+ const require_measureFns = require("./measureFns-BxAZf4Mf.cjs");
23
+ const require_cornerFinder = require("./cornerFinder-DLxiZcyg.cjs");
24
+ const require_extrudeFns = require("./extrudeFns-WHKS4Oef.cjs");
25
+ const require_blueprintFns = require("./blueprintFns-DMk0Pxr4.cjs");
26
+ const require_importFns = require("./importFns--rg42dnv.cjs");
27
+ const require_shapeRefFns = require("./shapeRefFns-N0wl6XSn.cjs");
28
28
  const require_workerHandler = require("./workerHandler-C-3cFcsQ.cjs");
29
29
  //#region src/topology/shapeBooleans.ts
30
30
  var BOPAlgo_GlueShift = 1;
@@ -2360,10 +2360,10 @@ function pocket(shape, options) {
2360
2360
  if (require_errors.isErr(targetResult)) return targetResult;
2361
2361
  const targetFace = targetResult.value;
2362
2362
  const normal = require_faceFns.normalAt(targetFace);
2363
+ const center = require_faceFns.faceCenter(targetFace);
2363
2364
  const faceResult = require_surfaceBuilders.makeFace(toWire(profile));
2364
2365
  if (require_errors.isErr(faceResult)) return faceResult;
2365
- const extDir = require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth);
2366
- const toolResult = require_extrudeFns.extrude(faceResult.value, extDir);
2366
+ const toolResult = require_extrudeFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
2367
2367
  if (require_errors.isErr(toolResult)) return toolResult;
2368
2368
  return require_booleanFns.cut(s, toolResult.value, { unsafe: true });
2369
2369
  }
@@ -2381,10 +2381,10 @@ function boss(shape, options) {
2381
2381
  if (require_errors.isErr(targetResult)) return targetResult;
2382
2382
  const targetFace = targetResult.value;
2383
2383
  const normal = require_faceFns.normalAt(targetFace);
2384
+ const center = require_faceFns.faceCenter(targetFace);
2384
2385
  const faceResult = require_surfaceBuilders.makeFace(toWire(profile));
2385
2386
  if (require_errors.isErr(faceResult)) return faceResult;
2386
- const extDir = require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height);
2387
- const toolResult = require_extrudeFns.extrude(faceResult.value, extDir);
2387
+ const toolResult = require_extrudeFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
2388
2388
  if (require_errors.isErr(toolResult)) return toolResult;
2389
2389
  return require_booleanFns.fuse(s, toolResult.value, { unsafe: true });
2390
2390
  }
@@ -2401,6 +2401,7 @@ function mirrorJoin(shape, options) {
2401
2401
  0
2402
2402
  ];
2403
2403
  const planeOrigin = options?.at;
2404
+ if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
2404
2405
  return require_booleanFns.fuse(s, require_shapeFns.mirror(s, normal, planeOrigin), { unsafe: true });
2405
2406
  }
2406
2407
  /**
package/dist/brepjs.js CHANGED
@@ -1,29 +1,29 @@
1
- import { $ as initFromOC, A as planarWire, B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as as3D, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, P as as2D, Q as init, R as DisposalScope, S as isManifoldShell, T as isPlanarWire, V as getDisposalStats, W as resetDisposalStats, X as getKernel, _ as isSolid, a as createEdge, at as BrepkitAdapter, b as closedWire, c as createSolid, d as isCompound, et as prewarm, f as isEdge, g as isShell, h as isShape3D, i as createCompound, it as supportsProjection, j as validSolid, k as planarFace, l as createVertex, m as isShape1D, n as castShape3D, nt as withKernel, o as createFace, ot as getPerformanceStats, p as isFace, q as withScopeResult, rt as supportsConstraintSketch, s as createShell, st as resetPerformanceStats, t as castShape, tt as registerKernel, u as createWire, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { $ as initFromOC, A as planarWire, B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, F as as3D, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, P as as2D, Q as init, R as DisposalScope, S as isManifoldShell, T as isPlanarWire, V as getDisposalStats, W as resetDisposalStats, X as getKernel, _ as isSolid, a as createEdge, at as BrepkitAdapter, b as closedWire, c as createSolid, d as isCompound, et as prewarm, f as isEdge, g as isShell, h as isShape3D, i as createCompound, it as supportsProjection, j as validSolid, k as planarFace, l as createVertex, m as isShape1D, n as castShape3D, nt as withKernel, o as createFace, ot as getPerformanceStats, p as isFace, q as withScopeResult, rt as supportsConstraintSketch, s as createShell, st as resetPerformanceStats, t as castShape, tt as registerKernel, u as createWire, v as isVertex, w as isPlanarFace, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-B9a2ed1X.js";
2
2
  import { t as OcctWasmAdapter } from "./occtWasmAdapter-BRiWV_v0.js";
3
3
  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-DboJwVCf.js";
4
- import { A as vertexPosition, B as kernelCallScoped, C as getVertices, D as iterFaces, E as iterEdges, F as isCompSolid, I as iterTopo, L as shapeType, M as cast, N as downcast, O as iterVertices, P as fromBREP, R as kernelCall, T as invalidateShapeCache, a as flipFaceOrientation, b as getEdges, c as normalAt, d as projectPointOnFace, f as removeHolesFromFace, g as getBounds, h as describe$1, i as faceOrientation, j as asTopo, k as iterWires, 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, w as getWires, x as getFaces, y as getCachedSurfaceType, z as kernelCallRaw } from "./faceFns-DMFG-piP.js";
4
+ import { A as vertexPosition, B as kernelCallScoped, C as getVertices, D as iterFaces, E as iterEdges, F as isCompSolid, I as iterTopo, L as shapeType, M as cast, N as downcast, O as iterVertices, P as fromBREP, R as kernelCall, T as invalidateShapeCache, a as flipFaceOrientation, b as getEdges, c as normalAt, d as projectPointOnFace, f as removeHolesFromFace, g as getBounds, h as describe$1, i as faceOrientation, j as asTopo, k as iterWires, 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, w as getWires, x as getFaces, y as getCachedSurfaceType, z as kernelCallRaw } from "./faceFns-BQ7czFFV.js";
5
5
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
6
6
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types--GD-LVc6.js";
7
7
  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-B-PCHgyB.js";
8
8
  import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-sTrM3dcQ.js";
9
- import { C as findFacesByTag, D as tagFaces, E as setTagMetadata, O as getFaceOrigins, S as getShapeColor, T as getTagMetadata, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$1, h as translate$1, i as isEqualShape, 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 } from "./shapeFns-QGgHStIU.js";
10
- 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-Dn4gbNzG.js";
11
- import { a as meshEdges$1, c as createMeshCache, i as mesh$1, n as exportSTEP, o as meshMultiLOD, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-gTPomZkK.js";
9
+ import { C as findFacesByTag, D as tagFaces, E as setTagMetadata, O as getFaceOrigins, S as getShapeColor, T as getTagMetadata, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$1, h as translate$1, i as isEqualShape, 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 } from "./shapeFns-LgyEtLGl.js";
10
+ 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-D-0yqVb9.js";
11
+ import { a as meshEdges$1, c as createMeshCache, i as mesh$1, n as exportSTEP, o as meshMultiLOD, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-C9DtKU7q.js";
12
12
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
13
- import { n as fill, r as makeFace } from "./surfaceBuilders-Im6Xef27.js";
14
- 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_DVbfzR.js";
15
- 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 toLODGeometryData, 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, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-BAifgHMW.js";
16
- 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-DltXL-vp.js";
17
- 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-B-l_kvhp.js";
18
- import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-XTeLX4mm.js";
19
- 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-TaKrwQ13.js";
20
- import { r as makeCylinder } from "./solidBuilders-CQipZFOw.js";
21
- 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-Zc5RWsI4.js";
22
- import { t as cornerFinder } from "./cornerFinder-Ty3F7kPm.js";
23
- 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-ClsoGp5V.js";
24
- 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-BngkSCmA.js";
25
- 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-C_PgMCn_.js";
26
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-Gv4-NGJD.js";
13
+ import { n as fill, r as makeFace } from "./surfaceBuilders-BY117AaY.js";
14
+ 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-Cstp5Ep1.js";
15
+ 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 toLODGeometryData, 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, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-Bpq2yFqw.js";
16
+ 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-BFuHqN_0.js";
17
+ 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-DEiO0Uct.js";
18
+ import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-C4r8ovx9.js";
19
+ 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-BU7zRJy2.js";
20
+ import { r as makeCylinder } from "./solidBuilders-C_-imolZ.js";
21
+ 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-D5DbMnQY.js";
22
+ import { t as cornerFinder } from "./cornerFinder-K7cjTnkP.js";
23
+ 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-B3qZ8gzq.js";
24
+ 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-Ds8qYSpU.js";
25
+ 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--VkKJoDs.js";
26
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-CgnpumqW.js";
27
27
  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-Dm0_0F8Z.js";
28
28
  //#region \0rolldown/runtime.js
29
29
  var __defProp = Object.defineProperty;
@@ -2363,10 +2363,10 @@ function pocket(shape, options) {
2363
2363
  if (isErr(targetResult)) return targetResult;
2364
2364
  const targetFace = targetResult.value;
2365
2365
  const normal = normalAt(targetFace);
2366
+ const center = faceCenter(targetFace);
2366
2367
  const faceResult = makeFace(toWire(profile));
2367
2368
  if (isErr(faceResult)) return faceResult;
2368
- const extDir = vecScale(vecNormalize(normal), -depth);
2369
- const toolResult = extrude$1(faceResult.value, extDir);
2369
+ const toolResult = extrude$1(translate$1(faceResult.value, center), vecScale(vecNormalize(normal), -depth));
2370
2370
  if (isErr(toolResult)) return toolResult;
2371
2371
  return cut$1(s, toolResult.value, { unsafe: true });
2372
2372
  }
@@ -2384,10 +2384,10 @@ function boss(shape, options) {
2384
2384
  if (isErr(targetResult)) return targetResult;
2385
2385
  const targetFace = targetResult.value;
2386
2386
  const normal = normalAt(targetFace);
2387
+ const center = faceCenter(targetFace);
2387
2388
  const faceResult = makeFace(toWire(profile));
2388
2389
  if (isErr(faceResult)) return faceResult;
2389
- const extDir = vecScale(vecNormalize(normal), height);
2390
- const toolResult = extrude$1(faceResult.value, extDir);
2390
+ const toolResult = extrude$1(translate$1(faceResult.value, center), vecScale(vecNormalize(normal), height));
2391
2391
  if (isErr(toolResult)) return toolResult;
2392
2392
  return fuse$1(s, toolResult.value, { unsafe: true });
2393
2393
  }
@@ -2404,6 +2404,7 @@ function mirrorJoin(shape, options) {
2404
2404
  0
2405
2405
  ];
2406
2406
  const planeOrigin = options?.at;
2407
+ if (vecIsZero(normal)) return err(validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
2407
2408
  return fuse$1(s, mirror$1(s, normal, planeOrigin), { unsafe: true });
2408
2409
  }
2409
2410
  /**
package/dist/core.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-Bfw136X-.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
3
3
  const require_errors = require("./errors-CXRNVCec.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
5
  const require_types = require("./types-gLi9wL0N.cjs");
package/dist/core.js CHANGED
@@ -1,4 +1,4 @@
1
- import { B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, R as DisposalScope, S as isManifoldShell, _ 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 withScopeResult, t as castShape, v as isVertex, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { B as createKernelHandle, C as isOrientedFace, D as manifoldShell, E as isValidSolid, H as isLive, I as is2D, J as withScopeResultAsync, K as withScope, L as is3D, M as getShapeKind, O as orientedFace, R as DisposalScope, S as isManifoldShell, _ 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 withScopeResult, t as castShape, v as isVertex, x as isClosedWire, y as isWire, z as createHandle } from "./shapeTypes-B9a2ed1X.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-DboJwVCf.js";
3
3
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-csSEYddm.js";
4
4
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types--GD-LVc6.js";
@@ -1,6 +1,6 @@
1
1
  const require_constants = require("./constants-BNP_xnBN.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
3
- const require_helpers = require("./helpers-BFyEt7Fv.cjs");
3
+ const require_helpers = require("./helpers-CM63Nn7A.cjs");
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
  import { t as DEG2RAD } from "./constants-csSEYddm.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-tCIbjLs5.js";
3
- import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-XTeLX4mm.js";
3
+ import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-C4r8ovx9.js";
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
- const require_shapeTypes = require("./shapeTypes-Bfw136X-.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { X as getKernel, f as isEdge, t as castShape, y as isWire } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { X as getKernel, f as isEdge, t as castShape, y as isWire } from "./shapeTypes-B9a2ed1X.js";
2
2
  import { A as ok, b as err, l as typeCastError } from "./errors-DboJwVCf.js";
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,19 +1,19 @@
1
- import { R as DisposalScope, X as getKernel, Y as _usingCtx, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { R as DisposalScope, X as getKernel, Y as _usingCtx, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-B9a2ed1X.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-DboJwVCf.js";
3
- import { M as cast, N as downcast, b as getEdges, c as normalAt, l as outerWire, n as faceCenter } from "./faceFns-DMFG-piP.js";
3
+ import { M as cast, N as downcast, b as getEdges, c as normalAt, l as outerWire, n as faceCenter } from "./faceFns-BQ7czFFV.js";
4
4
  import { t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  import { r as toVec3 } from "./types--GD-LVc6.js";
6
6
  import { c as vecLength, d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-B-PCHgyB.js";
7
7
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-sTrM3dcQ.js";
8
- import { m as offsetWire2D } from "./curveFns-Dn4gbNzG.js";
8
+ import { m as offsetWire2D } from "./curveFns-D-0yqVb9.js";
9
9
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
10
- import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-Im6Xef27.js";
11
- 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-B-l_kvhp.js";
12
- import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-XTeLX4mm.js";
13
- 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-CM1OOluq.js";
14
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-CQipZFOw.js";
15
- import { t as cornerFinder } from "./cornerFinder-Ty3F7kPm.js";
16
- import { i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-ClsoGp5V.js";
10
+ import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-BY117AaY.js";
11
+ 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-DEiO0Uct.js";
12
+ import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-C4r8ovx9.js";
13
+ 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-BqdFeOSN.js";
14
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-C_-imolZ.js";
15
+ import { t as cornerFinder } from "./cornerFinder-K7cjTnkP.js";
16
+ import { i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-B3qZ8gzq.js";
17
17
  import opentype from "opentype.js";
18
18
  //#region src/2d/lib/stitching.ts
19
19
  /**
@@ -29,22 +29,22 @@ 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-Bfw136X-.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
33
33
  const require_errors = require("./errors-CXRNVCec.cjs");
34
- const require_faceFns = require("./faceFns-CKL9Us23.cjs");
34
+ const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
35
35
  const require_constants = require("./constants-BNP_xnBN.cjs");
36
36
  const require_types = require("./types-gLi9wL0N.cjs");
37
37
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
38
38
  const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
39
- const require_curveFns = require("./curveFns-Bukd9jhv.cjs");
39
+ const require_curveFns = require("./curveFns-CQIv_biC.cjs");
40
40
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
41
- const require_surfaceBuilders = require("./surfaceBuilders-DzTJA3fK.cjs");
42
- const require_boolean2D = require("./boolean2D-THA5506z.cjs");
43
- const require_helpers = require("./helpers-BFyEt7Fv.cjs");
44
- const require_blueprint = require("./blueprint-CbD0PYLr.cjs");
45
- const require_solidBuilders = require("./solidBuilders-DI9d6ZIx.cjs");
46
- const require_cornerFinder = require("./cornerFinder-4PxIzwrl.cjs");
47
- const require_extrudeFns = require("./extrudeFns-BjfEBgIw.cjs");
41
+ const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
42
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
43
+ const require_helpers = require("./helpers-CM63Nn7A.cjs");
44
+ const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
45
+ const require_solidBuilders = require("./solidBuilders-DUl2f7gY.cjs");
46
+ const require_cornerFinder = require("./cornerFinder-DLxiZcyg.cjs");
47
+ const require_extrudeFns = require("./extrudeFns-WHKS4Oef.cjs");
48
48
  let opentype_js = require("opentype.js");
49
49
  opentype_js = __toESM(opentype_js);
50
50
  //#region src/2d/lib/stitching.ts