brepjs 18.118.5 → 18.118.6

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 (49) hide show
  1. package/dist/2d.cjs +4 -4
  2. package/dist/2d.js +4 -4
  3. package/dist/{blueprint-DLYo6s8j.js → blueprint-BelsntLG.js} +2 -2
  4. package/dist/{blueprint-D2GXPkIE.cjs → blueprint-CsxL1j9L.cjs} +2 -2
  5. package/dist/{blueprintFns-Ds3dL4c8.js → blueprintFns-CAut3zwQ.js} +2 -2
  6. package/dist/{blueprintFns-F0nZbsld.cjs → blueprintFns-DT6M5_k_.cjs} +2 -2
  7. package/dist/{blueprintSketcher-CgeBcSjd.cjs → blueprintSketcher-CcZ_89uU.cjs} +2 -2
  8. package/dist/{blueprintSketcher-u-yf9iTR.js → blueprintSketcher-x4mNzlv3.js} +2 -2
  9. package/dist/{boolean2D-CyNCdKrt.cjs → boolean2D-BLigmyIR.cjs} +3 -3
  10. package/dist/{boolean2D-DbfzLbZ4.js → boolean2D-nGqoIZh4.js} +3 -3
  11. package/dist/brepjs.cjs +35 -29
  12. package/dist/brepjs.js +36 -30
  13. package/dist/{cornerFinder-DL__YqRi.js → cornerFinder-BC2eaeW9.js} +1 -1
  14. package/dist/{cornerFinder-BOwew_zv.cjs → cornerFinder-C6IpCea0.cjs} +1 -1
  15. package/dist/{curveFns-BAGamIGX.js → curveFns-Ca020OZW.js} +14 -8
  16. package/dist/{curveFns-DVPQyYM7.cjs → curveFns-D7d2foN-.cjs} +13 -7
  17. package/dist/{drawFns-DPiGPDvQ.js → drawFns-BW8OeXum.js} +7 -7
  18. package/dist/{drawFns-0R1HI7It.cjs → drawFns-Bz_jLHCa.cjs} +7 -7
  19. package/dist/{healingFns-CM9gxI8q.cjs → healingFns-CV0xzJi6.cjs} +13 -6
  20. package/dist/{healingFns-DHhGzFVL.js → healingFns-D7uMxSHi.js} +13 -6
  21. package/dist/{helpers-vBB_xxts.cjs → helpers-CEi8kRzi.cjs} +1 -1
  22. package/dist/{helpers-CcpT5mna.js → helpers-DcWisIKC.js} +1 -1
  23. package/dist/{importFns-80hScxgP.js → importFns-B8II-pj-.js} +1 -1
  24. package/dist/{importFns-BhatwR3O.cjs → importFns-DUniB9wl.cjs} +1 -1
  25. package/dist/io.cjs +1 -1
  26. package/dist/io.js +1 -1
  27. package/dist/{loftFns-DtBK3brv.js → loftFns-B4ZJYoX2.js} +72 -31
  28. package/dist/{loftFns-Bi5Osj4K.cjs → loftFns-oCtEZjxa.cjs} +71 -30
  29. package/dist/operations.cjs +2 -2
  30. package/dist/operations.js +2 -2
  31. package/dist/{primitiveFns-DpkSBopj.cjs → primitiveFns-CHrrghJM.cjs} +1 -1
  32. package/dist/{primitiveFns-BnZk1fEp.js → primitiveFns-DplUMAxU.js} +1 -1
  33. package/dist/query.cjs +2 -2
  34. package/dist/query.js +2 -2
  35. package/dist/sketching.cjs +3 -3
  36. package/dist/sketching.js +3 -3
  37. package/dist/{solidBuilders-DVBKEByu.js → solidBuilders-B8hK3cdi.js} +9 -6
  38. package/dist/{solidBuilders-D3zaZO6E.cjs → solidBuilders-BASH2bih.cjs} +8 -5
  39. package/dist/text.cjs +2 -2
  40. package/dist/text.js +2 -2
  41. package/dist/{textBlueprints-iZABkf3e.js → textBlueprints-BKwbX7PZ.js} +4 -4
  42. package/dist/{textBlueprints-Aicvgono.cjs → textBlueprints-DdfGcHik.cjs} +4 -4
  43. package/dist/{textMetrics-CpxOlmKV.js → textMetrics-DIVTsrHQ.js} +1 -1
  44. package/dist/{textMetrics-DjbEw5om.cjs → textMetrics-DNF4ITX5.cjs} +1 -1
  45. package/dist/{threadFns-CLgKc6Bl.js → threadFns-DbqB5RMq.js} +7 -7
  46. package/dist/{threadFns-aTVNbo4w.cjs → threadFns-DetQVphJ.cjs} +6 -6
  47. package/dist/topology.cjs +4 -4
  48. package/dist/topology.js +4 -4
  49. package/package.json +1 -1
