brepjs 18.118.12 → 18.118.14

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 (81) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{adjacencyFns-BaiFeuKQ.cjs → adjacencyFns-BdxIbZtR.cjs} +2 -2
  4. package/dist/{adjacencyFns-CRqm5AS0.js → adjacencyFns-qxeJWyj-.js} +2 -2
  5. package/dist/{blueprint-DI5CF5j9.cjs → blueprint-CN536u9V.cjs} +13 -8
  6. package/dist/{blueprint-xYq-5XuV.js → blueprint-dqI319c7.js} +13 -8
  7. package/dist/{blueprintFns-rkE3w33A.cjs → blueprintFns-CF-6WzuR.cjs} +2 -2
  8. package/dist/{blueprintFns-BIx82gku.js → blueprintFns-Ci1QVESM.js} +2 -2
  9. package/dist/{blueprintSketcher-CW1MTtqe.cjs → blueprintSketcher-CGnohIOe.cjs} +3 -3
  10. package/dist/{blueprintSketcher-DuNukkBb.js → blueprintSketcher-CY9DgQqk.js} +3 -3
  11. package/dist/{boolean2D-D7WPkRuG.js → boolean2D-CaAwVwCR.js} +4 -4
  12. package/dist/{boolean2D-CstWuqo8.cjs → boolean2D-DnBT9gQ5.cjs} +4 -4
  13. package/dist/brepjs.cjs +135 -82
  14. package/dist/brepjs.js +135 -82
  15. package/dist/{cameraFns-CaG1cMFg.cjs → cameraFns-Ckw5prda.cjs} +30 -14
  16. package/dist/{cameraFns-B1P5WTCI.js → cameraFns-CythF7Ob.js} +31 -15
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-BZqos_kQ.js → cornerFinder-BEe90gzY.js} +1 -1
  20. package/dist/{cornerFinder-Ivo7aISl.cjs → cornerFinder-Bss_mZV9.cjs} +1 -1
  21. package/dist/{curveFns-DDLgrGyy.cjs → curveFns-C2zZ7Xuq.cjs} +1 -1
  22. package/dist/{curveFns-C5qarKS5.js → curveFns-CH6gaGTf.js} +1 -1
  23. package/dist/{drawFns-BX8bt_LP.cjs → drawFns-CMyY6ED-.cjs} +58 -38
  24. package/dist/{drawFns-BU7wz6Sh.js → drawFns-hOQecCHR.js} +57 -37
  25. package/dist/{faceFns-RZFix5VU.cjs → faceFns-BbmIuuFt.cjs} +2 -2
  26. package/dist/{faceFns-Bkno2HCU.js → faceFns-ClvSac1T.js} +2 -2
  27. package/dist/{healingFns-DbunvjeU.cjs → healingFns-BZ-TOacm.cjs} +5 -5
  28. package/dist/{healingFns-D3Yl3-zg.js → healingFns-BhB_G0L0.js} +5 -5
  29. package/dist/{helpers-DVMbGdiy.cjs → helpers-D0be4TzF.cjs} +6 -6
  30. package/dist/{helpers-XUoXaD5D.js → helpers-zVYq0h_A.js} +6 -6
  31. package/dist/{importFns-EwV81J0E.cjs → importFns-CvlUuJ59.cjs} +2 -2
  32. package/dist/{importFns-C2z-lgvq.js → importFns-TbwuxynG.js} +2 -2
  33. package/dist/io.cjs +2 -2
  34. package/dist/io.js +2 -2
  35. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  36. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  37. package/dist/{loftFns-BWaSzS-2.cjs → loftFns-BTWRncKQ.cjs} +45 -26
  38. package/dist/{loftFns-DpQTJQgv.js → loftFns-CUg8_4_X.js} +45 -26
  39. package/dist/{measureFns-D7FLzPAB.js → measureFns-Bbgcgo9U.js} +3 -3
  40. package/dist/{measureFns-z1j5oyK6.cjs → measureFns-cK6MSs6B.cjs} +3 -3
  41. package/dist/measurement.cjs +1 -1
  42. package/dist/measurement.js +1 -1
  43. package/dist/{meshFns-DqHpJu5I.js → meshFns-CKXYSlFr.js} +3 -3
  44. package/dist/{meshFns-CKOXvMDj.cjs → meshFns-Df26UzQ9.cjs} +3 -3
  45. package/dist/{occtWasmAdapter-nqo3wbVj.js → occtWasmAdapter-BgmRCYeD.js} +29 -11
  46. package/dist/{occtWasmAdapter-8wX1Z2-I.cjs → occtWasmAdapter-CWX5KCl8.cjs} +29 -11
  47. package/dist/operations.cjs +2 -2
  48. package/dist/operations.js +2 -2
  49. package/dist/{primitiveFns-uXoHZuh9.js → primitiveFns-1otQpjcN.js} +50 -19
  50. package/dist/{primitiveFns-D0k3Absh.cjs → primitiveFns-DZkzMLUq.cjs} +50 -19
  51. package/dist/projection.cjs +1 -1
  52. package/dist/projection.js +1 -1
  53. package/dist/query.cjs +2 -2
  54. package/dist/query.js +2 -2
  55. package/dist/{refResolveFns-C1DZyVnQ.cjs → refResolveFns-BLM5XlZR.cjs} +6 -6
  56. package/dist/{refResolveFns-CEs1EWWI.js → refResolveFns-_niAxNu8.js} +6 -6
  57. package/dist/{shapeFns-CpopWo8-.js → shapeFns-Gzaax25v.js} +2 -2
  58. package/dist/{shapeFns-CQVLaU7u.cjs → shapeFns-m5OBBpM4.cjs} +2 -2
  59. package/dist/shapeRef.cjs +1 -1
  60. package/dist/shapeRef.js +1 -1
  61. package/dist/{shapeTypes-BtEERwGK.js → shapeTypes-BalkiKtK.js} +4 -2
  62. package/dist/{shapeTypes-BsJXkU8g.cjs → shapeTypes-C4gRoPYX.cjs} +4 -2
  63. package/dist/sketching.cjs +3 -3
  64. package/dist/sketching.js +3 -3
  65. package/dist/{solidBuilders-t7TnJXqT.cjs → solidBuilders-CHzmSo67.cjs} +8 -8
  66. package/dist/{solidBuilders-BRva7VpY.js → solidBuilders-CgEPRock.js} +8 -8
  67. package/dist/{surfaceBuilders-On9uTEBH.cjs → surfaceBuilders-DWHDogVL.cjs} +13 -4
  68. package/dist/{surfaceBuilders-Co91_Kh7.js → surfaceBuilders-HAF4Xtow.js} +13 -4
  69. package/dist/text.cjs +2 -2
  70. package/dist/text.js +2 -2
  71. package/dist/{textBlueprints-BoFKAYI9.cjs → textBlueprints-D5mNvqKF.cjs} +7 -7
  72. package/dist/{textBlueprints-DdCJocI3.js → textBlueprints-DBjpb8G_.js} +7 -7
  73. package/dist/{textMetrics-DYzW2as_.js → textMetrics-C7pEipGp.js} +1 -1
  74. package/dist/{textMetrics-CS_JMGf1.cjs → textMetrics-CgyvE6u0.cjs} +1 -1
  75. package/dist/{threadFns-DwKNCMFx.cjs → threadFns-DDcOeRGs.cjs} +32 -18
  76. package/dist/{threadFns-BKQNkgT6.js → threadFns-Dsn9lSDD.js} +32 -18
  77. package/dist/topology.cjs +9 -9
  78. package/dist/topology.js +9 -9
  79. package/dist/{topologyQueryFns-5vIsyp4r.cjs → topologyQueryFns-BzIV1jHw.cjs} +1 -1
  80. package/dist/{topologyQueryFns-BU41SCtU.js → topologyQueryFns-vDjZw1k2.js} +1 -1
  81. package/package.json +1 -1
