brepjs 15.2.9 → 15.2.10

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 (66) 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-BngkSCmA.js → blueprintFns-BRQael6Q.js} +2 -2
  6. package/dist/{blueprintFns-_JcjAvPP.cjs → blueprintFns-CH4QAYB4.cjs} +2 -2
  7. package/dist/{boolean2D-B-l_kvhp.js → boolean2D-B__OaRTl.js} +14 -8
  8. package/dist/{boolean2D-THA5506z.cjs → boolean2D-CwaWKfZD.cjs} +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 +19 -19
  12. package/dist/brepjs.js +19 -19
  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-CMemZ1i4.js} +10 -10
  20. package/dist/{drawFns-C1XeyF0v.cjs → drawFns-CgBKN8VG.cjs} +10 -10
  21. package/dist/{extrudeFns-BjfEBgIw.cjs → extrudeFns-BofhQx0R.cjs} +29 -9
  22. package/dist/{extrudeFns-ClsoGp5V.js → extrudeFns-CcYOPTFR.js} +29 -9
  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/loftFns.d.ts.map +1 -1
  43. package/dist/operations/sweepFns.d.ts.map +1 -1
  44. package/dist/operations.cjs +2 -2
  45. package/dist/operations.js +2 -2
  46. package/dist/{primitiveFns-BAifgHMW.js → primitiveFns-Bpq2yFqw.js} +5 -5
  47. package/dist/{primitiveFns-CL6lNda-.cjs → primitiveFns-D3FvKWK-.cjs} +5 -5
  48. package/dist/query.cjs +2 -2
  49. package/dist/query.js +2 -2
  50. package/dist/{shapeFns-DkFzoJav.cjs → shapeFns-Dz2GNg2y.cjs} +2 -2
  51. package/dist/{shapeFns-QGgHStIU.js → shapeFns-LgyEtLGl.js} +2 -2
  52. package/dist/shapeRef.cjs +1 -1
  53. package/dist/shapeRef.js +1 -1
  54. package/dist/{shapeRefFns-Gv4-NGJD.js → shapeRefFns-CgnpumqW.js} +3 -3
  55. package/dist/{shapeRefFns-t-5-Aqku.cjs → shapeRefFns-N0wl6XSn.cjs} +3 -3
  56. package/dist/{shapeTypes-Ct7W6h2X.js → shapeTypes-B9a2ed1X.js} +48 -27
  57. package/dist/{shapeTypes-Bfw136X-.cjs → shapeTypes-hQK4eaEw.cjs} +48 -27
  58. package/dist/sketching.cjs +2 -2
  59. package/dist/sketching.js +2 -2
  60. package/dist/{solidBuilders-CQipZFOw.js → solidBuilders-C_-imolZ.js} +2 -2
  61. package/dist/{solidBuilders-DI9d6ZIx.cjs → solidBuilders-DUl2f7gY.cjs} +2 -2
  62. package/dist/{surfaceBuilders-Im6Xef27.js → surfaceBuilders-BY117AaY.js} +2 -2
  63. package/dist/{surfaceBuilders-DzTJA3fK.cjs → surfaceBuilders-D_w11wLr.cjs} +2 -2
  64. package/dist/topology.cjs +6 -6
  65. package/dist/topology.js +6 -6
  66. 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-CwaWKfZD.cjs");
