brepjs 15.2.10 → 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.
package/dist/2d.cjs CHANGED
@@ -2,9 +2,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_shapeTypes = require("./shapeTypes-hQK4eaEw.cjs");
3
3
  const require_errors = require("./errors-CXRNVCec.cjs");
4
4
  const require_faceFns = require("./faceFns-uX_AVFqu.cjs");
5
- const require_boolean2D = require("./boolean2D-CwaWKfZD.cjs");
5
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
6
6
  const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
7
- const require_blueprintFns = require("./blueprintFns-CH4QAYB4.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
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
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-B__OaRTl.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
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-BRQael6Q.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,5 +1,5 @@
1
1
  const require_errors = require("./errors-CXRNVCec.cjs");
2
- const require_boolean2D = require("./boolean2D-CwaWKfZD.cjs");
2
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
3
3
  const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
@@ -1,5 +1,5 @@
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__OaRTl.js";
2
+ import { g as CompoundBlueprint } from "./boolean2D-DEiO0Uct.js";
3
3
  import { t as Blueprint } from "./blueprint-BqdFeOSN.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
@@ -10,7 +10,7 @@ const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
10
10
  const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
11
11
  const require_helpers = require("./helpers-CM63Nn7A.cjs");
12
12
  const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
13
- const require_extrudeFns = require("./extrudeFns-BofhQx0R.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 {
@@ -10,7 +10,7 @@ import { r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-tCIbjLs5.js";
10
10
  import { _ as zip, i as makeNewFaceWithinFace, r as makeFace, s as assembleWire } from "./surfaceBuilders-BY117AaY.js";
11
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
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-CcYOPTFR.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 {
package/dist/brepjs.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-CgBKN8VG.cjs");
2
+ const require_drawFns = require("./drawFns-CZZsnlAR.cjs");
3
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");
@@ -16,13 +16,13 @@ const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
16
16
  const require_booleanFns = require("./booleanFns-CwHfuxWc.cjs");
17
17
  const require_primitiveFns = require("./primitiveFns-D3FvKWK-.cjs");
18
18
  const require_historyFns = require("./historyFns-DkDJpwef.cjs");
19
- const require_boolean2D = require("./boolean2D-CwaWKfZD.cjs");
19
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
20
20
  const require_helpers = require("./helpers-CM63Nn7A.cjs");
21
21
  const require_solidBuilders = require("./solidBuilders-DUl2f7gY.cjs");
22
22
  const require_measureFns = require("./measureFns-BxAZf4Mf.cjs");
23
23
  const require_cornerFinder = require("./cornerFinder-DLxiZcyg.cjs");
24
- const require_extrudeFns = require("./extrudeFns-BofhQx0R.cjs");
25
- const require_blueprintFns = require("./blueprintFns-CH4QAYB4.cjs");
24
+ const require_extrudeFns = require("./extrudeFns-WHKS4Oef.cjs");
25
+ const require_blueprintFns = require("./blueprintFns-DMk0Pxr4.cjs");
26
26
  const require_importFns = require("./importFns--rg42dnv.cjs");
27
27
  const require_shapeRefFns = require("./shapeRefFns-N0wl6XSn.cjs");
28
28
  const require_workerHandler = require("./workerHandler-C-3cFcsQ.cjs");
@@ -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
@@ -14,14 +14,14 @@ import { n as fill, r as makeFace } from "./surfaceBuilders-BY117AaY.js";
14
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
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
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-B__OaRTl.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
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-CMemZ1i4.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
20
  import { r as makeCylinder } from "./solidBuilders-C_-imolZ.js";
21
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
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-CcYOPTFR.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-BRQael6Q.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
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
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";
@@ -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
  /**
@@ -8,12 +8,12 @@ import { a as planeToWorld, o as resolvePlane } from "./planeOps-sTrM3dcQ.js";
8
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
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-B__OaRTl.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
12
  import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-C4r8ovx9.js";
13
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
14
  import { o as makeSolid, t as makeCompound } from "./solidBuilders-C_-imolZ.js";
15
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-CcYOPTFR.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
  /**
@@ -39,12 +39,12 @@ const require_planeOps = require("./planeOps-BJOIbn4K.cjs");
39
39
  const require_curveFns = require("./curveFns-CQIv_biC.cjs");
40
40
  const require_arrayAccess = require("./arrayAccess-DsnQpdSD.cjs");
41
41
  const require_surfaceBuilders = require("./surfaceBuilders-D_w11wLr.cjs");
42
- const require_boolean2D = require("./boolean2D-CwaWKfZD.cjs");
42
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
43
43
  const require_helpers = require("./helpers-CM63Nn7A.cjs");
44
44
  const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
45
45
  const require_solidBuilders = require("./solidBuilders-DUl2f7gY.cjs");
46
46
  const require_cornerFinder = require("./cornerFinder-DLxiZcyg.cjs");
47
- const require_extrudeFns = require("./extrudeFns-BofhQx0R.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
@@ -288,7 +288,7 @@ function guidedSweep(profile, spine, guides, options = {}) {
288
288
  */
289
289
  function extrude(face, extrusionVec) {
290
290
  if (getKernel().isNull(face.wrapped)) return err(validationError(BrepErrorCode.NULL_SHAPE_INPUT, "extrude: face is a null shape"));
291
- if (vecLength(extrusionVec) === 0) return err(validationError("EXTRUDE_ZERO_VECTOR", "extrude: extrusion vector has zero length"));
291
+ if (vecLength(extrusionVec) < 1e-10) return err(validationError("EXTRUDE_ZERO_VECTOR", "extrude: extrusion vector has zero length"));
292
292
  try {
293
293
  const kernel = getKernel();
294
294
  const len = vecLength(extrusionVec);
@@ -321,9 +321,16 @@ function revolve(face, center = [
321
321
  1
322
322
  ], angle = 360) {
323
323
  if (getKernel().isNull(face.wrapped)) return err(validationError(BrepErrorCode.NULL_SHAPE_INPUT, "revolve: face is a null shape"));
324
- const result = castShape(getKernel().revolveVec(face.wrapped, [...center], [...direction], angle));
325
- if (!isShape3D(result)) return err(typeCastError("REVOLUTION_NOT_3D", "Revolution did not produce a 3D shape"));
326
- return ok(result);
324
+ try {
325
+ const result = castShape(getKernel().revolveVec(face.wrapped, [...center], [...direction], angle));
326
+ if (!isShape3D(result)) return err(typeCastError("REVOLUTION_NOT_3D", "Revolution did not produce a 3D shape"));
327
+ return ok(result);
328
+ } catch (e) {
329
+ return err(kernelError("REVOLVE_FAILED", "Revolution operation failed", e, {
330
+ operation: "revolve",
331
+ angle
332
+ }));
333
+ }
327
334
  }
328
335
  /**
329
336
  * Batch extrude: build N independent extrusions in a single kernel call.
@@ -336,24 +343,24 @@ function revolve(face, center = [
336
343
  function extrudeAll(entries) {
337
344
  if (entries.length === 0) return ok([]);
338
345
  const kernel = getKernel();
339
- const kernelEntries = entries.map((e) => {
346
+ const kernelEntries = [];
347
+ for (let i = 0; i < entries.length; i++) {
348
+ const e = entries[i];
349
+ if (!e) continue;
340
350
  const vec = typeof e.height === "number" ? [
341
351
  0,
342
352
  0,
343
353
  e.height
344
354
  ] : e.height;
345
355
  const len = vecLength(vec);
346
- const direction = len > 0 ? [...vecNormalize(vec)] : [
347
- 0,
348
- 0,
349
- 1
350
- ];
351
- return {
356
+ if (len < 1e-10) return err(validationError("EXTRUDE_ALL_ZERO_VECTOR", `extrudeAll: entry ${i} has zero-length extrusion vector`));
357
+ const direction = [...vecNormalize(vec)];
358
+ kernelEntries.push({
352
359
  face: e.face.wrapped,
353
360
  direction,
354
361
  length: len
355
- };
356
- });
362
+ });
363
+ }
357
364
  try {
358
365
  return ok((kernel.extrudeBatch?.(kernelEntries) ?? kernelEntries.map((e) => kernel.extrude(e.face, e.direction, e.length))).map((shape) => {
359
366
  return createSolid(kernel.downcast(shape, "solid"));
@@ -288,7 +288,7 @@ function guidedSweep(profile, spine, guides, options = {}) {
288
288
  */
289
289
  function extrude(face, extrusionVec) {
290
290
  if (require_shapeTypes.getKernel().isNull(face.wrapped)) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, "extrude: face is a null shape"));
291
- if (require_vecOps.vecLength(extrusionVec) === 0) return require_errors.err(require_errors.validationError("EXTRUDE_ZERO_VECTOR", "extrude: extrusion vector has zero length"));
291
+ if (require_vecOps.vecLength(extrusionVec) < 1e-10) return require_errors.err(require_errors.validationError("EXTRUDE_ZERO_VECTOR", "extrude: extrusion vector has zero length"));
292
292
  try {
293
293
  const kernel = require_shapeTypes.getKernel();
294
294
  const len = require_vecOps.vecLength(extrusionVec);
@@ -321,9 +321,16 @@ function revolve(face, center = [
321
321
  1
322
322
  ], angle = 360) {
323
323
  if (require_shapeTypes.getKernel().isNull(face.wrapped)) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, "revolve: face is a null shape"));
324
- const result = require_shapeTypes.castShape(require_shapeTypes.getKernel().revolveVec(face.wrapped, [...center], [...direction], angle));
325
- if (!require_shapeTypes.isShape3D(result)) return require_errors.err(require_errors.typeCastError("REVOLUTION_NOT_3D", "Revolution did not produce a 3D shape"));
326
- return require_errors.ok(result);
324
+ try {
325
+ const result = require_shapeTypes.castShape(require_shapeTypes.getKernel().revolveVec(face.wrapped, [...center], [...direction], angle));
326
+ if (!require_shapeTypes.isShape3D(result)) return require_errors.err(require_errors.typeCastError("REVOLUTION_NOT_3D", "Revolution did not produce a 3D shape"));
327
+ return require_errors.ok(result);
328
+ } catch (e) {
329
+ return require_errors.err(require_errors.kernelError("REVOLVE_FAILED", "Revolution operation failed", e, {
330
+ operation: "revolve",
331
+ angle
332
+ }));
333
+ }
327
334
  }
328
335
  /**
329
336
  * Batch extrude: build N independent extrusions in a single kernel call.
@@ -336,24 +343,24 @@ function revolve(face, center = [
336
343
  function extrudeAll(entries) {
337
344
  if (entries.length === 0) return require_errors.ok([]);
338
345
  const kernel = require_shapeTypes.getKernel();
339
- const kernelEntries = entries.map((e) => {
346
+ const kernelEntries = [];
347
+ for (let i = 0; i < entries.length; i++) {
348
+ const e = entries[i];
349
+ if (!e) continue;
340
350
  const vec = typeof e.height === "number" ? [
341
351
  0,
342
352
  0,
343
353
  e.height
344
354
  ] : e.height;
345
355
  const len = require_vecOps.vecLength(vec);
346
- const direction = len > 0 ? [...require_vecOps.vecNormalize(vec)] : [
347
- 0,
348
- 0,
349
- 1
350
- ];
351
- return {
356
+ if (len < 1e-10) return require_errors.err(require_errors.validationError("EXTRUDE_ALL_ZERO_VECTOR", `extrudeAll: entry ${i} has zero-length extrusion vector`));
357
+ const direction = [...require_vecOps.vecNormalize(vec)];
358
+ kernelEntries.push({
352
359
  face: e.face.wrapped,
353
360
  direction,
354
361
  length: len
355
- };
356
- });
362
+ });
363
+ }
357
364
  try {
358
365
  return require_errors.ok((kernel.extrudeBatch?.(kernelEntries) ?? kernelEntries.map((e) => kernel.extrude(e.face, e.direction, e.length))).map((shape) => {
359
366
  return require_shapeTypes.createSolid(kernel.downcast(shape, "solid"));
@@ -1 +1 @@
1
- {"version":3,"file":"compoundOpsFns.d.ts","sourceRoot":"","sources":["../../src/operations/compoundOpsFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAgC,OAAO,EAAQ,MAAM,sBAAsB,CAAC;AAGxF,OAAO,KAAK,EACV,SAAS,EAGT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAsEhC;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAsD9F;AAMD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAwBhG;AAMD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAwB5F;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAC1C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAAC,CAAC,CAAC,CAOX;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAClD,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,yBAAyB,GACjC,MAAM,CAAC,CAAC,CAAC,CAoCX"}
1
+ {"version":3,"file":"compoundOpsFns.d.ts","sourceRoot":"","sources":["../../src/operations/compoundOpsFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAgC,OAAO,EAAQ,MAAM,sBAAsB,CAAC;AAGxF,OAAO,KAAK,EACV,SAAS,EAGT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAsEhC;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAsD9F;AAMD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CA2BhG;AAMD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CA2B5F;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAC1C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAAC,CAAC,CAAC,CAWX;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAClD,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,yBAAyB,GACjC,MAAM,CAAC,CAAC,CAAC,CAoCX"}
@@ -1 +1 @@
1
- {"version":3,"file":"extrudeFns.d.ts","sourceRoot":"","sources":["../../src/operations/extrudeFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,kBAAkB,CAAC;AAGxD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMxE;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,EACrD,YAAY,EAAE,IAAI,GACjB,MAAM,CAAC,UAAU,CAAC,CAwBpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,EACrD,MAAM,GAAE,IAAgB,EACxB,SAAS,GAAE,IAAgB,EAC3B,KAAK,SAAM,GACV,MAAM,CAAC,OAAO,CAAC,CAajB;AAMD,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtD,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CA0BpF;AAMD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"extrudeFns.d.ts","sourceRoot":"","sources":["../../src/operations/extrudeFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,kBAAkB,CAAC;AAGxD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMxE;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,EACrD,YAAY,EAAE,IAAI,GACjB,MAAM,CAAC,UAAU,CAAC,CAwBpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,EACrD,MAAM,GAAE,IAAgB,EACxB,SAAS,GAAE,IAAgB,EAC3B,KAAK,SAAM,GACV,MAAM,CAAC,OAAO,CAAC,CAsBjB;AAMD,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtD,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAwCpF;AAMD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_historyFns = require("./historyFns-DkDJpwef.cjs");
3
- const require_extrudeFns = require("./extrudeFns-BofhQx0R.cjs");
3
+ const require_extrudeFns = require("./extrudeFns-WHKS4Oef.cjs");
4
4
  exports.addChild = require_historyFns.addChild;
5
5
  exports.addStep = require_historyFns.addStep;
6
6
  exports.circularPattern = require_historyFns.circularPattern;
@@ -1,3 +1,3 @@
1
1
  import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, 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";
2
- import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-CcYOPTFR.js";
2
+ import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-B3qZ8gzq.js";
3
3
  export { addChild, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, exportAssemblySTEP, findNode, findStep, getShape as getHistoryShape, gridPattern, linearPattern, modifyStep, registerOperation, registerShape, removeChild, replayFrom, replayHistory, stepCount, stepsFrom, supportExtrude, sweep, twistExtrude, undoLast, updateNode, walkAssembly };
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-CgBKN8VG.cjs");
3
- const require_boolean2D = require("./boolean2D-CwaWKfZD.cjs");
2
+ const require_drawFns = require("./drawFns-CZZsnlAR.cjs");
3
+ const require_boolean2D = require("./boolean2D--RWVJEAM.cjs");
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,5 +1,5 @@
1
- import { d as FaceSketcher, f as Sketch, l as BaseSketcher2d, u as BlueprintSketcher } from "./boolean2D-B__OaRTl.js";
2
- import { $ as sketchFaceOffset, A as DrawingPen, B as drawSingleCircle, F as drawParametricFunction, H as drawText, I as drawPointsInterpolation, L as drawPolysides, M as draw, N as drawCircle, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, V as drawSingleEllipse, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, at as Sketcher, 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, k as Drawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-CMemZ1i4.js";
1
+ import { d as FaceSketcher, f as Sketch, l as BaseSketcher2d, u as BlueprintSketcher } from "./boolean2D-DEiO0Uct.js";
2
+ import { $ as sketchFaceOffset, A as DrawingPen, B as drawSingleCircle, F as drawParametricFunction, H as drawText, I as drawPointsInterpolation, L as drawPolysides, M as draw, N as drawCircle, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, V as drawSingleEllipse, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, at as Sketcher, 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, k as Drawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-BU7zRJy2.js";
3
3
  //#region src/sketching.ts
4
4
  /**
5
5
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "15.2.10",
3
+ "version": "15.2.11",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",