brepjs 18.34.0 → 18.35.0

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 (88) hide show
  1. package/dist/2d.cjs +7 -7
  2. package/dist/2d.js +7 -7
  3. package/dist/{blueprint-Ctq3YI2J.cjs → blueprint-BB_nIqH9.cjs} +7 -7
  4. package/dist/{blueprint-Dgn4HasF.js → blueprint-DmWmhXi4.js} +7 -7
  5. package/dist/{blueprintFns-CJ8_2wwd.js → blueprintFns-B4xOCuT3.js} +3 -3
  6. package/dist/{blueprintFns-BSc5kM0e.cjs → blueprintFns-C3NplQ86.cjs} +3 -3
  7. package/dist/{blueprintSketcher-DHzyZSgL.cjs → blueprintSketcher-C1C9mJuK.cjs} +4 -4
  8. package/dist/{blueprintSketcher-DfN5LL45.js → blueprintSketcher-DaqbMIfk.js} +4 -4
  9. package/dist/{boolean2D-BDVlp701.js → boolean2D-B3DOcj6G.js} +5 -5
  10. package/dist/{boolean2D-DRlzu7K9.cjs → boolean2D-CbChdB3y.cjs} +5 -5
  11. package/dist/{booleanFns-CE3u1eIK.js → booleanFns-Byv33KMu.js} +6 -6
  12. package/dist/{booleanFns-BZEfiLXh.cjs → booleanFns-X-pT22Jh.cjs} +6 -6
  13. package/dist/brepjs.cjs +32 -26
  14. package/dist/brepjs.js +27 -27
  15. package/dist/{cameraFns-D8o9TUpN.cjs → cameraFns-B9duZ94U.cjs} +3 -3
  16. package/dist/{cameraFns-CFnPg5-H.js → cameraFns-DkUpqMdm.js} +3 -3
  17. package/dist/core/errors.d.ts +2 -0
  18. package/dist/core.cjs +3 -3
  19. package/dist/core.js +3 -3
  20. package/dist/{cornerFinder-B1DivYhK.js → cornerFinder-4ieWbVIN.js} +1 -1
  21. package/dist/{cornerFinder-B3DEv78h.cjs → cornerFinder-BEHY1k0Q.cjs} +1 -1
  22. package/dist/{curveFns-ZXCrxKal.cjs → curveFns-ChkLRL8a.cjs} +2 -2
  23. package/dist/{curveFns-CwBnLSGs.js → curveFns-DHAvRosC.js} +2 -2
  24. package/dist/{drawFns-DmDtAGJ3.js → drawFns-D2u7C_7g.js} +14 -14
  25. package/dist/{drawFns-B3xmKGqo.cjs → drawFns-DzgqLm1w.cjs} +14 -14
  26. package/dist/{errors-DxoD7zgx.cjs → errors-D9tBO0km.cjs} +2 -0
  27. package/dist/{errors-BJSTLaDI.js → errors-DOPT3OTg.js} +2 -0
  28. package/dist/{extrudeFns-B2Jh4xdE.js → extrudeFns-WH0yd_Fb.js} +2 -2
  29. package/dist/{extrudeFns-BCHwL5Rz.cjs → extrudeFns-WYDSlEW8.cjs} +2 -2
  30. package/dist/{faceFns-dIScXlyz.cjs → faceFns-DNOsmyRn.cjs} +3 -3
  31. package/dist/{faceFns-43zWb-uD.js → faceFns-Druzi4mz.js} +3 -3
  32. package/dist/{helpers-WD_MY4EK.cjs → helpers-BxCilYLb.cjs} +7 -7
  33. package/dist/{helpers-BcvfYBlZ.js → helpers-DXRsnEpy.js} +7 -7
  34. package/dist/{historyFns-D0-tL5u2.cjs → historyFns-C9J3s9xB.cjs} +5 -5
  35. package/dist/{historyFns-CesKJg-g.js → historyFns-DqY8zLUq.js} +5 -5
  36. package/dist/{importFns-CfXF57GK.cjs → importFns-CAR9g6W8.cjs} +3 -3
  37. package/dist/{importFns-nh6XUS6V.js → importFns-D8NOuxmA.js} +3 -3
  38. package/dist/index.d.ts +1 -1
  39. package/dist/io.cjs +2 -2
  40. package/dist/io.js +2 -2
  41. package/dist/{measureFns-BlNPRAt1.cjs → measureFns-CSbBsOLY.cjs} +4 -4
  42. package/dist/{measureFns-CZPHU8Fq.js → measureFns-Dg3pLNRE.js} +4 -4
  43. package/dist/measurement.cjs +1 -1
  44. package/dist/measurement.js +1 -1
  45. package/dist/{meshFns-44MzVWmw.js → meshFns-CkzlLwZw.js} +18 -7
  46. package/dist/{meshFns-thnWU79u.cjs → meshFns-yusYccFx.cjs} +18 -7
  47. package/dist/operations.cjs +2 -2
  48. package/dist/operations.js +2 -2
  49. package/dist/{planeOps-C6wxugvC.cjs → planeOps-DTY92UCh.cjs} +1 -1
  50. package/dist/{planeOps-CblVcWbn.js → planeOps-YTeuXs80.js} +1 -1
  51. package/dist/{primitiveFns-7-BpVEfR.js → primitiveFns-CbpHBZdf.js} +8 -8
  52. package/dist/{primitiveFns-wcHq2Dpc.cjs → primitiveFns-DzGTYy_l.cjs} +8 -8
  53. package/dist/projection.cjs +1 -1
  54. package/dist/projection.js +1 -1
  55. package/dist/query.cjs +2 -2
  56. package/dist/query.js +2 -2
  57. package/dist/result.cjs +1 -1
  58. package/dist/result.js +1 -1
  59. package/dist/{shapeFns-tYJBM_yH.js → shapeFns-BYKFvtTb.js} +3 -3
  60. package/dist/{shapeFns-DpurOSYX.cjs → shapeFns-CSlSyyi1.cjs} +3 -3
  61. package/dist/shapeRef.cjs +1 -1
  62. package/dist/shapeRef.js +1 -1
  63. package/dist/{shapeRefFns-DNlnIVGa.cjs → shapeRefFns-B4xO4AI1.cjs} +4 -4
  64. package/dist/{shapeRefFns-DhkB2xrl.js → shapeRefFns-UIsEV1jg.js} +4 -4
  65. package/dist/{shapeTypes-DgIDUXrS.js → shapeTypes-D946X6Qx.js} +1 -1
  66. package/dist/{shapeTypes-C16Am1Cu.cjs → shapeTypes-DRIhPf8A.cjs} +1 -1
  67. package/dist/sketching.cjs +3 -3
  68. package/dist/sketching.js +3 -3
  69. package/dist/{solidBuilders-oYCo3H_H.js → solidBuilders-2xiE6FDe.js} +3 -3
  70. package/dist/{solidBuilders-BRd294hA.cjs → solidBuilders-8PLYgzL9.cjs} +3 -3
  71. package/dist/{surfaceBuilders-BuNn7mbE.js → surfaceBuilders-CUFC3tNT.js} +3 -3
  72. package/dist/{surfaceBuilders-C-MXZeRY.cjs → surfaceBuilders-CZ7u_Xmi.cjs} +3 -3
  73. package/dist/text.cjs +2 -2
  74. package/dist/text.js +2 -2
  75. package/dist/{textBlueprints-ihVTYQz7.cjs → textBlueprints-CZ4MphXu.cjs} +9 -9
  76. package/dist/{textBlueprints-4DfEJMBH.js → textBlueprints-Dv4YWJrA.js} +9 -9
  77. package/dist/{textMetrics-KvDcXO5Z.cjs → textMetrics-BpmNTwLm.cjs} +2 -2
  78. package/dist/{textMetrics-CgtxG_bI.js → textMetrics-Dvh4HzSZ.js} +2 -2
  79. package/dist/topology/meshFns.d.ts +0 -5
  80. package/dist/topology/shapeFns.d.ts +1 -1
  81. package/dist/topology/topologyQueryFns.d.ts +22 -1
  82. package/dist/topology.cjs +7 -7
  83. package/dist/topology.js +7 -7
  84. package/dist/{topologyQueryFns-DNs19Af_.js → topologyQueryFns-D5YTf9GW.js} +45 -3
  85. package/dist/{topologyQueryFns-DTvwHQnu.cjs → topologyQueryFns-esX6R5j4.cjs} +80 -2
  86. package/dist/vectors.cjs +1 -1
  87. package/dist/vectors.js +1 -1
  88. package/package.json +4 -1