package/dist/2d.cjs CHANGED
@@ -2,10 +2,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_shapeTypes = require("./shapeTypes-BbUKvpaO.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
4
  const require_topologyQueryFns = require("./topologyQueryFns-Cf2j9Zt0.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-CgeBcSjd.cjs");
6
- const require_blueprint = require("./blueprint-D2GXPkIE.cjs");
7
- const require_boolean2D = require("./boolean2D-CyNCdKrt.cjs");
8
- const require_blueprintFns = require("./blueprintFns-F0nZbsld.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-CcZ_89uU.cjs");
6
+ const require_blueprint = require("./blueprint-CsxL1j9L.cjs");
7
+ const require_boolean2D = require("./boolean2D-BLigmyIR.cjs");
8
+ const require_blueprintFns = require("./blueprintFns-DT6M5_k_.cjs");
9
9
  //#region src/core/curve2dHandle.ts
10
10
  /**
11
11
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
package/dist/2d.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { W as createKernelHandle, nt as getKernel2D, o as createEdge } from "./shapeTypes-Osdj5kMc.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
3
  import { w as kernelCallRaw } from "./topologyQueryFns-DzOSCj5J.js";
4
- import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-u-yf9iTR.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-DLYo6s8j.js";
6
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DbfzLbZ4.js";
7
- 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-Ds3dL4c8.js";
4
+ import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-x4mNzlv3.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-BelsntLG.js";
6
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-nGqoIZh4.js";
7
+ 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-CAut3zwQ.js";
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -5,10 +5,10 @@ import { r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { r as toVec3 } from "./types-D24Y27N0.js";
6
6
  import { r as makePlane } from "./planeOps-DSjjtrjg.js";
7
7
  import { _ as cast, h as uvCoordinates, i as faceGeomType, m as uvBounds, r as faceCenter } from "./faceFns-yqC4gDSc.js";
8
- import { p as getOrientation } from "./curveFns-BAGamIGX.js";
8
+ import { p as getOrientation } from "./curveFns-Ca020OZW.js";
9
9
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
10
10
  import { r as makeFace } from "./surfaceBuilders-CMUEd1bK.js";
11
- import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-CcpT5mna.js";
11
+ import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-DcWisIKC.js";
12
12
  //#region src/2d/lib/definitions.ts
13
13
  /** Type guard that checks whether a value is a `Point2D`. */
14
14
  function isPoint2D(point) {
@@ -5,10 +5,10 @@ const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_types = require("./types-KjA8tY4Y.cjs");
6
6
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
7
7
  const require_faceFns = require("./faceFns-mARULpM7.cjs");
8
- const require_curveFns = require("./curveFns-DVPQyYM7.cjs");
8
+ const require_curveFns = require("./curveFns-D7d2foN-.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
10
10
  const require_surfaceBuilders = require("./surfaceBuilders-DDfVCOVg.cjs");
11
- const require_helpers = require("./helpers-vBB_xxts.cjs");
11
+ const require_helpers = require("./helpers-CEi8kRzi.cjs");
12
12
  //#region src/2d/lib/definitions.ts
13
13
  /** Type guard that checks whether a value is a `Point2D`. */
14
14
  function isPoint2D(point) {
@@ -1,6 +1,6 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
2
- import { i as CompoundBlueprint } from "./blueprintSketcher-u-yf9iTR.js";
3
- import { t as Blueprint } from "./blueprint-DLYo6s8j.js";
2
+ import { i as CompoundBlueprint } from "./blueprintSketcher-x4mNzlv3.js";
3
+ import { t as Blueprint } from "./blueprint-BelsntLG.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-CXJtc4I7.cjs");
2
- const require_blueprintSketcher = require("./blueprintSketcher-CgeBcSjd.cjs");
3
- const require_blueprint = require("./blueprint-D2GXPkIE.cjs");
2
+ const require_blueprintSketcher = require("./blueprintSketcher-CcZ_89uU.cjs");
3
+ const require_blueprint = require("./blueprint-CsxL1j9L.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -3,8 +3,8 @@ const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
6
- const require_helpers = require("./helpers-vBB_xxts.cjs");
7
- const require_blueprint = require("./blueprint-D2GXPkIE.cjs");
6
+ const require_helpers = require("./helpers-CEi8kRzi.cjs");
7
+ const require_blueprint = require("./blueprint-CsxL1j9L.cjs");
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /**
10
10
  * @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
@@ -3,8 +3,8 @@ import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, R as unwrap, T as isOk, b as err, h as bug, n as computationError, s as safeIndex } from "./errors-DNWJsfVU.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
6
- import { _ as samePoint, 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, v as scalarMultiply2d } from "./helpers-CcpT5mna.js";
7
- import { _ as Curve2D, 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-DLYo6s8j.js";
6
+ import { _ as samePoint, 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, v as scalarMultiply2d } from "./helpers-DcWisIKC.js";
7
+ import { _ as Curve2D, 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-BelsntLG.js";
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /**
10
10
  * @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
@@ -2,9 +2,9 @@ const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
4
4
  const require_surfaceBuilders = require("./surfaceBuilders-DDfVCOVg.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-CgeBcSjd.cjs");
6
- const require_helpers = require("./helpers-vBB_xxts.cjs");
7
- const require_blueprint = require("./blueprint-D2GXPkIE.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-CcZ_89uU.cjs");
6
+ const require_helpers = require("./helpers-CEi8kRzi.cjs");
7
+ const require_blueprint = require("./blueprint-CsxL1j9L.cjs");
8
8
  //#region src/2d/blueprints/cannedBlueprints.ts
9
9
  /**
10
10
  * Create a regular polygon blueprint inscribed in a circle of the given radius.
@@ -2,9 +2,9 @@ import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
2
  import { R as unwrap, h as bug, s as safeIndex } from "./errors-DNWJsfVU.js";
3
3
  import { r as lastOrThrow } from "./arrayAccess-DrUGPADn.js";
4
4
  import { v as zip } from "./surfaceBuilders-CMUEd1bK.js";
5
- import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-u-yf9iTR.js";
6
- import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-CcpT5mna.js";
7
- import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-DLYo6s8j.js";
5
+ import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-x4mNzlv3.js";
6
+ import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-DcWisIKC.js";
7
+ import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-BelsntLG.js";
8
8
  //#region src/2d/blueprints/cannedBlueprints.ts
9
9
  /**
10
10
  * Create a regular polygon blueprint inscribed in a circle of the given radius.
package/dist/brepjs.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-Aicvgono.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-DdfGcHik.cjs");
3
3
  const require_shapeTypes = require("./shapeTypes-BbUKvpaO.cjs");
4
4
  const require_occtWasmAdapter = require("./occtWasmAdapter-Bj9dX3Lb.cjs");
5
5
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
@@ -11,28 +11,28 @@ const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
11
11
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
12
12
  const require_faceFns = require("./faceFns-mARULpM7.cjs");
13
13
  const require_shapeFns = require("./shapeFns-DxbbLpGg.cjs");
14
- const require_curveFns = require("./curveFns-DVPQyYM7.cjs");
14
+ const require_curveFns = require("./curveFns-D7d2foN-.cjs");
15
15
  const require_meshFns = require("./meshFns-Cim4Y6vz.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
17
  const require_surfaceBuilders = require("./surfaceBuilders-DDfVCOVg.cjs");
18
- const require_solidBuilders = require("./solidBuilders-D3zaZO6E.cjs");
19
- const require_healingFns = require("./healingFns-CM9gxI8q.cjs");
20
- const require_threadFns = require("./threadFns-aTVNbo4w.cjs");
21
- const require_blueprintSketcher = require("./blueprintSketcher-CgeBcSjd.cjs");
22
- const require_helpers = require("./helpers-vBB_xxts.cjs");
23
- const require_drawFns = require("./drawFns-0R1HI7It.cjs");
18
+ const require_solidBuilders = require("./solidBuilders-BASH2bih.cjs");
19
+ const require_healingFns = require("./healingFns-CV0xzJi6.cjs");
20
+ const require_threadFns = require("./threadFns-DetQVphJ.cjs");
21
+ const require_blueprintSketcher = require("./blueprintSketcher-CcZ_89uU.cjs");
22
+ const require_helpers = require("./helpers-CEi8kRzi.cjs");
23
+ const require_drawFns = require("./drawFns-Bz_jLHCa.cjs");
24
24
  const require_measureFns = require("./measureFns-BD9_NT7u.cjs");
25
- const require_cornerFinder = require("./cornerFinder-BOwew_zv.cjs");
26
- const require_boolean2D = require("./boolean2D-CyNCdKrt.cjs");
27
- const require_blueprintFns = require("./blueprintFns-F0nZbsld.cjs");
28
- const require_importFns = require("./importFns-BhatwR3O.cjs");
29
- const require_loftFns = require("./loftFns-Bi5Osj4K.cjs");
25
+ const require_cornerFinder = require("./cornerFinder-C6IpCea0.cjs");
26
+ const require_boolean2D = require("./boolean2D-BLigmyIR.cjs");
27
+ const require_blueprintFns = require("./blueprintFns-DT6M5_k_.cjs");
28
+ const require_importFns = require("./importFns-DUniB9wl.cjs");
29
+ const require_loftFns = require("./loftFns-oCtEZjxa.cjs");
30
30
  const require_cameraFns = require("./cameraFns-C3Xf7-I7.cjs");
31
- const require_textMetrics = require("./textMetrics-DjbEw5om.cjs");
31
+ const require_textMetrics = require("./textMetrics-DNF4ITX5.cjs");
32
32
  const require_adjacencyFns = require("./adjacencyFns-CpyYIeax.cjs");
33
33
  const require_refResolveFns = require("./refResolveFns-TdGhQZUP.cjs");
34
34
  const require_workerPool = require("./workerPool-D30NsiIW.cjs");
35
- const require_primitiveFns = require("./primitiveFns-DpkSBopj.cjs");
35
+ const require_primitiveFns = require("./primitiveFns-CHrrghJM.cjs");
36
36
  //#region src/topology/shapeBooleans.ts
37
37
  var BOPAlgo_GlueShift = 1;
38
38
  var BOPAlgo_GlueFull = 2;
@@ -1228,9 +1228,9 @@ function buildBSplineSurface(heights, rows, cols, dx, dy, scaleZ) {
1228
1228
  z
1229
1229
  ]);
1230
1230
  }
1231
- const shape = require_shapeTypes.castShape(require_shapeTypes.getKernel().bsplineSurface(points, rows, cols));
1231
+ const shape = require_shapeTypes.castResultShape(require_shapeTypes.getKernel().bsplineSurface(points, rows, cols));
1232
1232
  if (require_shapeTypes.isFace(shape)) return require_errors.ok(shape);
1233
- shape[Symbol.dispose]();
1233
+ require_shapeTypes.disposeResultShape(shape);
1234
1234
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.SURFACE_FAILED, "B-spline surface did not produce a face"));
1235
1235
  }
1236
1236
  /** Build a triangulated surface by sewing triangular faces. */
@@ -1245,10 +1245,10 @@ function buildTriangulatedSurface(heights, rows, cols, dx, dy, scaleZ) {
1245
1245
  z
1246
1246
  ]);
1247
1247
  }
1248
- const shape = require_shapeTypes.castShape(require_shapeTypes.getKernel().triangulatedSurface(points, rows, cols));
1248
+ const shape = require_shapeTypes.castResultShape(require_shapeTypes.getKernel().triangulatedSurface(points, rows, cols));
1249
1249
  if (require_shapeTypes.isFace(shape)) return require_errors.ok(shape);
1250
1250
  if (require_shapeTypes.isShell(shape)) return require_errors.ok(shape);
1251
- shape[Symbol.dispose]();
1251
+ require_shapeTypes.disposeResultShape(shape);
1252
1252
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.SURFACE_FAILED, "surfaceFromGrid: unexpected shape type from sewing"));
1253
1253
  }