package/dist/2d.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-BsJXkU8g.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns-5vIsyp4r.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-CW1MTtqe.cjs");
6
- const require_blueprint = require("./blueprint-DI5CF5j9.cjs");
7
- const require_boolean2D = require("./boolean2D-CstWuqo8.cjs");
8
- const require_blueprintFns = require("./blueprintFns-rkE3w33A.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-BzIV1jHw.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
6
+ const require_blueprint = require("./blueprint-CN536u9V.cjs");
7
+ const require_boolean2D = require("./boolean2D-DnBT9gQ5.cjs");
8
+ const require_blueprintFns = require("./blueprintFns-CF-6WzuR.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
- import { G as createKernelHandle, rt as getKernel2D, s as createEdge } from "./shapeTypes-BtEERwGK.js";
1
+ import { G as createKernelHandle, rt as getKernel2D, s as createEdge } from "./shapeTypes-BalkiKtK.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { w as kernelCallRaw } from "./topologyQueryFns-BU41SCtU.js";
4
- import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-DuNukkBb.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-xYq-5XuV.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-D7WPkRuG.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-BIx82gku.js";
3
+ import { w as kernelCallRaw } from "./topologyQueryFns-vDjZw1k2.js";
4
+ import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-CY9DgQqk.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-dqI319c7.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-CaAwVwCR.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-Ci1QVESM.js";
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -1,5 +1,5 @@
1
- const require_shapeTypes = require("./shapeTypes-BsJXkU8g.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns-5vIsyp4r.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-BzIV1jHw.cjs");
3
3
  const require_constants = require("./constants-BOVyEYGH.cjs");
4
4
  //#region src/topology/adjacencyFns.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { a as castShapeWithKnownType, n as castResultShapeWithKnownType, nt as getKernel } from "./shapeTypes-BtEERwGK.js";
2
- import { c as getFaces, f as getVertices, l as getOrCreateCache, s as getEdges } from "./topologyQueryFns-BU41SCtU.js";
1
+ import { a as castShapeWithKnownType, n as castResultShapeWithKnownType, nt as getKernel } from "./shapeTypes-BalkiKtK.js";
2
+ import { c as getFaces, f as getVertices, l as getOrCreateCache, s as getEdges } from "./topologyQueryFns-vDjZw1k2.js";
3
3
  import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
4
4
  //#region src/topology/adjacencyFns.ts
5
5
  /**
@@ -1,14 +1,14 @@
1
- const require_shapeTypes = require("./shapeTypes-BsJXkU8g.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
2
2
  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_types = require("./types-KjA8tY4Y.cjs");
6
6
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
7
- const require_faceFns = require("./faceFns-RZFix5VU.cjs");
8
- const require_curveFns = require("./curveFns-DDLgrGyy.cjs");
7
+ const require_faceFns = require("./faceFns-BbmIuuFt.cjs");
8
+ const require_curveFns = require("./curveFns-C2zZ7Xuq.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
10
- const require_surfaceBuilders = require("./surfaceBuilders-On9uTEBH.cjs");
11
- const require_helpers = require("./helpers-DVMbGdiy.cjs");
10
+ const require_surfaceBuilders = require("./surfaceBuilders-DWHDogVL.cjs");
11
+ const require_helpers = require("./helpers-D0be4TzF.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) {
@@ -853,8 +853,11 @@ var Blueprint = class Blueprint {
853
853
  */
854
854
  sketchOnPlane(inputPlane, origin) {
855
855
  const plane = inputPlane && typeof inputPlane !== "string" ? { ...inputPlane } : require_planeOps.makePlane(inputPlane, origin);
856
+ const edges = curvesAsEdgesOnPlane(this.curves, plane);
857
+ const wire = assembleWire(edges);
858
+ for (const e of edges) e[Symbol.dispose]();
856
859
  return {
857
- wire: assembleWire(curvesAsEdgesOnPlane(this.curves, plane)),
860
+ wire,
858
861
  defaultOrigin: plane.origin,
859
862
  defaultDirection: plane.zDir
860
863
  };
@@ -868,10 +871,12 @@ var Blueprint = class Blueprint {
868
871
  */
869
872
  sketchOnFace(face, scaleMode) {
870
873
  const kernel = require_shapeTypes.getKernel();
871
- const wire = assembleWire(require_errors.unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode)));
874
+ const edges = require_errors.unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode));
875
+ const wire = assembleWire(edges);
876
+ for (const e of edges) e[Symbol.dispose]();
872
877
  kernel.buildCurves3d(wire.wrapped);
873
878
  const fixedWire = kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
874
- wire.delete();
879
+ wire[Symbol.dispose]();
875
880
  return {
876
881
  wire: require_shapeTypes.createWire(fixedWire),
877
882
  baseFace: face
@@ -1,14 +1,14 @@
1
- import { J as registerForCleanup, X as unregisterFromCleanup, f as createWire, nt as getKernel, rt as getKernel2D, s as createEdge } from "./shapeTypes-BtEERwGK.js";
1
+ import { J as registerForCleanup, X as unregisterFromCleanup, f as createWire, nt as getKernel, rt as getKernel2D, s as createEdge } from "./shapeTypes-BalkiKtK.js";
2
2
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, R as unwrap, b as err, d as validationError, h as bug, n as computationError } from "./errors-DNWJsfVU.js";
4
4
  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
- import { _ as cast, h as uvCoordinates, i as faceGeomType, m as uvBounds, r as faceCenter } from "./faceFns-Bkno2HCU.js";
8
- import { p as getOrientation } from "./curveFns-C5qarKS5.js";
7
+ import { _ as cast, h as uvCoordinates, i as faceGeomType, m as uvBounds, r as faceCenter } from "./faceFns-ClvSac1T.js";
8
+ import { p as getOrientation } from "./curveFns-CH6gaGTf.js";
9
9
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
10
- import { r as makeFace } from "./surfaceBuilders-Co91_Kh7.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-XUoXaD5D.js";
10
+ import { r as makeFace } from "./surfaceBuilders-HAF4Xtow.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-zVYq0h_A.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) {
@@ -852,8 +852,11 @@ var Blueprint = class Blueprint {
852
852
  */
853
853
  sketchOnPlane(inputPlane, origin) {
854
854
  const plane = inputPlane && typeof inputPlane !== "string" ? { ...inputPlane } : makePlane(inputPlane, origin);
855
+ const edges = curvesAsEdgesOnPlane(this.curves, plane);
856
+ const wire = assembleWire(edges);
857
+ for (const e of edges) e[Symbol.dispose]();
855
858
  return {
856
- wire: assembleWire(curvesAsEdgesOnPlane(this.curves, plane)),
859
+ wire,
857
860
  defaultOrigin: plane.origin,
858
861
  defaultDirection: plane.zDir
859
862
  };
@@ -867,10 +870,12 @@ var Blueprint = class Blueprint {
867
870
  */
868
871
  sketchOnFace(face, scaleMode) {
869
872
  const kernel = getKernel();
870
- const wire = assembleWire(unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode)));
873
+ const edges = unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode));
874
+ const wire = assembleWire(edges);
875
+ for (const e of edges) e[Symbol.dispose]();
871
876
  kernel.buildCurves3d(wire.wrapped);
872
877
  const fixedWire = kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
873
- wire.delete();
878
+ wire[Symbol.dispose]();
874
879
  return {
875
880
  wire: createWire(fixedWire),
876
881
  baseFace: face
@@ -1,6 +1,6 @@
1
1
  const require_errors = require("./errors-CXJtc4I7.cjs");
2
- const require_blueprintSketcher = require("./blueprintSketcher-CW1MTtqe.cjs");
3
- const require_blueprint = require("./blueprint-DI5CF5j9.cjs");
2
+ const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
3
+ const require_blueprint = require("./blueprint-CN536u9V.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,6 +1,6 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
2
- import { i as CompoundBlueprint } from "./blueprintSketcher-DuNukkBb.js";
3
- import { t as Blueprint } from "./blueprint-xYq-5XuV.js";
2
+ import { i as CompoundBlueprint } from "./blueprintSketcher-CY9DgQqk.js";
3
+ import { t as Blueprint } from "./blueprint-dqI319c7.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes-BsJXkU8g.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
2
2
  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-DVMbGdiy.cjs");
7
- const require_blueprint = require("./blueprint-DI5CF5j9.cjs");
6
+ const require_helpers = require("./helpers-D0be4TzF.cjs");
7
+ const require_blueprint = require("./blueprint-CN536u9V.cjs");
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /**
10
10
  * @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
@@ -1,10 +1,10 @@
1
- import { nt as getKernel, rt as getKernel2D } from "./shapeTypes-BtEERwGK.js";
1
+ import { nt as getKernel, rt as getKernel2D } from "./shapeTypes-BalkiKtK.js";
2
2
  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-XUoXaD5D.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-xYq-5XuV.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-zVYq0h_A.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-dqI319c7.js";
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /**
10
10
  * @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
@@ -1,10 +1,10 @@
1
1
  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
- import { v as zip } from "./surfaceBuilders-Co91_Kh7.js";
5
- import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-DuNukkBb.js";
6
- import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-XUoXaD5D.js";
7
- import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-xYq-5XuV.js";
4
+ import { v as zip } from "./surfaceBuilders-HAF4Xtow.js";
5
+ import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-CY9DgQqk.js";
6
+ import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-zVYq0h_A.js";
7
+ import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-dqI319c7.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.
@@ -1,10 +1,10 @@
1
1
  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
- const require_surfaceBuilders = require("./surfaceBuilders-On9uTEBH.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-CW1MTtqe.cjs");
6
- const require_helpers = require("./helpers-DVMbGdiy.cjs");
7
- const require_blueprint = require("./blueprint-DI5CF5j9.cjs");
4
+ const require_surfaceBuilders = require("./surfaceBuilders-DWHDogVL.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
6
+ const require_helpers = require("./helpers-D0be4TzF.cjs");
7
+ const require_blueprint = require("./blueprint-CN536u9V.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.
package/dist/brepjs.cjs CHANGED
@@ -1,38 +1,38 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-BoFKAYI9.cjs");
3
- const require_shapeTypes = require("./shapeTypes-BsJXkU8g.cjs");
4
- const require_occtWasmAdapter = require("./occtWasmAdapter-8wX1Z2-I.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-D5mNvqKF.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
4
+ const require_occtWasmAdapter = require("./occtWasmAdapter-CWX5KCl8.cjs");
5
5
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
6
6
  const require_errors = require("./errors-CXJtc4I7.cjs");
7
- const require_topologyQueryFns = require("./topologyQueryFns-5vIsyp4r.cjs");
7
+ const require_topologyQueryFns = require("./topologyQueryFns-BzIV1jHw.cjs");
8
8
  const require_constants = require("./constants-BOVyEYGH.cjs");
9
9
  const require_types = require("./types-KjA8tY4Y.cjs");
10
10
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
11
11
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
12
- const require_faceFns = require("./faceFns-RZFix5VU.cjs");
13
- const require_shapeFns = require("./shapeFns-CQVLaU7u.cjs");
14
- const require_curveFns = require("./curveFns-DDLgrGyy.cjs");
15
- const require_meshFns = require("./meshFns-CKOXvMDj.cjs");
12
+ const require_faceFns = require("./faceFns-BbmIuuFt.cjs");
13
+ const require_shapeFns = require("./shapeFns-m5OBBpM4.cjs");
14
+ const require_curveFns = require("./curveFns-C2zZ7Xuq.cjs");
15
+ const require_meshFns = require("./meshFns-Df26UzQ9.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
- const require_surfaceBuilders = require("./surfaceBuilders-On9uTEBH.cjs");
18
- const require_solidBuilders = require("./solidBuilders-t7TnJXqT.cjs");
19
- const require_healingFns = require("./healingFns-DbunvjeU.cjs");
20
- const require_threadFns = require("./threadFns-DwKNCMFx.cjs");
21
- const require_blueprintSketcher = require("./blueprintSketcher-CW1MTtqe.cjs");
22
- const require_helpers = require("./helpers-DVMbGdiy.cjs");
23
- const require_drawFns = require("./drawFns-BX8bt_LP.cjs");
24
- const require_measureFns = require("./measureFns-z1j5oyK6.cjs");
25
- const require_cornerFinder = require("./cornerFinder-Ivo7aISl.cjs");
26
- const require_boolean2D = require("./boolean2D-CstWuqo8.cjs");
27
- const require_blueprintFns = require("./blueprintFns-rkE3w33A.cjs");
28
- const require_importFns = require("./importFns-EwV81J0E.cjs");
29
- const require_loftFns = require("./loftFns-BWaSzS-2.cjs");
30
- const require_cameraFns = require("./cameraFns-CaG1cMFg.cjs");
31
- const require_textMetrics = require("./textMetrics-CS_JMGf1.cjs");
32
- const require_adjacencyFns = require("./adjacencyFns-BaiFeuKQ.cjs");
33
- const require_refResolveFns = require("./refResolveFns-C1DZyVnQ.cjs");
17
+ const require_surfaceBuilders = require("./surfaceBuilders-DWHDogVL.cjs");
18
+ const require_solidBuilders = require("./solidBuilders-CHzmSo67.cjs");
19
+ const require_healingFns = require("./healingFns-BZ-TOacm.cjs");
20
+ const require_threadFns = require("./threadFns-DDcOeRGs.cjs");
21
+ const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
22
+ const require_helpers = require("./helpers-D0be4TzF.cjs");
23
+ const require_drawFns = require("./drawFns-CMyY6ED-.cjs");
24
+ const require_measureFns = require("./measureFns-cK6MSs6B.cjs");
25
+ const require_cornerFinder = require("./cornerFinder-Bss_mZV9.cjs");
26
+ const require_boolean2D = require("./boolean2D-DnBT9gQ5.cjs");
27
+ const require_blueprintFns = require("./blueprintFns-CF-6WzuR.cjs");
28
+ const require_importFns = require("./importFns-CvlUuJ59.cjs");
29
+ const require_loftFns = require("./loftFns-BTWRncKQ.cjs");
30
+ const require_cameraFns = require("./cameraFns-Ckw5prda.cjs");
31
+ const require_textMetrics = require("./textMetrics-CgyvE6u0.cjs");
32
+ const require_adjacencyFns = require("./adjacencyFns-BdxIbZtR.cjs");
33
+ const require_refResolveFns = require("./refResolveFns-BLM5XlZR.cjs");
34
34
  const require_workerPool = require("./workerPool-D30NsiIW.cjs");
35
- const require_primitiveFns = require("./primitiveFns-D0k3Absh.cjs");
35
+ const require_primitiveFns = require("./primitiveFns-DZkzMLUq.cjs");
36
36
  //#region src/topology/shapeBooleans.ts
37
37
  var BOPAlgo_GlueShift = 1;
38
38
  var BOPAlgo_GlueFull = 2;
@@ -241,8 +241,8 @@ function repairMesh(mesh, opts, id) {
241
241
  if (require_errors.isErr(engine)) return engine;
242
242
  try {
243
243
  try {
244
- var _usingCtx$7 = require_shapeTypes._usingCtx();
245
- const repaired = _usingCtx$7.u(engine.value.repair_mesh(mesh.vertices, mesh.triangles, resolution, padding));
244
+ var _usingCtx$8 = require_shapeTypes._usingCtx();
245
+ const repaired = _usingCtx$8.u(engine.value.repair_mesh(mesh.vertices, mesh.triangles, resolution, padding));
246
246
  const vertexCount = repaired.positions.length / 3;
247
247
  return require_errors.ok({
248
248
  vertices: repaired.positions,
@@ -256,9 +256,9 @@ function repairMesh(mesh, opts, id) {
256
256
  }]
257
257
  });
258
258
  } catch (_) {
259
- _usingCtx$7.e = _;
259
+ _usingCtx$8.e = _;
260
260
  } finally {
261
- _usingCtx$7.d();
261
+ _usingCtx$8.d();
262
262
  }
263
263
  } catch (cause) {
264
264
  return require_errors.err(require_errors.computationError("VOXEL_REPAIR_FAILED", cause instanceof Error ? cause.message : "voxel repair failed (grid too large?).", cause));
@@ -337,12 +337,12 @@ function offsetMesh(mesh, distance, opts, id) {
337
337
  if (require_errors.isErr(engine)) return engine;
338
338
  try {
339
339
  try {
340
- var _usingCtx$6 = require_shapeTypes._usingCtx();
341
- return meshFromResult(_usingCtx$6.u(engine.value.offset_mesh(mesh.vertices, mesh.triangles, distance, params.value.resolution, params.value.padding)));
340
+ var _usingCtx$7 = require_shapeTypes._usingCtx();
341
+ return meshFromResult(_usingCtx$7.u(engine.value.offset_mesh(mesh.vertices, mesh.triangles, distance, params.value.resolution, params.value.padding)));
342
342
  } catch (_) {
343
- _usingCtx$6.e = _;
343
+ _usingCtx$7.e = _;
344
344
  } finally {
345
- _usingCtx$6.d();
345
+ _usingCtx$7.d();
346
346
  }
347
347
  } catch (cause) {
348
348
  return require_errors.err(require_errors.computationError("VOXEL_OFFSET_FAILED", cause instanceof Error ? cause.message : "voxel offset failed (grid too large?).", cause));
@@ -467,9 +467,9 @@ function resolveGridParams$1(opts) {
467
467
  */
468
468
  function meshFromField(field) {
469
469
  try {
470
- var _usingCtx$5 = require_shapeTypes._usingCtx();
470
+ var _usingCtx$6 = require_shapeTypes._usingCtx();
471
471
  const rawResult = field.contour();
472
- const { positions, normals, indices } = _usingCtx$5.u({
472
+ const { positions, normals, indices } = _usingCtx$6.u({
473
473
  value: rawResult,
474
474
  [Symbol.dispose]() {
475
475
  rawResult.free();
@@ -489,9 +489,9 @@ function meshFromField(field) {
489
489
  }]
490
490
  });
491
491
  } catch (_) {
492
- _usingCtx$5.e = _;
492
+ _usingCtx$6.e = _;
493
493
  } finally {
494
- _usingCtx$5.d();
494
+ _usingCtx$6.d();
495
495
  }
496
496
  }
497
497
  function fieldDeletable(raw) {
@@ -1056,12 +1056,12 @@ function latticeInfill(mesh, opts, id) {
1056
1056
  const { tag, period, thickness, resolution, padding } = resolved.value;
1057
1057
  try {
1058
1058
  try {
1059
- var _usingCtx$4 = require_shapeTypes._usingCtx();
1060
- return require_errors.ok(toMesh(_usingCtx$4.u(engine.value.lattice_infill(mesh.vertices, mesh.triangles, resolution, padding, tag, period, thickness))));
1059
+ var _usingCtx$5 = require_shapeTypes._usingCtx();
1060
+ return require_errors.ok(toMesh(_usingCtx$5.u(engine.value.lattice_infill(mesh.vertices, mesh.triangles, resolution, padding, tag, period, thickness))));
1061
1061
  } catch (_) {
1062
- _usingCtx$4.e = _;
1062
+ _usingCtx$5.e = _;
1063
1063
  } finally {
1064
- _usingCtx$4.d();
1064
+ _usingCtx$5.d();
1065
1065
  }
1066
1066
  } catch (cause) {
1067
1067
  return require_errors.err(require_errors.computationError("LATTICE_INFILL_FAILED", cause instanceof Error ? cause.message : "lattice infill failed (grid too large?).", cause));
@@ -2123,7 +2123,9 @@ function roof(w, options) {
2123
2123
  if (triFaces.length === 0) return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ROOF_FAILED, "No valid triangular faces could be built"));
2124
2124
  try {
2125
2125
  const solid = kernel.sewAndSolidify(triFaces, 1e-6);
2126
- return require_errors.ok(require_shapeTypes.createSolid(kernel.fixShape(solid)));
2126
+ const fixed = kernel.fixShape(solid);
2127
+ if (fixed !== solid) kernel.dispose(solid);
2128
+ return require_errors.ok(require_shapeTypes.createSolid(fixed));
2127
2129
  } catch (solidifyErr) {
2128
2130
  try {
2129
2131
  const sewn = require_shapeTypes.createSolid(kernel.sew(triFaces, 1e-6));
@@ -2132,6 +2134,8 @@ function roof(w, options) {
2132
2134
  } catch (sewErr) {
2133
2135
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ROOF_FAILED, "Failed to sew roof faces", sewErr));
2134
2136
  }
2137
+ } finally {
2138
+ for (const tf of triFaces) kernel.dispose(tf);
2135
2139
  }
2136
2140
  } catch (e) {
2137
2141
  const msg = e instanceof Error ? e.message : String(e);
@@ -3737,10 +3741,20 @@ function resolveTargetFace(shape, faceSpec) {
3737
3741
  }
3738
3742
  return require_errors.ok(faceSpec);
3739
3743
  }
3740
- /** Convert a DrawingLike or Wire to a ClosedWire & PlanarWire (profiles are always closed and planar). */
3744
+ /**
3745
+ * Convert a DrawingLike or Wire to a ClosedWire & PlanarWire (profiles are always
3746
+ * closed and planar). `owned` is true when we materialised a fresh sketch wire
3747
+ * (the caller must dispose it); false when the caller's own Wire is passed through.
3748
+ */
3741
3749
  function toWire(profile) {
3742
- if ("sketchOnPlane" in profile && typeof profile.sketchOnPlane === "function") return profile.sketchOnPlane("XY").wire;
3743
- return profile;
3750
+ if ("sketchOnPlane" in profile && typeof profile.sketchOnPlane === "function") return {
3751
+ wire: profile.sketchOnPlane("XY").wire,
3752
+ owned: true
3753
+ };
3754
+ return {
3755
+ wire: profile,
3756
+ owned: false
3757
+ };
3744
3758
  }
3745
3759
  /**
3746
3760
  * Drill a hole through a 3D shape.
@@ -3830,7 +3844,11 @@ function drill(shape, options) {
3830
3844
  pos[2] + dir[2] * tMin
3831
3845
  ], dir);
3832
3846
  }
3833
- return require_solidBuilders.cut(s, tool, { unsafe: true });
3847
+ try {
3848
+ return require_solidBuilders.cut(s, tool, { unsafe: true });
3849
+ } finally {
3850
+ tool[Symbol.dispose]();
3851
+ }
3834
3852
  }
3835
3853
  /**
3836
3854
  * Cut a pocket (2D profile extruded inward) into a shape.
@@ -3839,19 +3857,31 @@ function drill(shape, options) {
3839
3857
  * inward by the specified depth, then subtracted from the shape.
3840
3858
  */
3841
3859
  function pocket(shape, options) {
3842
- const s = resolve(shape);
3843
- const { profile, depth } = options;
3844
- if (depth <= 0) return require_errors.err(require_errors.validationError("POCKET_INVALID_DEPTH", "Pocket depth must be positive"));
3845
- const targetResult = resolveTargetFace(s, options.face);
3846
- if (require_errors.isErr(targetResult)) return targetResult;
3847
- const targetFace = targetResult.value;
3848
- const normal = require_faceFns.normalAt(targetFace);
3849
- const center = require_faceFns.faceCenter(targetFace);
3850
- const faceResult = require_surfaceBuilders.makeFace(toWire(profile));
3851
- if (require_errors.isErr(faceResult)) return faceResult;
3852
- const toolResult = require_loftFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
3853
- if (require_errors.isErr(toolResult)) return toolResult;
3854
- return require_solidBuilders.cut(s, toolResult.value, { unsafe: true });
3860
+ try {
3861
+ var _usingCtx$4 = require_shapeTypes._usingCtx();
3862
+ const s = resolve(shape);
3863
+ const { profile, depth } = options;
3864
+ if (depth <= 0) return require_errors.err(require_errors.validationError("POCKET_INVALID_DEPTH", "Pocket depth must be positive"));
3865
+ const targetResult = resolveTargetFace(s, options.face);
3866
+ if (require_errors.isErr(targetResult)) return targetResult;
3867
+ const targetFace = targetResult.value;
3868
+ const normal = require_faceFns.normalAt(targetFace);
3869
+ const center = require_faceFns.faceCenter(targetFace);
3870
+ const scope = _usingCtx$4.u(new require_shapeTypes.DisposalScope());
3871
+ const { wire: w, owned } = toWire(profile);
3872
+ if (owned) scope.register(w);
3873
+ const faceResult = require_surfaceBuilders.makeFace(w);
3874
+ if (require_errors.isErr(faceResult)) return faceResult;
3875
+ scope.register(faceResult.value);
3876
+ const toolResult = require_loftFns.extrude(scope.register(require_shapeFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
3877
+ if (require_errors.isErr(toolResult)) return toolResult;
3878
+ scope.register(toolResult.value);
3879
+ return require_solidBuilders.cut(s, toolResult.value, { unsafe: true });
3880
+ } catch (_) {
3881
+ _usingCtx$4.e = _;
3882
+ } finally {
3883
+ _usingCtx$4.d();
3884
+ }
3855
3885
  }
3856
3886
  /**
3857
3887
  * Add a boss (2D profile extruded outward) onto a shape.
@@ -3860,19 +3890,31 @@ function pocket(shape, options) {
3860
3890
  * outward by the specified height, then fused with the shape.
3861
3891
  */
3862
3892
  function boss(shape, options) {
3863
- const s = resolve(shape);
3864
- const { profile, height } = options;
3865
- if (height <= 0) return require_errors.err(require_errors.validationError("BOSS_INVALID_HEIGHT", "Boss height must be positive"));
3866
- const targetResult = resolveTargetFace(s, options.face);
3867
- if (require_errors.isErr(targetResult)) return targetResult;
3868
- const targetFace = targetResult.value;
3869
- const normal = require_faceFns.normalAt(targetFace);
3870
- const center = require_faceFns.faceCenter(targetFace);
3871
- const faceResult = require_surfaceBuilders.makeFace(toWire(profile));
3872
- if (require_errors.isErr(faceResult)) return faceResult;
3873
- const toolResult = require_loftFns.extrude(require_shapeFns.translate(faceResult.value, center), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
3874
- if (require_errors.isErr(toolResult)) return toolResult;
3875
- return require_solidBuilders.fuse(s, toolResult.value, { unsafe: true });
3893
+ try {
3894
+ var _usingCtx3 = require_shapeTypes._usingCtx();
3895
+ const s = resolve(shape);
3896
+ const { profile, height } = options;
3897
+ if (height <= 0) return require_errors.err(require_errors.validationError("BOSS_INVALID_HEIGHT", "Boss height must be positive"));
3898
+ const targetResult = resolveTargetFace(s, options.face);
3899
+ if (require_errors.isErr(targetResult)) return targetResult;
3900
+ const targetFace = targetResult.value;
3901
+ const normal = require_faceFns.normalAt(targetFace);
3902
+ const center = require_faceFns.faceCenter(targetFace);
3903
+ const scope = _usingCtx3.u(new require_shapeTypes.DisposalScope());
3904
+ const { wire: w, owned } = toWire(profile);
3905
+ if (owned) scope.register(w);
3906
+ const faceResult = require_surfaceBuilders.makeFace(w);
3907
+ if (require_errors.isErr(faceResult)) return faceResult;
3908
+ scope.register(faceResult.value);
3909
+ const toolResult = require_loftFns.extrude(scope.register(require_shapeFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
3910
+ if (require_errors.isErr(toolResult)) return toolResult;
3911
+ scope.register(toolResult.value);
3912
+ return require_solidBuilders.fuse(s, toolResult.value, { unsafe: true });
3913
+ } catch (_) {
3914
+ _usingCtx3.e = _;
3915
+ } finally {
3916
+ _usingCtx3.d();
3917
+ }
3876
3918
  }
3877
3919
  /**
3878
3920
  * Mirror a shape and fuse it with the original.
@@ -3880,15 +3922,22 @@ function boss(shape, options) {
3880
3922
  * Common pattern: model half a part, then mirror-join for symmetry.
3881
3923
  */
3882
3924
  function mirrorJoin(shape, options) {
3883
- const s = resolve(shape);
3884
- const normal = options?.normal ?? [
3885
- 1,
3886
- 0,
3887
- 0
3888
- ];
3889
- const planeOrigin = options?.at;
3890
- if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
3891
- return require_solidBuilders.fuse(s, require_shapeFns.mirror(s, normal, planeOrigin), { unsafe: true });
3925
+ try {
3926
+ var _usingCtx4 = require_shapeTypes._usingCtx();
3927
+ const s = resolve(shape);
3928
+ const normal = options?.normal ?? [
3929
+ 1,
3930
+ 0,
3931
+ 0
3932
+ ];
3933
+ const planeOrigin = options?.at;
3934
+ if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
3935
+ return require_solidBuilders.fuse(s, _usingCtx4.u(require_shapeFns.mirror(s, normal, planeOrigin)), { unsafe: true });
3936
+ } catch (_) {
3937
+ _usingCtx4.e = _;
3938
+ } finally {
3939
+ _usingCtx4.d();
3940
+ }
3892
3941
  }
3893
3942
  /**
3894
3943
  * Create a rectangular (2D grid) pattern of a shape.
@@ -4621,8 +4670,11 @@ function makeOuterCircleWire(radius) {
4621
4670
  function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4622
4671
  try {
4623
4672
  var _usingCtx3 = require_shapeTypes._usingCtx();
4673
+ const profileScope = _usingCtx3.u(new require_shapeTypes.DisposalScope());
4674
+ profileScope.register(wire);
4624
4675
  const faceResult = require_surfaceBuilders.makeFace(wire);
4625
4676
  if (require_errors.isErr(faceResult)) return faceResult;
4677
+ profileScope.register(faceResult.value);
4626
4678
  const solidResult = require_loftFns.extrude(faceResult.value, [
4627
4679
  0,
4628
4680
  0,
@@ -4631,6 +4683,7 @@ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4631
4683
  if (require_errors.isErr(solidResult)) return solidResult;
4632
4684
  if (bore <= 0) return require_errors.ok(buildGearResult(solidResult.value, geom, diagnostics));
4633
4685
  const boreScope = _usingCtx3.u(new require_shapeTypes.DisposalScope());
4686
+ boreScope.register(solidResult.value);
4634
4687
  const boreFaceResult = makeBoreFace(bore / 2);
4635
4688
  if (require_errors.isErr(boreFaceResult)) return boreFaceResult;
4636
4689
  boreScope.register(boreFaceResult.value);