@@ -1,8 +1,8 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns-DTvwHQnu.cjs");
3
- const require_faceFns = require("./faceFns-dIScXlyz.cjs");
4
- const require_shapeFns = require("./shapeFns-DpurOSYX.cjs");
5
- const require_measureFns = require("./measureFns-BlNPRAt1.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-esX6R5j4.cjs");
3
+ const require_faceFns = require("./faceFns-DNOsmyRn.cjs");
4
+ const require_shapeFns = require("./shapeFns-CSlSyyi1.cjs");
5
+ const require_measureFns = require("./measureFns-CSbBsOLY.cjs");
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,8 +1,8 @@
1
1
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
- import { s as getFaces } from "./topologyQueryFns-DNs19Af_.js";
3
- import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-43zWb-uD.js";
4
- import { n as getHashCode } from "./shapeFns-tYJBM_yH.js";
5
- import { n as measureArea } from "./measureFns-CZPHU8Fq.js";
2
+ import { c as getFaces } from "./topologyQueryFns-D5YTf9GW.js";
3
+ import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-Druzi4mz.js";
4
+ import { n as getHashCode } from "./shapeFns-BYKFvtTb.js";
5
+ import { n as measureArea } from "./measureFns-Dg3pLNRE.js";
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,6 +1,6 @@
1
1
  import { n as wasmIndex, t as vec3At } from "./vec3-Dpha8d5k.js";