1254
1254
  /**
@@ -1350,8 +1350,11 @@ function hull(shapes, options = {}) {
1350
1350
  try {
1351
1351
  const kernel = require_shapeTypes.getKernel();
1352
1352
  const ocShapes = shapes.map((s) => s.wrapped);
1353
- const cast = require_shapeTypes.castShape(kernel.hull(ocShapes, tolerance));
1354
- if (!require_shapeTypes.isSolid(cast)) return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_NOT_3D, "Hull result is not a solid; input may be degenerate"));
1353
+ const cast = require_shapeTypes.castResultShape(kernel.hull(ocShapes, tolerance));
1354
+ if (!require_shapeTypes.isSolid(cast)) {
1355
+ require_shapeTypes.disposeResultShape(cast);
1356
+ return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_NOT_3D, "Hull result is not a solid; input may be degenerate"));
1357
+ }
1355
1358
  return require_errors.ok(cast);
1356
1359
  } catch (e) {
1357
1360
  const raw = e instanceof Error ? e.message : String(e);
@@ -1386,8 +1389,11 @@ function convexHull(points) {
1386
1389
  y: p[1],
1387
1390
  z: p[2]
1388
1391
  }));
1389
- const cast = require_shapeTypes.castShape(kernel.hullFromPoints(objPoints, .1));
1390
- if (!require_shapeTypes.isSolid(cast)) return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_NOT_3D, "convexHull result is not a solid; points may be coplanar"));
1392
+ const cast = require_shapeTypes.castResultShape(kernel.hullFromPoints(objPoints, .1));
1393
+ if (!require_shapeTypes.isSolid(cast)) {
1394
+ require_shapeTypes.disposeResultShape(cast);
1395
+ return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_NOT_3D, "convexHull result is not a solid; points may be coplanar"));
1396
+ }
1391
1397
  return require_errors.ok(cast);
1392
1398
  } catch (e) {
1393
1399
  const raw = e instanceof Error ? e.message : String(e);
@@ -1418,9 +1424,9 @@ function detectSphere(shape) {
1418
1424
  }
1419
1425
  function minkowskiSphere(shape, radius, tolerance) {
1420
1426
  try {
1421
- const wrapped = require_shapeTypes.castShape(require_shapeTypes.getKernel().offset(shape.wrapped, radius, tolerance));
1427
+ const wrapped = require_shapeTypes.castResultShape(require_shapeTypes.getKernel().offset(shape.wrapped, radius, tolerance));
1422
1428
  if (!require_shapeTypes.isShape3D(wrapped)) {
1423
- wrapped[Symbol.dispose]();
1429
+ require_shapeTypes.disposeResultShape(wrapped);
1424
1430
  return require_errors.err(require_errors.typeCastError(require_errors.BrepErrorCode.MINKOWSKI_NOT_3D, "Minkowski sphere offset did not produce a 3D shape"));
1425
1431
  }
1426
1432
  return require_errors.ok(wrapped);
@@ -1457,9 +1463,9 @@ function minkowskiGeneral(shape, tool, tolerance) {
1457
1463
  });
1458
1464
  }
1459
1465
  }
1460
- const wrapped = require_shapeTypes.castShape(kernel.hullFromPoints(sumPoints, tolerance));
1466
+ const wrapped = require_shapeTypes.castResultShape(kernel.hullFromPoints(sumPoints, tolerance));
1461
1467
  if (!require_shapeTypes.isShape3D(wrapped)) {
1462
- wrapped[Symbol.dispose]();
1468
+ require_shapeTypes.disposeResultShape(wrapped);
1463
1469
  return require_errors.err(require_errors.typeCastError(require_errors.BrepErrorCode.MINKOWSKI_NOT_3D, "Minkowski hull did not produce a 3D shape"));
1464
1470
  }
1465
1471
  return require_errors.ok(wrapped);
@@ -1515,9 +1521,9 @@ function polyhedron(points, faces, options = {}) {
1515
1521
  y,
1516
1522
  z
1517
1523
  }));
1518
- const cast = require_shapeTypes.castShape(kernel.buildSolidFromFaces(ptObjs, triangles, tolerance));
1524
+ const cast = require_shapeTypes.castResultShape(kernel.buildSolidFromFaces(ptObjs, triangles, tolerance));
1519
1525
  if (!require_shapeTypes.isSolid(cast)) {
1520
- cast[Symbol.dispose]();
1526
+ require_shapeTypes.disposeResultShape(cast);
1521
1527
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.POLYHEDRON_FAILED, "Polyhedron did not produce a solid"));
1522
1528
  }
1523
1529
  return require_errors.ok(cast);
package/dist/brepjs.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as _usingCtx, A as isValidSolid, B as is2D, C as isWire, D as isOrientedFace, E as isManifoldShell, F as validSolid, G as getDisposalStats, H as DisposalScope, I as getShapeKind, J as resetDisposalStats, K as isLive, M as orientedFace, N as planarFace, O as isPlanarFace, P as planarWire, Q as withScopeResultAsync, R as as2D, S as isVertex, T as isClosedWire, U as createHandle, V as is3D, W as createKernelHandle, X as withScope, Z as withScopeResult, _ as isFace, _t as getPerformanceStats, a as createCompound, at as init, b as isShell, bt as qualityDeflection, c as createShell, ct as prewarm, d as createWire, dt as withKernel, et as getActiveKernelId, ft as withQuality, g as isEdge, gt as BrepkitAdapter, h as isCompound, ht as supportsProjection, it as getKernelTier, j as manifoldShell, k as isPlanarWire, l as createSolid, lt as registerKernel, mt as supportsConstraintSketch, n as castShape, o as createEdge, ot as initFromManifold, pt as withTier, r as castShape3D, rt as getKernelCapabilities, s as createFace, st as initFromOC, tt as getKernel, u as createVertex, ut as registerKernelTier, v as isShape1D, vt as resetPerformanceStats, w as closedWire, x as isSolid, y as isShape3D, yt as currentQuality, z as as3D } from "./shapeTypes-Osdj5kMc.js";
1
+ import { $ as _usingCtx, A as isValidSolid, B as is2D, C as isWire, D as isOrientedFace, E as isManifoldShell, F as validSolid, G as getDisposalStats, H as DisposalScope, I as getShapeKind, J as resetDisposalStats, K as isLive, M as orientedFace, N as planarFace, O as isPlanarFace, P as planarWire, Q as withScopeResultAsync, R as as2D, S as isVertex, T as isClosedWire, U as createHandle, V as is3D, W as createKernelHandle, X as withScope, Z as withScopeResult, _ as isFace, _t as getPerformanceStats, a as createCompound, at as init, b as isShell, bt as qualityDeflection, c as createShell, ct as prewarm, d as createWire, dt as withKernel, et as getActiveKernelId, ft as withQuality, g as isEdge, gt as BrepkitAdapter, h as isCompound, ht as supportsProjection, it as getKernelTier, j as manifoldShell, k as isPlanarWire, l as createSolid, lt as registerKernel, mt as supportsConstraintSketch, n as castShape, o as createEdge, ot as initFromManifold, p as disposeResultShape, pt as withTier, r as castShape3D, rt as getKernelCapabilities, s as createFace, st as initFromOC, t as castResultShape, tt as getKernel, u as createVertex, ut as registerKernelTier, v as isShape1D, vt as resetPerformanceStats, w as closedWire, x as isSolid, y as isShape3D, yt as currentQuality, z as as3D } from "./shapeTypes-Osdj5kMc.js";
2
2
  import { D as DEFAULT_CAPABILITIES, O as EXACT_BREP_CAPABILITIES, t as OcctWasmAdapter } from "./occtWasmAdapter-wBLknH8f.js";
3
3
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
4
4
  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-DNWJsfVU.js";
@@ -9,29 +9,29 @@ import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane,
9
9
  import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-DSjjtrjg.js";
10
10
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, p as removeHolesFromFace, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-yqC4gDSc.js";
11
11
  import { A as tagFaces, C as colorShape, D as getFaceTags, E as findFacesByTag, M as setShapeOrigin, O as getTagMetadata, S as colorFaces, T as getShapeColor, a as isSameShape, c as applyMatrix$1, d as mirror$2, f as resize, g as translate$2, h as transformCopy$1, i as isEqualShape, j as getFaceOrigins, k as setTagMetadata, l as composeTransforms, m as scale$3, n as getHashCode, o as simplify$1, p as rotate$2, r as isEmpty$2, s as toBREP$1, t as clone$1, u as locate$1, v as hasAnyMetadata, w as getFaceColor, x as propagateMetadataThroughRelocation } from "./shapeFns-DjiKoRrd.js";
12
- import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-BAGamIGX.js";
12
+ import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-Ca020OZW.js";
13
13
  import { a as meshEdges$1, c as meshMultiLOD, d as createMeshCache, i as mesh$1, l as buildMeshCacheKey, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as clearMeshCache } from "./meshFns-Cd2zde-k.js";
14
14
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
15
15
  import { _ as makeThreePointArc, d as makeCircle, h as makeLine, l as makeBSplineInterpolation, n as fill, r as makeFace, s as assembleWire } from "./surfaceBuilders-CMUEd1bK.js";
16
- import { _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-DVBKEByu.js";
17
- import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, M as toLODGeometryData, N as toLODGeometryLevels, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, c as isValid$1, d as draft$1, f as fillet$1, g as variableFillet, h as thicken$1, i as heal$1, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, m as shell$1, n as fixSelfIntersection, o as healSolid, p as offset$1, r as fixShape, s as healWire, t as autoHeal, u as chamfer$1, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-DHhGzFVL.js";
18
- import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as quatMultiply, G as circularPattern, H as removeChild, I as quatRotate, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, N as quatFromAxisAngle, O as prismaticJoint, P as quatFromTo, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, a as deserializeHistory, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, p as serializeHistory, q as linearPattern, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as countNodes } from "./threadFns-CLgKc6Bl.js";
19
- import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-u-yf9iTR.js";
20
- import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-CcpT5mna.js";
21
- import { A as sketchEllipse, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-DPiGPDvQ.js";
16
+ import { _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-B8hK3cdi.js";
17
+ import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, M as toLODGeometryData, N as toLODGeometryLevels, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, c as isValid$1, d as draft$1, f as fillet$1, g as variableFillet, h as thicken$1, i as heal$1, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, m as shell$1, n as fixSelfIntersection, o as healSolid, p as offset$1, r as fixShape, s as healWire, t as autoHeal, u as chamfer$1, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-D7uMxSHi.js";
18
+ import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as quatMultiply, G as circularPattern, H as removeChild, I as quatRotate, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, N as quatFromAxisAngle, O as prismaticJoint, P as quatFromTo, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, a as deserializeHistory, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, p as serializeHistory, q as linearPattern, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as countNodes } from "./threadFns-DbqB5RMq.js";
19
+ import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-x4mNzlv3.js";
20
+ import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-DcWisIKC.js";
21
+ import { A as sketchEllipse, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-BW8OeXum.js";
22
22
  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-CLWtxkh6.js";
23
- import { t as cornerFinder } from "./cornerFinder-DL__YqRi.js";
24
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DbfzLbZ4.js";
25
- 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-Ds3dL4c8.js";
26
- 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-80hScxgP.js";
27
- import { a as revolve$1, c as multiSectionSweep, d as twistExtrude, i as extrudeAll, l as supportExtrude, n as loftAll, o as complexExtrude, r as extrude$1, s as guidedSweep, t as loft$1, u as sweep$1 } from "./loftFns-DtBK3brv.js";
28
- import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, n as getFont, o as compoundSketchExtrude, p as sketchRevolve, r as loadFont, s as compoundSketchFace, t as textBlueprints, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-iZABkf3e.js";
23
+ import { t as cornerFinder } from "./cornerFinder-BC2eaeW9.js";
24
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-nGqoIZh4.js";
25
+ 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-CAut3zwQ.js";
26
+ 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-B8II-pj-.js";
27
+ import { a as revolve$1, c as multiSectionSweep, d as twistExtrude, i as extrudeAll, l as supportExtrude, n as loftAll, o as complexExtrude, r as extrude$1, s as guidedSweep, t as loft$1, u as sweep$1 } from "./loftFns-B4ZJYoX2.js";
28
+ import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, n as getFont, o as compoundSketchExtrude, p as sketchRevolve, r as loadFont, s as compoundSketchFace, t as textBlueprints, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-BKwbX7PZ.js";
29
29
  import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-DmLhH9Pr.js";
30
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-CpxOlmKV.js";
30
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-DIVTsrHQ.js";
31
31
  import { a as sharedEdges, c as wiresOfFace, i as facesOfVertex, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-cSvOB_Ze.js";
32
32
  import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-CJ58ZH-S.js";
33
33
  import { _ as isSuccessResponse, a as createWorkerClient, c as enqueueTask, d as rejectAll, f as isBatchRequest, g as isOperationRequest, h as isInitRequest, i as registerHandler, l as isEmpty$1, m as isErrorResponse, n as createOperationRegistry, o as createTaskQueue, p as isDisposeRequest, r as createWorkerHandler, s as dequeueTask, t as createWorkerPool, u as pendingCount } from "./workerPool-XcYX2UZ0.js";
34
- import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere$1, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus$1, x as subFace, y as solid } from "./primitiveFns-BnZk1fEp.js";
34
+ import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere$1, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus$1, x as subFace, y as solid } from "./primitiveFns-DplUMAxU.js";
35
35
  //#region \0rolldown/runtime.js
36
36
  var __defProp = Object.defineProperty;
37
37
  var __exportAll = (all, no_symbols) => {
@@ -1239,9 +1239,9 @@ function buildBSplineSurface(heights, rows, cols, dx, dy, scaleZ) {
1239
1239
  z
1240
1240
  ]);
1241
1241
  }
1242
- const shape = castShape(getKernel().bsplineSurface(points, rows, cols));
1242
+ const shape = castResultShape(getKernel().bsplineSurface(points, rows, cols));
1243
1243
  if (isFace(shape)) return ok(shape);
1244
- shape[Symbol.dispose]();
1244
+ disposeResultShape(shape);
1245
1245
  return err(kernelError(BrepErrorCode.SURFACE_FAILED, "B-spline surface did not produce a face"));
1246
1246
  }
1247
1247
  /** Build a triangulated surface by sewing triangular faces. */