6
+ const require_blueprint = require("./blueprint-BkKnM_9w.cjs");
7
+ const require_blueprintFns = require("./blueprintFns-CH4QAYB4.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-B__OaRTl.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-BRQael6Q.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
  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-B__OaRTl.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,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-CwaWKfZD.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,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-CcYOPTFR.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,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-BofhQx0R.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,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-CgBKN8VG.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-CwaWKfZD.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-BofhQx0R.cjs");
25
+ const require_blueprintFns = require("./blueprintFns-CH4QAYB4.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;
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-B__OaRTl.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-CMemZ1i4.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-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";
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;
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-B__OaRTl.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-CcYOPTFR.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-CwaWKfZD.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-BofhQx0R.cjs");
48
48
  let opentype_js = require("opentype.js");
49
49
  opentype_js = __toESM(opentype_js);
50
50
  //#region src/2d/lib/stitching.ts
@@ -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
  const require_vecOps = require("./vecOps-CODplJp3.cjs");
4
4
  //#region src/operations/extrudeUtils.ts
@@ -28,8 +28,8 @@ function makeSpineWire(start, end) {
28
28
  return require_shapeTypes.castShape(kernel.makeWire([edge]));
29
29
  }
30
30
  /** Build a helix wire for twist extrusion. */
31
- function makeHelixWire(pitch, height, radius, center, dir, _lefthand = false) {
32
- return require_shapeTypes.castShape(require_shapeTypes.getKernel().makeHelixWire(pitch, height, radius, [...center], [...dir]));
31
+ function makeHelixWire(pitch, height, radius, center, dir, leftHanded = false) {
32
+ return require_shapeTypes.castShape(require_shapeTypes.getKernel().makeHelixWire(pitch, height, radius, [...center], [...dir], leftHanded));
33
33
  }
34
34
  /**
35
35
  * Sweep a wire profile along a spine wire to create a 3D shape.
@@ -145,7 +145,8 @@ function twistExtrude(wire, angleDegrees, center, normal, profileShape, shellMod
145
145
  const extrusionLength = require_vecOps.vecLength(normal);
146
146
  if (extrusionLength < 1e-10) return require_errors.err(require_errors.validationError("ZERO_LENGTH_EXTRUSION", "Extrusion vector cannot have zero length"));
147
147
  const spine = makeSpineWire(center, require_vecOps.vecAdd(center, normal));
148
- const auxiliarySpine = makeHelixWire(360 / angleDegrees * extrusionLength, extrusionLength, 1, center, normal);
148
+ const leftHanded = angleDegrees < 0;
149
+ const auxiliarySpine = makeHelixWire(360 / Math.abs(angleDegrees) * extrusionLength, extrusionLength, 1, center, normal, leftHanded);
149
150
  let law = null;
150
151
  if (profileShape) {
151
152
  const lawResult = buildLawFromProfile(extrusionLength, profileShape);
@@ -171,10 +172,27 @@ function validateSectionLocations(sections) {
171
172
  function computeSectionParams(sections, spine, kernel) {
172
173
  const [uFirst, uLast] = kernel.curveParameters(spine.wrapped);
173
174
  const uRange = uLast - uFirst;
174
- return sections.map((s, i) => {
175
- if (s.location !== void 0) return uFirst + s.location * uRange;
176
- return uFirst + i / (sections.length - 1) * uRange;
177
- });
175
+ const params = new Array(sections.length);
176
+ for (let i = 0; i < sections.length; i++) {
177
+ const loc = sections[i]?.location;
178
+ params[i] = loc !== void 0 ? uFirst + loc * uRange : NaN;
179
+ }
180
+ let prevIdx = -1;
181
+ let prevVal = uFirst;
182
+ for (let i = 0; i <= sections.length; i++) {
183
+ const isEnd = i === sections.length;
184
+ if (!isEnd && !Number.isNaN(params[i] ?? NaN) || isEnd) {
185
+ const nextVal = isEnd ? uLast : params[i] ?? uLast;
186
+ const gapCount = i - prevIdx - 1;
187
+ for (let g = 1; g <= gapCount; g++) params[prevIdx + g] = prevVal + g / (gapCount + 1) * (nextVal - prevVal);
188
+ if (!isEnd) {
189
+ prevIdx = i;
190
+ prevVal = params[i] ?? uFirst;
191
+ }
192
+ }
193
+ }
194
+ for (let i = 1; i < params.length; i++) if ((params[i] ?? 0) <= (params[i - 1] ?? 0)) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.MULTI_SWEEP_FAILED, `Computed section parameters are not strictly increasing at index ${i} (${params[i - 1]?.toFixed(4)} >= ${params[i]?.toFixed(4)})`));
195
+ return require_errors.ok(params);
178
196
  }
179
197
  /**
180
198
  * Sweep multiple profile sections along a spine wire.
@@ -195,7 +213,9 @@ function multiSectionSweep(sections, spine, options) {
195
213
  if (locationErr) return require_errors.err(locationErr);
196
214
  try {
197
215
  const kernel = require_shapeTypes.getKernel();
198
- const params = computeSectionParams(sections, spine, kernel);
216
+ const paramsResult = computeSectionParams(sections, spine, kernel);
217
+ if (require_errors.isErr(paramsResult)) return paramsResult;
218
+ const params = paramsResult.value;
199
219
  const positionedWires = [];
200
220
  for (let i = 0; i < sections.length; i++) {
201
221
  const param = params[i];
@@ -1,4 +1,4 @@
1
- import { X as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-Ct7W6h2X.js";
1
+ import { X as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-B9a2ed1X.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DboJwVCf.js";
3
3
  import { c as vecLength, d as vecNormalize, t as vecAdd } from "./vecOps-B-PCHgyB.js";
4
4
  //#region src/operations/extrudeUtils.ts
@@ -28,8 +28,8 @@ function makeSpineWire(start, end) {
28
28
  return castShape(kernel.makeWire([edge]));
29
29
  }
30
30
  /** Build a helix wire for twist extrusion. */
31
- function makeHelixWire(pitch, height, radius, center, dir, _lefthand = false) {
32
- return castShape(getKernel().makeHelixWire(pitch, height, radius, [...center], [...dir]));
31
+ function makeHelixWire(pitch, height, radius, center, dir, leftHanded = false) {
32
+ return castShape(getKernel().makeHelixWire(pitch, height, radius, [...center], [...dir], leftHanded));
33
33
  }
34
34
  /**
35
35
  * Sweep a wire profile along a spine wire to create a 3D shape.
@@ -145,7 +145,8 @@ function twistExtrude(wire, angleDegrees, center, normal, profileShape, shellMod
145
145
  const extrusionLength = vecLength(normal);
146
146
  if (extrusionLength < 1e-10) return err(validationError("ZERO_LENGTH_EXTRUSION", "Extrusion vector cannot have zero length"));
147
147
  const spine = makeSpineWire(center, vecAdd(center, normal));
148
- const auxiliarySpine = makeHelixWire(360 / angleDegrees * extrusionLength, extrusionLength, 1, center, normal);
148
+ const leftHanded = angleDegrees < 0;
149
+ const auxiliarySpine = makeHelixWire(360 / Math.abs(angleDegrees) * extrusionLength, extrusionLength, 1, center, normal, leftHanded);
149
150
  let law = null;
150
151
  if (profileShape) {
151
152
  const lawResult = buildLawFromProfile(extrusionLength, profileShape);
@@ -171,10 +172,27 @@ function validateSectionLocations(sections) {
171
172
  function computeSectionParams(sections, spine, kernel) {
172
173
  const [uFirst, uLast] = kernel.curveParameters(spine.wrapped);
173
174
  const uRange = uLast - uFirst;
174
- return sections.map((s, i) => {
175
- if (s.location !== void 0) return uFirst + s.location * uRange;
176
- return uFirst + i / (sections.length - 1) * uRange;
177
- });
175
+ const params = new Array(sections.length);
176
+ for (let i = 0; i < sections.length; i++) {
177
+ const loc = sections[i]?.location;
178
+ params[i] = loc !== void 0 ? uFirst + loc * uRange : NaN;
179
+ }
180
+ let prevIdx = -1;
181
+ let prevVal = uFirst;
182
+ for (let i = 0; i <= sections.length; i++) {
183
+ const isEnd = i === sections.length;
184
+ if (!isEnd && !Number.isNaN(params[i] ?? NaN) || isEnd) {
185
+ const nextVal = isEnd ? uLast : params[i] ?? uLast;
186
+ const gapCount = i - prevIdx - 1;
187
+ for (let g = 1; g <= gapCount; g++) params[prevIdx + g] = prevVal + g / (gapCount + 1) * (nextVal - prevVal);
188
+ if (!isEnd) {
189
+ prevIdx = i;
190
+ prevVal = params[i] ?? uFirst;
191
+ }
192
+ }
193
+ }
194
+ for (let i = 1; i < params.length; i++) if ((params[i] ?? 0) <= (params[i - 1] ?? 0)) return err(validationError(BrepErrorCode.MULTI_SWEEP_FAILED, `Computed section parameters are not strictly increasing at index ${i} (${params[i - 1]?.toFixed(4)} >= ${params[i]?.toFixed(4)})`));
195
+ return ok(params);
178
196
  }
179
197
  /**
180
198
  * Sweep multiple profile sections along a spine wire.
@@ -195,7 +213,9 @@ function multiSectionSweep(sections, spine, options) {
195
213
  if (locationErr) return err(locationErr);
196
214
  try {
197
215
  const kernel = getKernel();
198
- const params = computeSectionParams(sections, spine, kernel);
216
+ const paramsResult = computeSectionParams(sections, spine, kernel);
217
+ if (isErr(paramsResult)) return paramsResult;
218
+ const params = paramsResult.value;
199
219
  const positionedWires = [];
200
220
  for (let i = 0; i < sections.length; i++) {
201
221
  const param = params[i];