2
2
  import { _ as serializeCurve2d$2, a as curveTypeName, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-COKB8ItA.js";
3
- import { A as ok, b as err } from "./errors-BJSTLaDI.js";
3
+ import { A as ok, b as err } from "./errors-DOPT3OTg.js";
4
4
  //#region src/kernel/kernel2dTypes.ts
5
5
  /** Check if the kernel supports 2D geometry operations. */
6
6
  function supportsKernel2D(kernel) {
@@ -1,6 +1,6 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
2
  const require_occtWasmAdapter = require("./occtWasmAdapter-CdyaMnBW.cjs");
3
- const require_errors = require("./errors-DxoD7zgx.cjs");
3
+ const require_errors = require("./errors-D9tBO0km.cjs");
4
4
  //#region src/kernel/kernel2dTypes.ts
5
5
  /** Check if the kernel supports 2D geometry operations. */
6
6
  function supportsKernel2D(kernel) {
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-ihVTYQz7.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-DHzyZSgL.cjs");
4
- const require_drawFns = require("./drawFns-B3xmKGqo.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-CZ4MphXu.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-C1C9mJuK.cjs");
4
+ const require_drawFns = require("./drawFns-DzgqLm1w.cjs");
5
5
  //#region src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-DfN5LL45.js";
2
- import { A as sketchEllipse, C as DrawingPen, 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, T as Drawing, _ 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-DmDtAGJ3.js";
3
- 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, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-4DfEJMBH.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-DaqbMIfk.js";
2
+ import { A as sketchEllipse, C as DrawingPen, 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, T as Drawing, _ 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-D2u7C_7g.js";
3
+ 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, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-Dv4YWJrA.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-DgIDUXrS.js";
2
- import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-BJSTLaDI.js";
3
- import { _ as downcast, g as cast } from "./faceFns-43zWb-uD.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-D946X6Qx.js";
2
+ import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-DOPT3OTg.js";
3
+ import { _ as downcast, g as cast } from "./faceFns-Druzi4mz.js";
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
- const require_errors = require("./errors-DxoD7zgx.cjs");
3
- const require_faceFns = require("./faceFns-dIScXlyz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DRIhPf8A.cjs");
2
+ const require_errors = require("./errors-D9tBO0km.cjs");
3
+ const require_faceFns = require("./faceFns-DNOsmyRn.cjs");
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-DgIDUXrS.js";
2
- import { A as ok, b as err, d as validationError, i as kernelError, v as andThen } from "./errors-BJSTLaDI.js";
3
- import { g as cast, l as outerWire } from "./faceFns-43zWb-uD.js";
1
+ import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-D946X6Qx.js";
2
+ import { A as ok, b as err, d as validationError, i as kernelError, v as andThen } from "./errors-DOPT3OTg.js";
3
+ import { g as cast, l as outerWire } from "./faceFns-Druzi4mz.js";
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
- const require_errors = require("./errors-DxoD7zgx.cjs");
3
- const require_faceFns = require("./faceFns-dIScXlyz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DRIhPf8A.cjs");
2
+ const require_errors = require("./errors-D9tBO0km.cjs");
3
+ const require_faceFns = require("./faceFns-DNOsmyRn.cjs");
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
package/dist/text.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-ihVTYQz7.cjs");
3
- const require_textMetrics = require("./textMetrics-KvDcXO5Z.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-CZ4MphXu.cjs");
3
+ const require_textMetrics = require("./textMetrics-BpmNTwLm.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-4DfEJMBH.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-CgtxG_bI.js";
1
+ import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-Dv4YWJrA.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-Dvh4HzSZ.js";
3
3
  export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
@@ -29,18 +29,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  enumerable: true
30
30
  }) : target, mod));
31
31
  //#endregion
32
- const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
33
- const require_errors = require("./errors-DxoD7zgx.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-DRIhPf8A.cjs");
33
+ const require_errors = require("./errors-D9tBO0km.cjs");
34
34
  const require_types = require("./types-KjA8tY4Y.cjs");
35
35
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
36
- const require_planeOps = require("./planeOps-C6wxugvC.cjs");
37
- const require_faceFns = require("./faceFns-dIScXlyz.cjs");
38
- const require_curveFns = require("./curveFns-ZXCrxKal.cjs");
36
+ const require_planeOps = require("./planeOps-DTY92UCh.cjs");
37
+ const require_faceFns = require("./faceFns-DNOsmyRn.cjs");
38
+ const require_curveFns = require("./curveFns-ChkLRL8a.cjs");
39
39
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
40
- const require_surfaceBuilders = require("./surfaceBuilders-C-MXZeRY.cjs");
41
- const require_blueprintSketcher = require("./blueprintSketcher-DHzyZSgL.cjs");
42
- const require_solidBuilders = require("./solidBuilders-BRd294hA.cjs");
43
- const require_extrudeFns = require("./extrudeFns-BCHwL5Rz.cjs");
40
+ const require_surfaceBuilders = require("./surfaceBuilders-CZ7u_Xmi.cjs");
41
+ const require_blueprintSketcher = require("./blueprintSketcher-C1C9mJuK.cjs");
42
+ const require_solidBuilders = require("./solidBuilders-8PLYgzL9.cjs");
43
+ const require_extrudeFns = require("./extrudeFns-WYDSlEW8.cjs");
44
44
  let opentype_js = require("opentype.js");
45
45
  opentype_js = __toESM(opentype_js, 1);
46
46
  //#region src/operations/loftFns.ts
@@ -1,15 +1,15 @@
1
- import { Z as getKernel, h as isShape3D, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-DgIDUXrS.js";
2
- import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, i as kernelError, l as typeCastError, r as ioError, t as BrepErrorCode } from "./errors-BJSTLaDI.js";
1
+ import { Z as getKernel, h as isShape3D, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-D946X6Qx.js";
2
+ import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, i as kernelError, l as typeCastError, r as ioError, t as BrepErrorCode } from "./errors-DOPT3OTg.js";
3
3
  import { r as toVec3 } from "./types-D24Y27N0.js";
4
4
  import { d as vecNormalize, h as vecScale, r as vecCross } from "./vecOps-SKPRvPH-.js";
5
- import { n as createPlane } from "./planeOps-CblVcWbn.js";
6
- import { _ as downcast, g as cast } from "./faceFns-43zWb-uD.js";
7
- import { c as curveStartPoint, l as curveTangentAt } from "./curveFns-CwBnLSGs.js";
5
+ import { n as createPlane } from "./planeOps-YTeuXs80.js";
6
+ import { _ as downcast, g as cast } from "./faceFns-Druzi4mz.js";
7
+ import { c as curveStartPoint, l as curveTangentAt } from "./curveFns-DHAvRosC.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
9
- import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-BuNn7mbE.js";
10
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-DfN5LL45.js";
11
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-oYCo3H_H.js";
12
- import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-B2Jh4xdE.js";
9
+ import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-CUFC3tNT.js";
10
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-DaqbMIfk.js";
11
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-2xiE6FDe.js";
12
+ import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-WH0yd_Fb.js";
13
13
  import opentype from "opentype.js";
14
14
  //#region src/operations/loftFns.ts
15
15
  /**
@@ -1,5 +1,5 @@
1
- const require_textBlueprints = require("./textBlueprints-ihVTYQz7.cjs");
2
- const require_errors = require("./errors-DxoD7zgx.cjs");
1
+ const require_textBlueprints = require("./textBlueprints-CZ4MphXu.cjs");
2
+ const require_errors = require("./errors-D9tBO0km.cjs");
3
3
  //#region src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
@@ -1,5 +1,5 @@
1
- import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-BJSTLaDI.js";
2
- import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-4DfEJMBH.js";
1
+ import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DOPT3OTg.js";
2
+ import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-Dv4YWJrA.js";
3
3
  //#region src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
@@ -63,11 +63,6 @@ export declare function mesh(shape: AnyShape<Dimension>, { tolerance, angularTol
63
63
  export declare function meshEdges(shape: AnyShape<Dimension>, { tolerance, angularTolerance, cache }?: MeshOptions & {
64
64
  cache?: boolean;
65
65
  }): EdgeMesh;
66
- /**
67
- * Export a shape as a STEP file Blob.
68
- *
69
- * @returns Ok with a Blob (MIME type `application/STEP`), or Err on failure.
70
- */
71
66
  export declare function exportSTEP(shape: AnyShape<Dimension>): Result<Blob>;
72
67
  /**
73
68
  * Export a shape as an STL file Blob.
@@ -16,6 +16,6 @@ export declare function isEqualShape(a: AnyShape<Dimension>, b: AnyShape<Dimensi
16
16
  export declare function simplify<T extends AnyShape<Dimension>>(shape: T): Result<T>;
17
17
  export { translate, rotate, mirror, scale, resize, applyMatrix, composeTransforms, transformCopy, } from './transformFns.js';
18
18
  export type { TransformOp, ComposedTransform } from './transformFns.js';
19
- export { getEdges, getFaces, getWires, getVertices, iterEdges, iterFaces, iterWires, iterVertices, getBounds, getCachedShapeKind, describe, vertexPosition, invalidateShapeCache, } from './topologyQueryFns.js';
19
+ export { getEdges, getFaces, getWires, getVertices, getSolids, getShells, getCompSolids, iterEdges, iterFaces, iterWires, iterVertices, iterSolids, iterShells, iterCompSolids, getBounds, getCachedShapeKind, describe, vertexPosition, invalidateShapeCache, } from './topologyQueryFns.js';
20
20
  export type { Bounds3D, ShapeDescription } from './topologyQueryFns.js';
21
21
  export { setShapeOrigin, getFaceOrigins, propagateOriginsFromEvolution, propagateOriginsByHash, } from './metadata/originTrackingFns.js';
@@ -1,5 +1,5 @@
1
1
  import { KernelShape, SurfaceType } from '../kernel/types.js';
2
- import { AnyShape, Dimension, Edge, Face, Wire, Vertex, ShapeKind } from '../core/shapeTypes.js';
2
+ import { AnyShape, Dimension, Edge, Face, Wire, Vertex, Shell, Solid, CompSolid, ShapeKind } from '../core/shapeTypes.js';
3
3
  import { Vec3 } from '../core/types.js';
4
4
  /** @internal Cache entry type — exported for originTrackingFns and adjacencyFns. */
5
5
  export interface TopoCacheEntry {
@@ -7,6 +7,9 @@ export interface TopoCacheEntry {
7
7
  faces?: Face<Dimension>[];
8
8
  wires?: Wire<Dimension>[];
9
9
  vertices?: Vertex<Dimension>[];
10
+ shells?: Shell[];
11
+ solids?: Solid[];
12
+ compSolids?: CompSolid[];
10
13
  faceOrigins?: Map<number, number>;
11
14
  bounds?: Bounds3D;
12
15
  isValid?: boolean;
@@ -40,6 +43,18 @@ export declare function getFaces<D extends Dimension>(shape: AnyShape<D>): Face<
40
43
  export declare function getWires<D extends Dimension>(shape: AnyShape<D>): Wire<D>[];
41
44
  /** Get all vertices of a shape as branded Vertex handles. Results are cached per shape. */
42
45
  export declare function getVertices<D extends Dimension>(shape: AnyShape<D>): Vertex<D>[];
46
+ /**
47
+ * Get all solids of a shape as branded Solid handles. Results are cached per shape.
48
+ *
49
+ * Booleans (`cut`/`fuse`/`fuseAll`), `chamfer`/`fillet`, and some sweeps return a
50
+ * `Compound` wrapping the solid(s); use this to unwrap them without reaching into
51
+ * the kernel. Returns `[]` for shapes with no solids (wires, bare faces, shells).
52
+ */
53
+ export declare function getSolids(shape: AnyShape<Dimension>): Solid[];
54
+ /** Get all shells of a shape as branded Shell handles. Results are cached per shape. */
55
+ export declare function getShells(shape: AnyShape<Dimension>): Shell[];
56
+ /** Get all compsolids of a shape as branded CompSolid handles. Results are cached per shape. */
57
+ export declare function getCompSolids(shape: AnyShape<Dimension>): CompSolid[];
43
58
  /** Lazily iterate edges of a shape, yielding branded Edge handles one at a time. */
44
59
  export declare function iterEdges<D extends Dimension>(shape: AnyShape<D>): Generator<Edge<D>>;
45
60
  /** Lazily iterate faces of a shape, yielding branded Face handles one at a time. */
@@ -48,6 +63,12 @@ export declare function iterFaces<D extends Dimension>(shape: AnyShape<D>): Gene
48
63
  export declare function iterWires<D extends Dimension>(shape: AnyShape<D>): Generator<Wire<D>>;
49
64
  /** Lazily iterate vertices of a shape, yielding branded Vertex handles one at a time. */
50
65
  export declare function iterVertices<D extends Dimension>(shape: AnyShape<D>): Generator<Vertex<D>>;
66
+ /** Lazily iterate solids of a shape, yielding branded Solid handles one at a time. */
67
+ export declare function iterSolids(shape: AnyShape<Dimension>): Generator<Solid>;
68
+ /** Lazily iterate shells of a shape, yielding branded Shell handles one at a time. */
69
+ export declare function iterShells(shape: AnyShape<Dimension>): Generator<Shell>;
70
+ /** Lazily iterate compsolids of a shape, yielding branded CompSolid handles one at a time. */
71
+ export declare function iterCompSolids(shape: AnyShape<Dimension>): Generator<CompSolid>;
51
72
  /** Bounding box as a plain object. */
52
73
  export interface Bounds3D {
53
74
  readonly xMin: number;
package/dist/topology.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_topologyQueryFns = require("./topologyQueryFns-DTvwHQnu.cjs");
3
- const require_faceFns = require("./faceFns-dIScXlyz.cjs");
4
- const require_shapeFns = require("./shapeFns-DpurOSYX.cjs");
5
- const require_curveFns = require("./curveFns-ZXCrxKal.cjs");
6
- const require_meshFns = require("./meshFns-thnWU79u.cjs");
7
- const require_booleanFns = require("./booleanFns-BZEfiLXh.cjs");
8
- const require_primitiveFns = require("./primitiveFns-wcHq2Dpc.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-esX6R5j4.cjs");
3
+ const require_faceFns = require("./faceFns-DNOsmyRn.cjs");
4
+ const require_shapeFns = require("./shapeFns-CSlSyyi1.cjs");
5
+ const require_curveFns = require("./curveFns-ChkLRL8a.cjs");
6
+ const require_meshFns = require("./meshFns-yusYccFx.cjs");
7
+ const require_booleanFns = require("./booleanFns-X-pT22Jh.cjs");
8
+ const require_primitiveFns = require("./primitiveFns-DzGTYy_l.cjs");
9
9
  exports.addHoles = require_primitiveFns.addHoles;
10
10
  exports.adjacentFaces = require_primitiveFns.adjacentFaces;
11
11
  exports.approximateCurve = require_curveFns.approximateCurve;
package/dist/topology.js CHANGED
@@ -1,8 +1,8 @@
1
- import { d as invalidateShapeCache, f as iterEdges, g as vertexPosition, h as iterWires, l as getVertices, m as iterVertices, n as getBounds, o as getEdges, p as iterFaces, s as getFaces, u as getWires } from "./topologyQueryFns-DNs19Af_.js";
2
- import { _ as downcast, a as flipFaceOrientation, b as iterTopo, c as normalAt, d as projectPointOnFace, g as cast, h as asTopo, i as faceOrientation, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, v as fromBREP, x as shapeType, y as isCompSolid } from "./faceFns-43zWb-uD.js";
3
- import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-tYJBM_yH.js";
4
- import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-CwBnLSGs.js";
5
- import { c as createMeshCache, n as exportSTEP, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-44MzVWmw.js";
6
- import { a as fuseAll, r as cutAll } from "./booleanFns-CE3u1eIK.js";
7
- import { $ as fuseAllBisect, A as fixShape, C as threePointArc, D as wireLoop, E as wire, G as chamferWithEvolution, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as cutAllBisect, S as tangentArc, T as vertex, U as variableFillet, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as sharedEdges, b as sphere, c as cylinder, ct as chamferDistAngle, d as ellipsoid, et as getNurbsCurveData, f as face, ft as toLineGeometryData, g as offsetFace, h as line, i as bsplineApprox, it as facesOfEdge, k as fixSelfIntersection, l as ellipse, lt as toBufferGeometryData, m as helix, n as bezier, nt as adjacentFaces, o as compound, ot as verticesOfEdge, p as filledFace, q as filletWithEvolution, r as box, rt as edgesOfFace, s as cone, st as wiresOfFace, t as addHoles, tt as getNurbsSurfaceData, u as ellipseArc, ut as toGroupedBufferGeometryData, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-7-BpVEfR.js";
1
+ import { S as vertexPosition, _ as iterFaces, b as iterVertices, c as getFaces, f as getVertices, g as iterEdges, m as invalidateShapeCache, n as getBounds, p as getWires, s as getEdges, x as iterWires } from "./topologyQueryFns-D5YTf9GW.js";
2
+ import { _ as downcast, a as flipFaceOrientation, b as iterTopo, c as normalAt, d as projectPointOnFace, g as cast, h as asTopo, i as faceOrientation, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, v as fromBREP, x as shapeType, y as isCompSolid } from "./faceFns-Druzi4mz.js";
3
+ import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-BYKFvtTb.js";
4
+ import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-DHAvRosC.js";
5
+ import { c as createMeshCache, n as exportSTEP, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-CkzlLwZw.js";
6
+ import { a as fuseAll, r as cutAll } from "./booleanFns-Byv33KMu.js";
7
+ import { $ as fuseAllBisect, A as fixShape, C as threePointArc, D as wireLoop, E as wire, G as chamferWithEvolution, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as cutAllBisect, S as tangentArc, T as vertex, U as variableFillet, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as sharedEdges, b as sphere, c as cylinder, ct as chamferDistAngle, d as ellipsoid, et as getNurbsCurveData, f as face, ft as toLineGeometryData, g as offsetFace, h as line, i as bsplineApprox, it as facesOfEdge, k as fixSelfIntersection, l as ellipse, lt as toBufferGeometryData, m as helix, n as bezier, nt as adjacentFaces, o as compound, ot as verticesOfEdge, p as filledFace, q as filletWithEvolution, r as box, rt as edgesOfFace, s as cone, st as wiresOfFace, t as addHoles, tt as getNurbsSurfaceData, u as ellipseArc, ut as toGroupedBufferGeometryData, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-CbpHBZdf.js";
8
8
  export { addHoles, adjacentFaces, approximateCurve, asTopo, autoHeal, bezier, box, bsplineApprox, cast, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkBoolean, circle, classifyPointOnFace, clearMeshCache, compound, cone, createMeshCache, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cutAll, cutAllBisect, cutWithEvolution, cylinder, fromBREP as deserializeShape, downcast, edgesOfFace, ellipse, ellipseArc, ellipsoid, exportIGES, exportSTEP, exportSTL, face, faceCenter, faceGeomType, faceOrientation, facesOfEdge, filledFace, filletWithEvolution, fixSelfIntersection, fixShape, flipFaceOrientation, flipOrientation, fuseAll, fuseAllBisect, fuseWithEvolution, getBounds, getCurveType, getEdges, getFaces, getHashCode, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getSurfaceType, getVertices, getWires, healFace, healSolid, healWire, helix, innerWires, interpolateCurve, intersectWithEvolution, invalidateShapeCache, isCompSolid, isEqualShape, isSameShape, iterEdges, iterFaces, iterTopo, iterVertices, iterWires, line, normalAt, offsetFace, offsetWire2D, outerWire, pointOnSurface, polygon, positionOnCurve, projectPointOnFace, sewShells, shapeType, sharedEdges, shellWithEvolution, solid, solidFromShell, sphere, subFace, tangentArc, threePointArc, toBufferGeometryData, toGroupedBufferGeometryData, toLineGeometryData, torus, uvBounds, uvCoordinates, variableFillet, vertex, vertexPosition, verticesOfEdge, wire, wireLoop, wiresOfFace };
@@ -1,5 +1,5 @@
1
- import { N as getOrQueryType, R as DisposalScope, Y as _usingCtx, Z as getKernel, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-DgIDUXrS.js";
2
- import { A as ok, b as err, f as getSuggestionForCode, p as translateKernelError } from "./errors-BJSTLaDI.js";
1
+ import { N as getOrQueryType, R as DisposalScope, Y as _usingCtx, Z as getKernel, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-D946X6Qx.js";
2
+ import { A as ok, b as err, f as getSuggestionForCode, p as translateKernelError } from "./errors-DOPT3OTg.js";
3
3
  //#region src/core/kernelCall.ts
4
4
  function buildError(kind, code, message, cause, suggestion) {
5
5
  const base = {
@@ -164,6 +164,36 @@ function getVertices(shape) {
164
164
  cache.vertices = vertices;
165
165
  return vertices;
166
166
  }
167
+ /**
168
+ * Get all solids of a shape as branded Solid handles. Results are cached per shape.
169
+ *
170
+ * Booleans (`cut`/`fuse`/`fuseAll`), `chamfer`/`fillet`, and some sweeps return a
171
+ * `Compound` wrapping the solid(s); use this to unwrap them without reaching into
172
+ * the kernel. Returns `[]` for shapes with no solids (wires, bare faces, shells).
173
+ */
174
+ function getSolids(shape) {
175
+ const cache = getOrCreateCache(shape);
176
+ if (cache.solids) return cache.solids;
177
+ const solids = castSubShapes(shape.wrapped, "solid");
178
+ cache.solids = solids;
179
+ return solids;
180
+ }
181
+ /** Get all shells of a shape as branded Shell handles. Results are cached per shape. */
182
+ function getShells(shape) {
183
+ const cache = getOrCreateCache(shape);
184
+ if (cache.shells) return cache.shells;
185
+ const shells = castSubShapes(shape.wrapped, "shell");
186
+ cache.shells = shells;
187
+ return shells;
188
+ }
189
+ /** Get all compsolids of a shape as branded CompSolid handles. Results are cached per shape. */
190
+ function getCompSolids(shape) {
191
+ const cache = getOrCreateCache(shape);
192
+ if (cache.compSolids) return cache.compSolids;
193
+ const compSolids = castSubShapes(shape.wrapped, "compsolid");
194
+ cache.compSolids = compSolids;
195
+ return compSolids;
196
+ }
167
197
  /** Lazily iterate edges of a shape, yielding branded Edge handles one at a time. */
168
198
  function* iterEdges(shape) {
169
199
  for (const e of getKernel().iterShapes(shape.wrapped, "edge")) yield castShapeWithKnownType(e, "edge");
@@ -180,6 +210,18 @@ function* iterWires(shape) {
180
210
  function* iterVertices(shape) {
181
211
  for (const v of getKernel().iterShapes(shape.wrapped, "vertex")) yield castShapeWithKnownType(v, "vertex");
182
212
  }
213
+ /** Lazily iterate solids of a shape, yielding branded Solid handles one at a time. */
214
+ function* iterSolids(shape) {
215
+ for (const s of getKernel().iterShapes(shape.wrapped, "solid")) yield castShapeWithKnownType(s, "solid");
216
+ }
217
+ /** Lazily iterate shells of a shape, yielding branded Shell handles one at a time. */
218
+ function* iterShells(shape) {
219
+ for (const s of getKernel().iterShapes(shape.wrapped, "shell")) yield castShapeWithKnownType(s, "shell");
220
+ }
221
+ /** Lazily iterate compsolids of a shape, yielding branded CompSolid handles one at a time. */
222
+ function* iterCompSolids(shape) {
223
+ for (const s of getKernel().iterShapes(shape.wrapped, "compsolid")) yield castShapeWithKnownType(s, "compsolid");
224
+ }
183
225
  /** Get the axis-aligned bounding box of a shape. Cached per shape. */
184
226
  function getBounds(shape) {
185
227
  const cache = getOrCreateCache(shape);
@@ -233,4 +275,4 @@ function vertexPosition(vertex) {
233
275
  return getKernel().vertexPosition(vertex.wrapped);
234
276
  }
235
277
  //#endregion
236
- export { kernelCall as _, getCachedSurfaceType as a, getOrCreateCache as c, invalidateShapeCache as d, iterEdges as f, vertexPosition as g, iterWires as h, getCachedIsValid as i, getVertices as l, iterVertices as m, getBounds as n, getEdges as o, iterFaces as p, getCacheEntry as r, getFaces as s, describe as t, getWires as u, kernelCallRaw as v, kernelCallScoped as y };
278
+ export { kernelCall as C, vertexPosition as S, kernelCallScoped as T, iterFaces as _, getCachedSurfaceType as a, iterVertices as b, getFaces as c, getSolids as d, getVertices as f, iterEdges as g, iterCompSolids as h, getCachedIsValid as i, getOrCreateCache as l, invalidateShapeCache as m, getBounds as n, getCompSolids as o, getWires as p, getCacheEntry as r, getEdges as s, describe as t, getShells as u, iterShells as v, kernelCallRaw as w, iterWires as x, iterSolids as y };
@@ -1,5 +1,5 @@
1
- const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
- const require_errors = require("./errors-DxoD7zgx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DRIhPf8A.cjs");
2
+ const require_errors = require("./errors-D9tBO0km.cjs");
3
3
  //#region src/core/kernelCall.ts
4
4
  function buildError(kind, code, message, cause, suggestion) {
5
5
  const base = {
@@ -164,6 +164,36 @@ function getVertices(shape) {
164
164
  cache.vertices = vertices;
165
165
  return vertices;
166
166
  }
167
+ /**
168
+ * Get all solids of a shape as branded Solid handles. Results are cached per shape.
169
+ *
170
+ * Booleans (`cut`/`fuse`/`fuseAll`), `chamfer`/`fillet`, and some sweeps return a
171
+ * `Compound` wrapping the solid(s); use this to unwrap them without reaching into
172
+ * the kernel. Returns `[]` for shapes with no solids (wires, bare faces, shells).
173
+ */
174
+ function getSolids(shape) {
175
+ const cache = getOrCreateCache(shape);
176
+ if (cache.solids) return cache.solids;
177
+ const solids = castSubShapes(shape.wrapped, "solid");
178
+ cache.solids = solids;
179
+ return solids;
180
+ }
181
+ /** Get all shells of a shape as branded Shell handles. Results are cached per shape. */
182
+ function getShells(shape) {
183
+ const cache = getOrCreateCache(shape);
184
+ if (cache.shells) return cache.shells;
185
+ const shells = castSubShapes(shape.wrapped, "shell");
186
+ cache.shells = shells;
187
+ return shells;
188
+ }
189
+ /** Get all compsolids of a shape as branded CompSolid handles. Results are cached per shape. */
190
+ function getCompSolids(shape) {
191
+ const cache = getOrCreateCache(shape);
192
+ if (cache.compSolids) return cache.compSolids;
193
+ const compSolids = castSubShapes(shape.wrapped, "compsolid");
194
+ cache.compSolids = compSolids;
195
+ return compSolids;
196
+ }
167
197
  /** Lazily iterate edges of a shape, yielding branded Edge handles one at a time. */
168
198
  function* iterEdges(shape) {
169
199
  for (const e of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "edge")) yield require_shapeTypes.castShapeWithKnownType(e, "edge");
@@ -180,6 +210,18 @@ function* iterWires(shape) {
180
210
  function* iterVertices(shape) {
181
211
  for (const v of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "vertex")) yield require_shapeTypes.castShapeWithKnownType(v, "vertex");
182
212
  }
213
+ /** Lazily iterate solids of a shape, yielding branded Solid handles one at a time. */
214
+ function* iterSolids(shape) {
215
+ for (const s of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "solid")) yield require_shapeTypes.castShapeWithKnownType(s, "solid");
216
+ }
217
+ /** Lazily iterate shells of a shape, yielding branded Shell handles one at a time. */
218
+ function* iterShells(shape) {
219
+ for (const s of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "shell")) yield require_shapeTypes.castShapeWithKnownType(s, "shell");
220
+ }
221
+ /** Lazily iterate compsolids of a shape, yielding branded CompSolid handles one at a time. */
222
+ function* iterCompSolids(shape) {
223
+ for (const s of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "compsolid")) yield require_shapeTypes.castShapeWithKnownType(s, "compsolid");
224
+ }
183
225
  /** Get the axis-aligned bounding box of a shape. Cached per shape. */
184
226
  function getBounds(shape) {
185
227
  const cache = getOrCreateCache(shape);
@@ -263,6 +305,12 @@ Object.defineProperty(exports, "getCachedSurfaceType", {
263
305
  return getCachedSurfaceType;
264
306
  }
265
307
  });
308
+ Object.defineProperty(exports, "getCompSolids", {
309
+ enumerable: true,
310
+ get: function() {
311
+ return getCompSolids;
312
+ }
313
+ });
266
314
  Object.defineProperty(exports, "getEdges", {
267
315
  enumerable: true,
268
316
  get: function() {
@@ -281,6 +329,18 @@ Object.defineProperty(exports, "getOrCreateCache", {
281
329
  return getOrCreateCache;
282
330
  }
283
331
  });
332
+ Object.defineProperty(exports, "getShells", {
333
+ enumerable: true,
334
+ get: function() {
335
+ return getShells;
336
+ }
337
+ });
338
+ Object.defineProperty(exports, "getSolids", {
339
+ enumerable: true,
340
+ get: function() {
341
+ return getSolids;
342
+ }
343
+ });
284
344
  Object.defineProperty(exports, "getVertices", {
285
345
  enumerable: true,
286
346
  get: function() {
@@ -299,6 +359,12 @@ Object.defineProperty(exports, "invalidateShapeCache", {
299
359
  return invalidateShapeCache;
300
360
  }
301
361
  });
362
+ Object.defineProperty(exports, "iterCompSolids", {
363
+ enumerable: true,
364
+ get: function() {
365
+ return iterCompSolids;
366
+ }
367
+ });
302
368
  Object.defineProperty(exports, "iterEdges", {
303
369
  enumerable: true,
304
370
  get: function() {
@@ -311,6 +377,18 @@ Object.defineProperty(exports, "iterFaces", {
311
377
  return iterFaces;
312
378
  }
313
379
  });
380
+ Object.defineProperty(exports, "iterShells", {
381
+ enumerable: true,
382
+ get: function() {
383
+ return iterShells;
384
+ }
385
+ });
386
+ Object.defineProperty(exports, "iterSolids", {
387
+ enumerable: true,
388
+ get: function() {
389
+ return iterSolids;
390
+ }
391
+ });
314
392
  Object.defineProperty(exports, "iterVertices", {
315
393
  enumerable: true,
316
394
  get: function() {
package/dist/vectors.cjs CHANGED
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_constants = require("./constants-BOVyEYGH.cjs");
3
3
  const require_types = require("./types-KjA8tY4Y.cjs");
4
4
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
5
- const require_planeOps = require("./planeOps-C6wxugvC.cjs");
5
+ const require_planeOps = require("./planeOps-DTY92UCh.cjs");
6
6
  exports.DEG2RAD = require_constants.DEG2RAD;
7
7
  exports.RAD2DEG = require_constants.RAD2DEG;
8
8
  exports.createNamedPlane = require_planeOps.createNamedPlane;
package/dist/vectors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
2
2
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-D24Y27N0.js";
3
3
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-SKPRvPH-.js";
4
- import { i as pivotPlane, n as createPlane, o as resolvePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-CblVcWbn.js";
4
+ import { i as pivotPlane, n as createPlane, o as resolvePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-YTeuXs80.js";
5
5
  export { DEG2RAD, RAD2DEG, createNamedPlane, createPlane, pivotPlane, resolveDirection, resolvePlane, toVec2, toVec3, translatePlane, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "18.34.0",
3
+ "version": "18.35.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",
@@ -25,6 +25,8 @@
25
25
  "packages/brepjs-opencascade",
26
26
  "packages/brepjs-bim",
27
27
  "packages/brepjs-manifold",
28
+ "packages/brepjs-agent",
29
+ "packages/brepjs-viewer",
28
30
  "apps/playground",
29
31
  "apps/docs"
30
32
  ],
@@ -248,6 +250,7 @@
248
250
  "@eslint/js": "10.0.1",
249
251
  "@size-limit/file": "12.1.0",
250
252
  "@types/opentype.js": "1.3.9",
253
+ "@types/react": "19.2.14",
251
254
  "@vitest/coverage-v8": "4.1.6",
252
255
  "brepjs-opencascade": "*",
253
256
  "brepkit-wasm": "2.101.2",