@@ -1256,10 +1256,10 @@ function buildTriangulatedSurface(heights, rows, cols, dx, dy, scaleZ) {
1256
1256
  z
1257
1257
  ]);
1258
1258
  }
1259
- const shape = castShape(getKernel().triangulatedSurface(points, rows, cols));
1259
+ const shape = castResultShape(getKernel().triangulatedSurface(points, rows, cols));
1260
1260
  if (isFace(shape)) return ok(shape);
1261
1261
  if (isShell(shape)) return ok(shape);
1262
- shape[Symbol.dispose]();
1262
+ disposeResultShape(shape);
1263
1263
  return err(kernelError(BrepErrorCode.SURFACE_FAILED, "surfaceFromGrid: unexpected shape type from sewing"));
1264
1264
  }
1265
1265
  /**
@@ -1361,8 +1361,11 @@ function hull(shapes, options = {}) {
1361
1361
  try {
1362
1362
  const kernel = getKernel();
1363
1363
  const ocShapes = shapes.map((s) => s.wrapped);
1364
- const cast = castShape(kernel.hull(ocShapes, tolerance));
1365
- if (!isSolid(cast)) return err(kernelError(BrepErrorCode.HULL_NOT_3D, "Hull result is not a solid; input may be degenerate"));
1364
+ const cast = castResultShape(kernel.hull(ocShapes, tolerance));
1365
+ if (!isSolid(cast)) {
1366
+ disposeResultShape(cast);
1367
+ return err(kernelError(BrepErrorCode.HULL_NOT_3D, "Hull result is not a solid; input may be degenerate"));
1368
+ }
1366
1369
  return ok(cast);
1367
1370
  } catch (e) {
1368
1371
  const raw = e instanceof Error ? e.message : String(e);
@@ -1397,8 +1400,11 @@ function convexHull(points) {
1397
1400
  y: p[1],
1398
1401
  z: p[2]
1399
1402
  }));
1400
- const cast = castShape(kernel.hullFromPoints(objPoints, .1));
1401
- if (!isSolid(cast)) return err(kernelError(BrepErrorCode.HULL_NOT_3D, "convexHull result is not a solid; points may be coplanar"));
1403
+ const cast = castResultShape(kernel.hullFromPoints(objPoints, .1));
1404
+ if (!isSolid(cast)) {
1405
+ disposeResultShape(cast);
1406
+ return err(kernelError(BrepErrorCode.HULL_NOT_3D, "convexHull result is not a solid; points may be coplanar"));
1407
+ }
1402
1408
  return ok(cast);
1403
1409
  } catch (e) {
1404
1410
  const raw = e instanceof Error ? e.message : String(e);
@@ -1429,9 +1435,9 @@ function detectSphere(shape) {
1429
1435
  }
1430
1436
  function minkowskiSphere(shape, radius, tolerance) {
1431
1437
  try {
1432
- const wrapped = castShape(getKernel().offset(shape.wrapped, radius, tolerance));
1438
+ const wrapped = castResultShape(getKernel().offset(shape.wrapped, radius, tolerance));
1433
1439
  if (!isShape3D(wrapped)) {
1434
- wrapped[Symbol.dispose]();
1440
+ disposeResultShape(wrapped);
1435
1441
  return err(typeCastError(BrepErrorCode.MINKOWSKI_NOT_3D, "Minkowski sphere offset did not produce a 3D shape"));
1436
1442
  }
1437
1443
  return ok(wrapped);
@@ -1468,9 +1474,9 @@ function minkowskiGeneral(shape, tool, tolerance) {
1468
1474
  });
1469
1475
  }
1470
1476
  }
1471
- const wrapped = castShape(kernel.hullFromPoints(sumPoints, tolerance));
1477
+ const wrapped = castResultShape(kernel.hullFromPoints(sumPoints, tolerance));
1472
1478
  if (!isShape3D(wrapped)) {
1473
- wrapped[Symbol.dispose]();
1479
+ disposeResultShape(wrapped);
1474
1480
  return err(typeCastError(BrepErrorCode.MINKOWSKI_NOT_3D, "Minkowski hull did not produce a 3D shape"));
1475
1481
  }
1476
1482
  return ok(wrapped);
@@ -1526,9 +1532,9 @@ function polyhedron(points, faces, options = {}) {
1526
1532
  y,
1527
1533
  z
1528
1534
  }));
1529
- const cast = castShape(kernel.buildSolidFromFaces(ptObjs, triangles, tolerance));
1535
+ const cast = castResultShape(kernel.buildSolidFromFaces(ptObjs, triangles, tolerance));
1530
1536
  if (!isSolid(cast)) {
1531
- cast[Symbol.dispose]();
1537
+ disposeResultShape(cast);
1532
1538
  return err(kernelError(BrepErrorCode.POLYHEDRON_FAILED, "Polyhedron did not produce a solid"));
1533
1539
  }
1534
1540
  return ok(cast);
@@ -1,6 +1,6 @@
1
1
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
3
- import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-CcpT5mna.js";
3
+ import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-DcWisIKC.js";
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,6 +1,6 @@
1
1
  const require_constants = require("./constants-BOVyEYGH.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
3
- const require_helpers = require("./helpers-vBB_xxts.cjs");
3
+ const require_helpers = require("./helpers-CEi8kRzi.cjs");
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,4 +1,4 @@
1
- import { C as isWire, g as isEdge, n as castShape, tt as getKernel } from "./shapeTypes-Osdj5kMc.js";
1
+ import { C as isWire, g as isEdge, p as disposeResultShape, t as castResultShape, tt as getKernel } from "./shapeTypes-Osdj5kMc.js";
2
2
  import { A as ok, b as err, l as typeCastError } from "./errors-DNWJsfVU.js";
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -121,7 +121,7 @@ function getOrientation(shape) {
121
121
  }
122
122
  /** Flip the orientation of an edge or wire. Returns a new shape with the same dimension. */
123
123
  function flipOrientation(shape) {
124
- return castShape(getKernel().reverseShape(shape.wrapped));
124
+ return castResultShape(getKernel().reverseShape(shape.wrapped));
125
125
  }
126
126
  /**
127
127
  * Interpolate a smooth BSpline curve that passes exactly through the given points.
@@ -133,8 +133,11 @@ function flipOrientation(shape) {
133
133
  function interpolateCurve(points, options = {}) {
134
134
  if (points.length < 2) return err(typeCastError("INTERPOLATE_MIN_POINTS", "Interpolation requires at least 2 points"));
135
135
  try {
136
- const cast = castShape(getKernel().interpolatePoints(points, options));
137
- if (!isEdge(cast)) return err(typeCastError("INTERPOLATE_NOT_EDGE", "Interpolation did not produce an edge"));
136
+ const cast = castResultShape(getKernel().interpolatePoints(points, options));
137
+ if (!isEdge(cast)) {
138
+ disposeResultShape(cast);
139
+ return err(typeCastError("INTERPOLATE_NOT_EDGE", "Interpolation did not produce an edge"));
140
+ }
138
141
  return ok(cast);
139
142
  } catch (e) {
140
143
  return err(typeCastError("INTERPOLATE_FAILED", `Interpolation failed: ${e instanceof Error ? e.message : String(e)}`));
@@ -150,8 +153,11 @@ function interpolateCurve(points, options = {}) {
150
153
  function approximateCurve(points, options = {}) {
151
154
  if (points.length < 2) return err(typeCastError("APPROXIMATE_MIN_POINTS", "Approximation requires at least 2 points"));
152
155
  try {
153
- const cast = castShape(getKernel().approximatePoints(points, options));
154
- if (!isEdge(cast)) return err(typeCastError("APPROXIMATE_NOT_EDGE", "Approximation did not produce an edge"));
156
+ const cast = castResultShape(getKernel().approximatePoints(points, options));
157
+ if (!isEdge(cast)) {
158
+ disposeResultShape(cast);
159
+ return err(typeCastError("APPROXIMATE_NOT_EDGE", "Approximation did not produce an edge"));
160
+ }
155
161
  return ok(cast);
156
162
  } catch (e) {
157
163
  return err(typeCastError("APPROXIMATE_FAILED", `Approximation failed: ${e instanceof Error ? e.message : String(e)}`));
@@ -166,14 +172,14 @@ function approximateCurve(points, options = {}) {
166
172
  * @returns Ok with the offset wire, or Err if the operation fails.
167
173
  */
168
174
  function offsetWire2D(wire, offset, kind = "arc") {
169
- const wrapped = castShape(getKernel().offsetWire2D(wire.wrapped, offset, {
175
+ const wrapped = castResultShape(getKernel().offsetWire2D(wire.wrapped, offset, {
170
176
  arc: "arc",
171
177
  intersection: "intersection",
172
178
  tangent: "tangent",
173
179
  chamfer: "intersection"
174
180
  }[kind]));
175
181
  if (!isWire(wrapped)) {
176
- wrapped[Symbol.dispose]();
182
+ disposeResultShape(wrapped);
177
183
  return err(typeCastError("OFFSET_NOT_WIRE", "Offset did not produce a Wire"));
178
184
  }
179
185
  return ok(wrapped);
@@ -121,7 +121,7 @@ function getOrientation(shape) {
121
121
  }
122
122
  /** Flip the orientation of an edge or wire. Returns a new shape with the same dimension. */
123
123
  function flipOrientation(shape) {
124
- return require_shapeTypes.castShape(require_shapeTypes.getKernel().reverseShape(shape.wrapped));
124
+ return require_shapeTypes.castResultShape(require_shapeTypes.getKernel().reverseShape(shape.wrapped));
125
125
  }
126
126
  /**
127
127
  * Interpolate a smooth BSpline curve that passes exactly through the given points.
@@ -133,8 +133,11 @@ function flipOrientation(shape) {
133
133
  function interpolateCurve(points, options = {}) {
134
134
  if (points.length < 2) return require_errors.err(require_errors.typeCastError("INTERPOLATE_MIN_POINTS", "Interpolation requires at least 2 points"));
135
135
  try {
136
- const cast = require_shapeTypes.castShape(require_shapeTypes.getKernel().interpolatePoints(points, options));
137
- if (!require_shapeTypes.isEdge(cast)) return require_errors.err(require_errors.typeCastError("INTERPOLATE_NOT_EDGE", "Interpolation did not produce an edge"));
136
+ const cast = require_shapeTypes.castResultShape(require_shapeTypes.getKernel().interpolatePoints(points, options));
137
+ if (!require_shapeTypes.isEdge(cast)) {
138
+ require_shapeTypes.disposeResultShape(cast);
139
+ return require_errors.err(require_errors.typeCastError("INTERPOLATE_NOT_EDGE", "Interpolation did not produce an edge"));
140
+ }
138
141
  return require_errors.ok(cast);
139
142
  } catch (e) {
140
143
  return require_errors.err(require_errors.typeCastError("INTERPOLATE_FAILED", `Interpolation failed: ${e instanceof Error ? e.message : String(e)}`));
@@ -150,8 +153,11 @@ function interpolateCurve(points, options = {}) {
150
153
  function approximateCurve(points, options = {}) {
151
154
  if (points.length < 2) return require_errors.err(require_errors.typeCastError("APPROXIMATE_MIN_POINTS", "Approximation requires at least 2 points"));
152
155
  try {
153
- const cast = require_shapeTypes.castShape(require_shapeTypes.getKernel().approximatePoints(points, options));
154
- if (!require_shapeTypes.isEdge(cast)) return require_errors.err(require_errors.typeCastError("APPROXIMATE_NOT_EDGE", "Approximation did not produce an edge"));
156
+ const cast = require_shapeTypes.castResultShape(require_shapeTypes.getKernel().approximatePoints(points, options));
157
+ if (!require_shapeTypes.isEdge(cast)) {
158
+ require_shapeTypes.disposeResultShape(cast);
159
+ return require_errors.err(require_errors.typeCastError("APPROXIMATE_NOT_EDGE", "Approximation did not produce an edge"));
160
+ }
155
161
  return require_errors.ok(cast);
156
162
  } catch (e) {
157
163
  return require_errors.err(require_errors.typeCastError("APPROXIMATE_FAILED", `Approximation failed: ${e instanceof Error ? e.message : String(e)}`));
@@ -166,14 +172,14 @@ function approximateCurve(points, options = {}) {
166
172
  * @returns Ok with the offset wire, or Err if the operation fails.
167
173
  */
168
174
  function offsetWire2D(wire, offset, kind = "arc") {
169
- const wrapped = require_shapeTypes.castShape(require_shapeTypes.getKernel().offsetWire2D(wire.wrapped, offset, {
175
+ const wrapped = require_shapeTypes.castResultShape(require_shapeTypes.getKernel().offsetWire2D(wire.wrapped, offset, {
170
176
  arc: "arc",
171
177
  intersection: "intersection",
172
178
  tangent: "tangent",
173
179
  chamfer: "intersection"
174
180
  }[kind]));
175
181
  if (!require_shapeTypes.isWire(wrapped)) {
176
- wrapped[Symbol.dispose]();
182
+ require_shapeTypes.disposeResultShape(wrapped);
177
183
  return require_errors.err(require_errors.typeCastError("OFFSET_NOT_WIRE", "Offset did not produce a Wire"));
178
184
  }
179
185
  return require_errors.ok(wrapped);
@@ -7,15 +7,15 @@ import { r as toVec3 } from "./types-D24Y27N0.js";
7
7
  import { d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-SKPRvPH-.js";
8
8
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-DSjjtrjg.js";
9
9
  import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as downcast } from "./faceFns-yqC4gDSc.js";
10
- import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-BAGamIGX.js";
10
+ import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-Ca020OZW.js";
11
11
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
12
12
  import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-CMUEd1bK.js";
13
- import { a as Blueprints, c as make2dOffset, i as CompoundBlueprint, l as intersectCurves, n as BaseSketcher2d, o as chamferCurves, s as filletCurves, u as Flatbush } from "./blueprintSketcher-u-yf9iTR.js";
14
- import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-CcpT5mna.js";
15
- 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-DLYo6s8j.js";
16
- import { t as cornerFinder } from "./cornerFinder-DL__YqRi.js";
17
- import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DbfzLbZ4.js";
18
- import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-iZABkf3e.js";
13
+ import { a as Blueprints, c as make2dOffset, i as CompoundBlueprint, l as intersectCurves, n as BaseSketcher2d, o as chamferCurves, s as filletCurves, u as Flatbush } from "./blueprintSketcher-x4mNzlv3.js";
14
+ import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-DcWisIKC.js";
15
+ 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-BelsntLG.js";
16
+ import { t as cornerFinder } from "./cornerFinder-BC2eaeW9.js";
17
+ import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-nGqoIZh4.js";
18
+ import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-BKwbX7PZ.js";
19
19
  import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-DmLhH9Pr.js";
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**