brepjs 18.33.1 → 18.34.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 (104) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-Fo0euAQO.cjs → blueprint-Ctq3YI2J.cjs} +5 -5
  4. package/dist/{blueprint-oP35B-5C.js → blueprint-Dgn4HasF.js} +5 -5
  5. package/dist/{blueprintFns-qI4KeCbO.cjs → blueprintFns-BSc5kM0e.cjs} +2 -2
  6. package/dist/{blueprintFns-CbQ_ejf2.js → blueprintFns-CJ8_2wwd.js} +2 -2
  7. package/dist/{blueprintSketcher-CwFSXjkY.cjs → blueprintSketcher-DHzyZSgL.cjs} +3 -3
  8. package/dist/{blueprintSketcher-RTuQXKOv.js → blueprintSketcher-DfN5LL45.js} +3 -3
  9. package/dist/{boolean2D-CyF55o4m.js → boolean2D-BDVlp701.js} +4 -4
  10. package/dist/{boolean2D-REw_4JSx.cjs → boolean2D-DRlzu7K9.cjs} +4 -4
  11. package/dist/{booleanFns-26cYHLDO.cjs → booleanFns-BZEfiLXh.cjs} +4 -4
  12. package/dist/{booleanFns-4Crw0vsQ.js → booleanFns-CE3u1eIK.js} +4 -4
  13. package/dist/brepjs.cjs +26 -25
  14. package/dist/brepjs.js +26 -26
  15. package/dist/{cameraFns-DVDMA2YA.js → cameraFns-CFnPg5-H.js} +2 -2
  16. package/dist/{cameraFns-mhPem8JC.cjs → cameraFns-D8o9TUpN.cjs} +2 -2
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-BlMsqa1r.js → cornerFinder-B1DivYhK.js} +1 -1
  20. package/dist/{cornerFinder-CQy4Qrr_.cjs → cornerFinder-B3DEv78h.cjs} +1 -1
  21. package/dist/{curveFns-CEADb8UI.js → curveFns-CwBnLSGs.js} +1 -1
  22. package/dist/{curveFns-BXWe0tUP.cjs → curveFns-ZXCrxKal.cjs} +1 -1
  23. package/dist/{drawFns-BJKXXQ8X.cjs → drawFns-B3xmKGqo.cjs} +12 -12
  24. package/dist/{drawFns-DKPpkbO1.js → drawFns-DmDtAGJ3.js} +12 -12
  25. package/dist/{extrudeFns-OvEEZRiI.js → extrudeFns-B2Jh4xdE.js} +1 -1
  26. package/dist/{extrudeFns-Byjh14Mh.cjs → extrudeFns-BCHwL5Rz.cjs} +1 -1
  27. package/dist/{faceFns-Dc1Kz-42.js → faceFns-43zWb-uD.js} +2 -2
  28. package/dist/{faceFns-BEDI2Fht.cjs → faceFns-dIScXlyz.cjs} +2 -2
  29. package/dist/{helpers-4VfB6UKI.js → helpers-BcvfYBlZ.js} +6 -6
  30. package/dist/{helpers-DipI84vD.cjs → helpers-WD_MY4EK.cjs} +6 -6
  31. package/dist/{historyFns-B2Rlwdlq.js → historyFns-CesKJg-g.js} +4 -4
  32. package/dist/{historyFns-BhUcF5g5.cjs → historyFns-D0-tL5u2.cjs} +4 -4
  33. package/dist/{importFns-2G8JvQjC.cjs → importFns-CfXF57GK.cjs} +2 -2
  34. package/dist/{importFns-rweji4Oy.js → importFns-nh6XUS6V.js} +2 -2
  35. package/dist/index.d.ts +1 -1
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/kernel/index.d.ts +3 -4
  39. package/dist/kernel/manifold/approximations.d.ts +74 -0
  40. package/dist/kernel/manifold/booleanOps.d.ts +3 -0
  41. package/dist/kernel/manifold/builderOps.d.ts +3 -0
  42. package/dist/kernel/manifold/constraintSketchOps.d.ts +3 -0
  43. package/dist/kernel/manifold/evolutionOps.d.ts +3 -0
  44. package/dist/kernel/manifold/geometryOps.d.ts +4 -0
  45. package/dist/kernel/manifold/helpers.d.ts +3 -0
  46. package/dist/kernel/manifold/ioOps.d.ts +3 -0
  47. package/dist/kernel/manifold/kernel2dOps.d.ts +3 -0
  48. package/dist/kernel/manifold/manifoldAdapter.d.ts +9 -0
  49. package/dist/kernel/manifold/measureOps.d.ts +15 -0
  50. package/dist/kernel/manifold/meshHandle.d.ts +15 -0
  51. package/dist/kernel/manifold/meshOps.d.ts +8 -0
  52. package/dist/kernel/manifold/modifierOps.d.ts +3 -0
  53. package/dist/kernel/manifold/opGraph.d.ts +35 -0
  54. package/dist/kernel/manifold/primitiveOps.d.ts +3 -0
  55. package/dist/kernel/manifold/projectionOps.d.ts +3 -0
  56. package/dist/kernel/manifold/repairOps.d.ts +3 -0
  57. package/dist/kernel/manifold/replay.d.ts +11 -0
  58. package/dist/kernel/manifold/sweepOps.d.ts +3 -0
  59. package/dist/kernel/manifold/topologyOps.d.ts +3 -0
  60. package/dist/kernel/manifold/transformOps.d.ts +32 -0
  61. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  62. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +19 -1
  63. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  64. package/dist/{measureFns-BPOctaKR.cjs → measureFns-BlNPRAt1.cjs} +3 -3
  65. package/dist/{measureFns-Ds3J7UUO.js → measureFns-CZPHU8Fq.js} +3 -3
  66. package/dist/measurement.cjs +1 -1
  67. package/dist/measurement.js +1 -1
  68. package/dist/{meshFns-CUqezt0b.js → meshFns-44MzVWmw.js} +2 -2
  69. package/dist/{meshFns-57ibf5Gt.cjs → meshFns-thnWU79u.cjs} +2 -2
  70. package/dist/{occtWasmAdapter-Dtp7Wu27.js → occtWasmAdapter-COKB8ItA.js} +17 -2
  71. package/dist/{occtWasmAdapter-BaidTDJk.cjs → occtWasmAdapter-CdyaMnBW.cjs} +17 -2
  72. package/dist/operations.cjs +2 -2
  73. package/dist/operations.js +2 -2
  74. package/dist/{primitiveFns-PmfINZkv.js → primitiveFns-7-BpVEfR.js} +7 -7
  75. package/dist/{primitiveFns-DBEzhsb6.cjs → primitiveFns-wcHq2Dpc.cjs} +7 -7
  76. package/dist/projection.cjs +1 -1
  77. package/dist/projection.js +1 -1
  78. package/dist/query.cjs +2 -2
  79. package/dist/query.js +2 -2
  80. package/dist/{shapeFns-B98VgPco.cjs → shapeFns-DpurOSYX.cjs} +2 -2
  81. package/dist/{shapeFns-C1efGLmK.js → shapeFns-tYJBM_yH.js} +2 -2
  82. package/dist/shapeRef.cjs +1 -1
  83. package/dist/shapeRef.js +1 -1
  84. package/dist/{shapeRefFns-C2eRBaVr.cjs → shapeRefFns-DNlnIVGa.cjs} +4 -4
  85. package/dist/{shapeRefFns-CwSlI8-p.js → shapeRefFns-DhkB2xrl.js} +4 -4
  86. package/dist/{shapeTypes-B4BMvuqz.cjs → shapeTypes-C16Am1Cu.cjs} +3828 -519
  87. package/dist/{shapeTypes-CO_7Vi7X.js → shapeTypes-DgIDUXrS.js} +3630 -327
  88. package/dist/sketching.cjs +3 -3
  89. package/dist/sketching.js +3 -3
  90. package/dist/{solidBuilders-uvsBuAfy.cjs → solidBuilders-BRd294hA.cjs} +2 -2
  91. package/dist/{solidBuilders-BvgLx1ih.js → solidBuilders-oYCo3H_H.js} +2 -2
  92. package/dist/{surfaceBuilders-CaZYe1HH.js → surfaceBuilders-BuNn7mbE.js} +2 -2
  93. package/dist/{surfaceBuilders-CqA8sgwW.cjs → surfaceBuilders-C-MXZeRY.cjs} +2 -2
  94. package/dist/text.cjs +2 -2
  95. package/dist/text.js +2 -2
  96. package/dist/{textBlueprints-BBbXCbg6.js → textBlueprints-4DfEJMBH.js} +7 -7
  97. package/dist/{textBlueprints-Dcz1NOJo.cjs → textBlueprints-ihVTYQz7.cjs} +7 -7
  98. package/dist/{textMetrics-BHRxUdLk.js → textMetrics-CgtxG_bI.js} +1 -1
  99. package/dist/{textMetrics-CJyB83W4.cjs → textMetrics-KvDcXO5Z.cjs} +1 -1
  100. package/dist/topology.cjs +7 -7
  101. package/dist/topology.js +7 -7
  102. package/dist/{topologyQueryFns-BQefLP33.js → topologyQueryFns-DNs19Af_.js} +1 -1
  103. package/dist/{topologyQueryFns-AGfoGI2F.cjs → topologyQueryFns-DTvwHQnu.cjs} +1 -1
  104. package/package.json +6 -1
@@ -1,12 +1,12 @@
1
- import { Z as getKernel, p as isFace } from "./shapeTypes-CO_7Vi7X.js";
1
+ import { Z as getKernel, p as isFace } from "./shapeTypes-DgIDUXrS.js";
2
2
  import { A as ok, T as isOk, b as err, h as bug, o as queryError } from "./errors-BJSTLaDI.js";
3
- import { l as getVertices, o as getEdges, s as getFaces, u as getWires } from "./topologyQueryFns-BQefLP33.js";
3
+ import { l as getVertices, o as getEdges, s as getFaces, u as getWires } from "./topologyQueryFns-DNs19Af_.js";
4
4
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-SKPRvPH-.js";
6
- import { c as normalAt, o as getSurfaceType } from "./faceFns-Dc1Kz-42.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-C1efGLmK.js";
8
- import { a as curveLength, d as getCurveType, r as curveIsClosed } from "./curveFns-CEADb8UI.js";
9
- import { n as measureArea } from "./measureFns-Ds3J7UUO.js";
6
+ import { c as normalAt, o as getSurfaceType } from "./faceFns-43zWb-uD.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-tYJBM_yH.js";
8
+ import { a as curveLength, d as getCurveType, r as curveIsClosed } from "./curveFns-CwBnLSGs.js";
9
+ import { n as measureArea } from "./measureFns-CZPHU8Fq.js";
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-B4BMvuqz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
2
  const require_errors = require("./errors-DxoD7zgx.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-AGfoGI2F.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DTvwHQnu.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
- const require_faceFns = require("./faceFns-BEDI2Fht.cjs");
7
- const require_shapeFns = require("./shapeFns-B98VgPco.cjs");
8
- const require_curveFns = require("./curveFns-BXWe0tUP.cjs");
9
- const require_measureFns = require("./measureFns-BPOctaKR.cjs");
6
+ const require_faceFns = require("./faceFns-dIScXlyz.cjs");
7
+ const require_shapeFns = require("./shapeFns-DpurOSYX.cjs");
8
+ const require_curveFns = require("./curveFns-ZXCrxKal.cjs");
9
+ const require_measureFns = require("./measureFns-BlNPRAt1.cjs");
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,9 +1,9 @@
1
- import { B as createKernelHandle, Z as getKernel, t as castShape } from "./shapeTypes-CO_7Vi7X.js";
1
+ import { B as createKernelHandle, Z as getKernel, t as castShape } from "./shapeTypes-DgIDUXrS.js";
2
2
  import { A as ok, b as err, d as validationError, n as computationError, r as ioError } from "./errors-BJSTLaDI.js";
3
3
  import { d as vecNormalize, s as vecIsZero } from "./vecOps-SKPRvPH-.js";
4
- import { v as fromBREP } from "./faceFns-Dc1Kz-42.js";
5
- import { s as toBREP } from "./shapeFns-C1efGLmK.js";
6
- import { a as fuseAll } from "./booleanFns-4Crw0vsQ.js";
4
+ import { v as fromBREP } from "./faceFns-43zWb-uD.js";
5
+ import { s as toBREP } from "./shapeFns-tYJBM_yH.js";
6
+ import { a as fuseAll } from "./booleanFns-CE3u1eIK.js";
7
7
  //#region src/utils/uuid.ts
8
8
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
9
9
  function uuidv() {
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-B4BMvuqz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
2
  const require_errors = require("./errors-DxoD7zgx.cjs");
3
3
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
4
- const require_faceFns = require("./faceFns-BEDI2Fht.cjs");
5
- const require_shapeFns = require("./shapeFns-B98VgPco.cjs");
6
- const require_booleanFns = require("./booleanFns-26cYHLDO.cjs");
4
+ const require_faceFns = require("./faceFns-dIScXlyz.cjs");
5
+ const require_shapeFns = require("./shapeFns-DpurOSYX.cjs");
6
+ const require_booleanFns = require("./booleanFns-BZEfiLXh.cjs");
7
7
  //#region src/utils/uuid.ts
8
8
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
9
9
  function uuidv() {
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-B4BMvuqz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
2
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
3
3
  const require_errors = require("./errors-DxoD7zgx.cjs");
4
4
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
5
- const require_blueprint = require("./blueprint-Fo0euAQO.cjs");
5
+ const require_blueprint = require("./blueprint-Ctq3YI2J.cjs");
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
@@ -1,8 +1,8 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-CO_7Vi7X.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-DgIDUXrS.js";
2
2
  import { n as wasmIndex, t as vec3At$1 } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, b as err, r as ioError, t as BrepErrorCode } from "./errors-BJSTLaDI.js";
4
4
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
5
- import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-oP35B-5C.js";
5
+ import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-Dgn4HasF.js";
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * brepjs — Public API
3
3
  */
4
- export { init, initFromOC, prewarm, getKernel, registerKernel, withKernel, BrepkitAdapter, OcctWasmAdapter, } from './kernel/index.js';
4
+ export { init, initFromOC, initFromManifold, prewarm, getKernel, registerKernel, withKernel, BrepkitAdapter, OcctWasmAdapter, } from './kernel/index.js';
5
5
  export type { KernelAdapter, BrepkitHandle, OcctWasmHandle, OcctWasmModule, OcctKernelWasm, SurfaceType, ShapeOrientation, ShapeType, KernelBooleanOps, KernelBuilderOps, KernelCore, KernelCurveOps, KernelEvolutionOps, KernelIOOps, KernelMeasureOps, KernelMeshOps, KernelModifierOps, KernelPrimitiveOps, KernelRepairOps, KernelSurfaceOps, KernelSweepOps, KernelTopologyOps, KernelTransformOps, } from './kernel/index.js';
6
6
  export { supportsProjection, supportsConstraintSketch } from './kernel/index.js';
7
7
  export type { ProjectionCapability, ConstraintSketchCapability } from './kernel/index.js';
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-57ibf5Gt.cjs");
3
- const require_importFns = require("./importFns-2G8JvQjC.cjs");
2
+ const require_meshFns = require("./meshFns-thnWU79u.cjs");
3
+ const require_importFns = require("./importFns-CfXF57GK.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
6
6
  exports.exportGlb = require_importFns.exportGlb;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-CUqezt0b.js";
2
- 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-rweji4Oy.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-44MzVWmw.js";
2
+ 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-nh6XUS6V.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -1,9 +1,8 @@
1
1
  import { KernelAdapter, KernelInstance } from './types.js';
2
2
  import { Kernel2DCapability } from './kernel2dTypes.js';
3
- /**
4
- * Register a kernel adapter under a unique identifier.
5
- * The first registered kernel becomes the default.
6
- */
3
+ type ManifoldModule = any;
4
+ /** Initialise and register the manifold kernel from a loaded manifold-3d module. */
5
+ export declare function initFromManifold(module: ManifoldModule): void;
7
6
  export declare function registerKernel(id: string, adapter: KernelAdapter): void;
8
7
  /**
9
8
  * Return a kernel adapter by id, or the default kernel if no id is given.
@@ -0,0 +1,74 @@
1
+ import { ManifoldSolid } from './meshHandle.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export type Vec2 = readonly [number, number];
4
+ export type Vec3 = readonly [number, number, number];
5
+ /** A planar cross-section: a 2D outline plus the world frame it lives in. */
6
+ export interface CrossSection {
7
+ /** Closed outline in the section's local 2D coordinates (no repeated last point). */
8
+ readonly outline: Vec2[];
9
+ /** World-space origin of the section plane. */
10
+ readonly origin: Vec3;
11
+ /** Section local +X axis in world space (maps outline.x). */
12
+ readonly xAxis: Vec3;
13
+ /** Section local +Y axis in world space (maps outline.y). */
14
+ readonly yAxis: Vec3;
15
+ }
16
+ /** A moving frame along a sweep path (origin + section-plane basis). */
17
+ export interface SweepFrame {
18
+ readonly origin: Vec3;
19
+ readonly xAxis: Vec3;
20
+ readonly yAxis: Vec3;
21
+ readonly tangent: Vec3;
22
+ }
23
+ export declare function dot(a: Vec3, b: Vec3): number;
24
+ export declare function cross(a: Vec3, b: Vec3): Vec3;
25
+ export declare function sub(a: Vec3, b: Vec3): Vec3;
26
+ export declare function add(a: Vec3, b: Vec3): Vec3;
27
+ export declare function scaleVec(a: Vec3, s: number): Vec3;
28
+ export declare function length3(a: Vec3): number;
29
+ export declare function normalize3(a: Vec3): Vec3;
30
+ /** Pick any unit vector perpendicular to `n`. */
31
+ export declare function perpendicular(n: Vec3): Vec3;
32
+ /** Build an orthonormal frame (xAxis, yAxis) for a plane with the given normal. */
33
+ export declare function frameForNormal(normal: Vec3): {
34
+ xAxis: Vec3;
35
+ yAxis: Vec3;
36
+ };
37
+ /** Signed area of a 2D loop (CCW positive). */
38
+ export declare function signedArea(outline: readonly Vec2[]): number;
39
+ /** Force CCW winding so generated triangles face outward consistently. */
40
+ export declare function ensureCCW(outline: Vec2[]): Vec2[];
41
+ /**
42
+ * Recover a planar cross-section from a profile handle.
43
+ *
44
+ * Profile handles carry their outline in the op-node params under `outline`
45
+ * (preferred), `polygon`, or `points`, together with an optional plane frame
46
+ * (`origin`/`xAxis`/`yAxis`, or a `normal`). When no polygon is recorded, the
47
+ * outline is derived by projecting the profile's manifold mesh onto the XY plane.
48
+ */
49
+ export declare function profileCrossSection(profile: unknown): CrossSection;
50
+ /** Monotone-chain 2D convex hull (used only as a mesh-derived fallback outline). */
51
+ export declare function convexHull2D(points: readonly Vec2[]): Vec2[];
52
+ /** Triangle indices that fan a convex/simple closed loop of `vertexCount` points. */
53
+ export declare function fanTriangulate(vertexCount: number): number[];
54
+ /**
55
+ * Place a section's local outline at a world frame, returning a ring of points
56
+ * in correspondence with the section's outline order. `scale` rescales the
57
+ * outline about its frame origin (for tapered/draft sweeps and scale laws).
58
+ */
59
+ export declare function placeRing(section: CrossSection, frame: SweepFrame, scale?: number): Vec3[];
60
+ /**
61
+ * Skin a sequence of equally-sized rings (each an array of world-space points
62
+ * in correspondence) into a watertight triangle mesh and build a Manifold solid.
63
+ *
64
+ * Every ring must have the same vertex count `m`. Adjacent rings are connected
65
+ * with two triangles per segment; the first and last rings are capped with fans
66
+ * (oriented outward). This is the shared engine behind loft and sweep.
67
+ */
68
+ export declare function skinRings(module: ManifoldModule, rings: readonly Vec3[][]): ManifoldSolid;
69
+ /**
70
+ * Build rotation-minimizing frames (double-reflection method) along a polyline
71
+ * path. Returns one frame per path point; the section's in-plane axes are
72
+ * carried so the profile keeps a stable orientation around corners.
73
+ */
74
+ export declare function rotationMinimizingFrames(path: readonly Vec3[], seed: Vec3): SweepFrame[];
@@ -0,0 +1,3 @@
1
+ import { KernelBooleanOps } from '../interfaces/booleanOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeBooleanOps(module: ManifoldModule): KernelBooleanOps;
@@ -0,0 +1,3 @@
1
+ import { KernelBuilderOps } from '../interfaces/builderOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeBuilderOps(module: ManifoldModule): KernelBuilderOps;
@@ -0,0 +1,3 @@
1
+ import { ConstraintSketchCapability } from '../types.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeConstraintSketchOps(_module: ManifoldModule): ConstraintSketchCapability;
@@ -0,0 +1,3 @@
1
+ import { KernelEvolutionOps } from '../interfaces/evolutionOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeEvolutionOps(module: ManifoldModule): KernelEvolutionOps;
@@ -0,0 +1,4 @@
1
+ import { KernelCurveOps } from '../interfaces/curveOps.js';
2
+ import { KernelSurfaceOps } from '../interfaces/surfaceOps.js';
3
+ import { ManifoldModule } from './helpers.js';
4
+ export declare function makeGeometryOps(_module: ManifoldModule): KernelCurveOps & KernelSurfaceOps;
@@ -0,0 +1,3 @@
1
+ export type ManifoldModule = any;
2
+ export declare function notImplemented(method: string): never;
3
+ export declare function opIsReplayable(op: string): boolean;
@@ -0,0 +1,3 @@
1
+ import { KernelIOOps } from '../interfaces/ioOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeIoOps(module: ManifoldModule): KernelIOOps;
@@ -0,0 +1,3 @@
1
+ import { Kernel2DCapability } from '../kernel2dTypes.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeKernel2DOps(_module: ManifoldModule): Kernel2DCapability;
@@ -0,0 +1,9 @@
1
+ import { KernelAdapter } from '../interfaces/index.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export interface ManifoldAdapter extends KernelAdapter {
4
+ }
5
+ export declare class ManifoldAdapter {
6
+ readonly oc: any;
7
+ readonly kernelId = "manifold";
8
+ constructor(module: ManifoldModule);
9
+ }
@@ -0,0 +1,15 @@
1
+ import { BulkMeasurement, KernelMeasureOps } from '../interfaces/measureOps.js';
2
+ import { DistanceResult, KernelShape } from '../types.js';
3
+ import { ManifoldModule } from './helpers.js';
4
+ type Vec3 = [number, number, number];
5
+ export declare function volume(shape: KernelShape): number;
6
+ export declare function area(shape: KernelShape): number;
7
+ export declare function boundingBox(shape: KernelShape): {
8
+ min: Vec3;
9
+ max: Vec3;
10
+ };
11
+ export declare function centerOfMass(shape: KernelShape): Vec3;
12
+ export declare function distance(shape1: KernelShape, shape2: KernelShape): DistanceResult;
13
+ export declare function measureBulk(shape: KernelShape, _includeLinear?: boolean): BulkMeasurement;
14
+ export declare function makeMeasureOps(_module: ManifoldModule): KernelMeasureOps;
15
+ export {};
@@ -0,0 +1,15 @@
1
+ import { KernelAdapter } from '../interfaces/index.js';
2
+ import { KernelShape } from '../types.js';
3
+ import { OpNode } from './opGraph.js';
4
+ export type ManifoldSolid = any;
5
+ export interface ManifoldShape {
6
+ readonly manifold: ManifoldSolid;
7
+ readonly node: OpNode;
8
+ }
9
+ export declare function wrap(manifold: ManifoldSolid, node: OpNode): ManifoldShape;
10
+ export declare function unwrap(shape: ManifoldShape): ManifoldSolid;
11
+ export declare function nodeOf(shape: ManifoldShape): OpNode;
12
+ export declare function asManifoldShape(shape: KernelShape): ManifoldShape | undefined;
13
+ export declare function resolveOcct(): KernelAdapter | undefined;
14
+ export declare function occtOrThrow(method: string): KernelAdapter;
15
+ export declare const brepCache: WeakMap<OpNode, KernelShape>;
@@ -0,0 +1,8 @@
1
+ import { KernelMeshOps } from '../interfaces/meshOps.js';
2
+ import { KernelEdgeMeshResult, KernelMeshResult, KernelShape, MeshOptions } from '../types.js';
3
+ import { ManifoldModule } from './helpers.js';
4
+ export declare function mesh(shape: KernelShape, options: MeshOptions): KernelMeshResult;
5
+ export declare function meshEdges(shape: KernelShape, _tolerance: number, _angularTolerance: number): KernelEdgeMeshResult;
6
+ export declare function hasTriangulation(_shape: KernelShape): boolean;
7
+ export declare function meshShape(_shape: KernelShape, _tolerance: number, _angularTolerance: number): void;
8
+ export declare function makeMeshOps(_module: ManifoldModule): KernelMeshOps;
@@ -0,0 +1,3 @@
1
+ import { KernelModifierOps } from '../interfaces/modifierOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeModifierOps(module: ManifoldModule): KernelModifierOps;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Op-graph node — the recorded intent behind every manifold shape.
3
+ *
4
+ * Each native manifold operation runs on the mesh AND records an {@link OpNode}
5
+ * capturing its exact parameters (radii, axes, selection predicates, profile
6
+ * outlines). The replay engine ({@link ./replay.js}) walks this graph to
7
+ * reconstruct a true B-rep on another kernel.
8
+ *
9
+ * `OpKind` is intentionally an open string union rather than an enum: op names
10
+ * are validated at replay time against the handler table and the replayable set
11
+ * in {@link ./helpers.js}, not by the type system. The op names currently
12
+ * produced across the adapter are:
13
+ *
14
+ * - primitives: makeBox, makeBoxWithCorners, makeCylinder, makeSphere, makeCone,
15
+ * makeTorus, makeEllipsoid
16
+ * - booleans: makeFuse, makeCut, makeCommon, section, split
17
+ * - transforms: translateShape, rotateShape, scaleShape, mirrorShape,
18
+ * transformShape, generalTransform, generalTransformNonOrthogonal, gridPattern
19
+ * - sweeps: extrude, revolve, revolveVec, loft, loftAdvanced, sweep, simplePipe,
20
+ * sweepWithOptions, sweepPipeShell, helicalSweep, draftPrism
21
+ * - modifiers: fillet, chamfer, chamferDistAngle, shell, thicken, offset,
22
+ * filletVariable, draft, defeature, simplify, reverseShape
23
+ * - builders: hull, hullFromPoints, sewAndSolidify
24
+ * - non-replayable origins: importMesh, importSTEP, importIGES, fromBREP, spine
25
+ *
26
+ * @module
27
+ */
28
+ export type OpKind = string;
29
+ export interface OpNode {
30
+ readonly op: OpKind;
31
+ readonly params: Readonly<Record<string, unknown>>;
32
+ readonly inputs: readonly OpNode[];
33
+ readonly replayable: boolean;
34
+ }
35
+ export declare function makeNode(op: OpKind, params: Readonly<Record<string, unknown>>, inputs: readonly OpNode[]): OpNode;
@@ -0,0 +1,3 @@
1
+ import { KernelPrimitiveOps } from '../interfaces/primitiveOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makePrimitiveOps(module: ManifoldModule): KernelPrimitiveOps;
@@ -0,0 +1,3 @@
1
+ import { ProjectionCapability } from '../types.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeProjectionOps(_module: ManifoldModule): ProjectionCapability;
@@ -0,0 +1,3 @@
1
+ import { KernelRepairOps } from '../interfaces/repairOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeRepairOps(_module: ManifoldModule): KernelRepairOps;
@@ -0,0 +1,11 @@
1
+ import { KernelAdapter } from '../interfaces/index.js';
2
+ import { KernelShape } from '../types.js';
3
+ import { OpNode } from './opGraph.js';
4
+ /**
5
+ * Replay an op-graph onto `targetKernel`, returning the exact B-rep shape.
6
+ *
7
+ * Memoized post-order: each node's inputs are replayed first (deduplicated via
8
+ * the shared cache so a DAG with reused sub-graphs replays each node once), then
9
+ * the node's own handler runs. Throws on any non-replayable node or unmapped op.
10
+ */
11
+ export declare function replay(node: OpNode, targetKernel: KernelAdapter, cache?: Map<OpNode, KernelShape>): KernelShape;
@@ -0,0 +1,3 @@
1
+ import { KernelSweepOps } from '../interfaces/sweepOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeSweepOps(module: ManifoldModule): KernelSweepOps;
@@ -0,0 +1,3 @@
1
+ import { KernelTopologyOps } from '../interfaces/topologyOps.js';
2
+ import { ManifoldModule } from './helpers.js';
3
+ export declare function makeTopologyOps(_module: ManifoldModule): KernelTopologyOps;
@@ -0,0 +1,32 @@
1
+ import { KernelTransformOps, TransformEntry } from '../interfaces/transformOps.js';
2
+ import { KernelShape, KernelType } from '../types.js';
3
+ import { ManifoldModule } from './helpers.js';
4
+ type Vec3 = readonly [number, number, number];
5
+ type Mat3 = readonly [number, number, number, number, number, number, number, number, number];
6
+ export declare function translate(shape: KernelShape, x: number, y: number, z: number): KernelShape;
7
+ export declare function rotate(shape: KernelShape, angle: number, axis?: Vec3, center?: Vec3): KernelShape;
8
+ export declare function mirror(shape: KernelShape, origin: Vec3, normal: Vec3): KernelShape;
9
+ export declare function scale(shape: KernelShape, center: Vec3, factor: number): KernelShape;
10
+ export declare function transform(shape: KernelShape, trsf: KernelType): KernelShape;
11
+ export declare function generalTransform(shape: KernelShape, linear: Mat3, translation: Vec3, isOrthogonal: boolean): KernelShape;
12
+ export declare function generalTransformNonOrthogonal(shape: KernelShape, linear: Mat3, translation: Vec3): KernelShape;
13
+ export declare function composeTransform(ops: Array<{
14
+ type: 'translate';
15
+ x: number;
16
+ y: number;
17
+ z: number;
18
+ } | {
19
+ type: 'rotate';
20
+ angle: number;
21
+ axis?: Vec3 | undefined;
22
+ center?: Vec3 | undefined;
23
+ }>): {
24
+ handle: KernelType;
25
+ dispose: () => void;
26
+ };
27
+ export declare function linearPattern(shape: KernelShape, direction: [number, number, number], spacing: number, count: number): KernelShape[];
28
+ export declare function circularPattern(shape: KernelShape, center: [number, number, number], axis: [number, number, number], angleStep: number, count: number): KernelShape[];
29
+ export declare function gridPattern(module: ManifoldModule, shape: KernelShape, directionX: [number, number, number], directionY: [number, number, number], spacingX: number, spacingY: number, countX: number, countY: number): KernelShape;
30
+ export declare function transformBatch(entries: TransformEntry[]): KernelShape[];
31
+ export declare function makeTransformOps(module: ManifoldModule): KernelTransformOps;
32
+ export {};
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_occtWasmAdapter = require("../../occtWasmAdapter-BaidTDJk.cjs");
2
+ const require_occtWasmAdapter = require("../../occtWasmAdapter-CdyaMnBW.cjs");
3
3
  exports.OcctWasmAdapter = require_occtWasmAdapter.OcctWasmAdapter;
@@ -3,12 +3,30 @@ import { BulkMeasurement } from '../interfaces/measureOps.js';
3
3
  import { TransformEntry } from '../interfaces/transformOps.js';
4
4
  import { Curve2dHandle, BBox2dHandle } from '../kernel2dTypes.js';
5
5
  import { OcctWasmModule, OcctKernelWasm } from './occtWasmTypes.js';
6
+ /**
7
+ * Minimal view of occt-wasm's `OcctKernel` wrapper — anything exposing the raw
8
+ * Embind module and kernel. Accepted by {@link OcctWasmAdapter.fromKernel}.
9
+ */
10
+ export interface OcctKernelOwner {
11
+ getRawModule(): OcctWasmModule;
12
+ getRawKernel(): OcctKernelWasm;
13
+ }
6
14
  export declare class OcctWasmAdapter implements KernelAdapter {
7
15
  readonly oc: KernelInstance;
8
16
  readonly kernelId = "occt-wasm";
9
17
  private readonly Module;
10
18
  private readonly k;
11
- constructor(module: OcctWasmModule, kernel: OcctKernelWasm);
19
+ private readonly owner;
20
+ constructor(module: OcctWasmModule, kernel: OcctKernelWasm, owner?: OcctKernelOwner);
21
+ /**
22
+ * Build an adapter from occt-wasm's `OcctKernel` wrapper, retaining it for the
23
+ * adapter's lifetime. Prefer this over the raw `(module, kernel)` constructor:
24
+ * the wrapper deletes its raw kernel when garbage-collected, so an adapter that
25
+ * only borrows the raw kernel can be left pointing at freed memory.
26
+ */
27
+ static fromKernel(kernel: OcctKernelOwner): OcctWasmAdapter;
28
+ /** The owner retained to keep the borrowed raw kernel alive, or `undefined` when built from a raw kernel. */
29
+ get retainedKernelOwner(): OcctKernelOwner | undefined;
12
30
  dispose(h: {
13
31
  delete(): void;
14
32
  }): void;
@@ -1,2 +1,2 @@
1
- import { t as OcctWasmAdapter } from "../../occtWasmAdapter-Dtp7Wu27.js";
1
+ import { t as OcctWasmAdapter } from "../../occtWasmAdapter-COKB8ItA.js";
2
2
  export { OcctWasmAdapter };
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-B4BMvuqz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
2
  const require_errors = require("./errors-DxoD7zgx.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-AGfoGI2F.cjs");
4
- const require_faceFns = require("./faceFns-BEDI2Fht.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DTvwHQnu.cjs");
4
+ const require_faceFns = require("./faceFns-dIScXlyz.cjs");
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,7 +1,7 @@
1
- import { Z as getKernel } from "./shapeTypes-CO_7Vi7X.js";
1
+ import { Z as getKernel } from "./shapeTypes-DgIDUXrS.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-BJSTLaDI.js";
3
- import { v as kernelCallRaw } from "./topologyQueryFns-BQefLP33.js";
4
- import { p as uvBounds } from "./faceFns-Dc1Kz-42.js";
3
+ import { v as kernelCallRaw } from "./topologyQueryFns-DNs19Af_.js";
4
+ import { p as uvBounds } from "./faceFns-43zWb-uD.js";
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-BPOctaKR.cjs");
2
+ const require_measureFns = require("./measureFns-BlNPRAt1.cjs");
3
3
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
4
4
  exports.measureArea = require_measureFns.measureArea;
5
5
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,2 +1,2 @@
1
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-Ds3J7UUO.js";
1
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-CZPHU8Fq.js";
2
2
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
@@ -1,6 +1,6 @@
1
- import { Z as getKernel } from "./shapeTypes-CO_7Vi7X.js";
1
+ import { Z as getKernel } from "./shapeTypes-DgIDUXrS.js";
2
2
  import { A as ok, b as err, r as ioError } from "./errors-BJSTLaDI.js";
3
- import { O as getFaceOrigins } from "./shapeFns-C1efGLmK.js";
3
+ import { O as getFaceOrigins } from "./shapeFns-tYJBM_yH.js";
4
4
  //#region src/topology/meshCache.ts
5
5
  /**
6
6
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-B4BMvuqz.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C16Am1Cu.cjs");
2
2
  const require_errors = require("./errors-DxoD7zgx.cjs");
3
- const require_shapeFns = require("./shapeFns-B98VgPco.cjs");
3
+ const require_shapeFns = require("./shapeFns-DpurOSYX.cjs");
4
4
  //#region src/topology/meshCache.ts
5
5
  /**
6
6
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -3812,15 +3812,30 @@ function hullFromPoints(k, Module, points, tolerance) {
3812
3812
  function notImplemented(method) {
3813
3813
  throw new Error(`occt-wasm: ${method} is not yet implemented`);
3814
3814
  }
3815
- var OcctWasmAdapter = class {
3815
+ var OcctWasmAdapter = class OcctWasmAdapter {
3816
3816
  oc;
3817
3817
  kernelId = "occt-wasm";
3818
3818
  Module;
3819
3819
  k;
3820
- constructor(module, kernel) {
3820
+ owner;
3821
+ constructor(module, kernel, owner) {
3821
3822
  this.Module = module;
3822
3823
  this.k = wrapKernelExceptions(kernel, module);
3823
3824
  this.oc = buildOcShim(module, this.k);
3825
+ this.owner = owner;
3826
+ }
3827
+ /**
3828
+ * Build an adapter from occt-wasm's `OcctKernel` wrapper, retaining it for the
3829
+ * adapter's lifetime. Prefer this over the raw `(module, kernel)` constructor:
3830
+ * the wrapper deletes its raw kernel when garbage-collected, so an adapter that
3831
+ * only borrows the raw kernel can be left pointing at freed memory.
3832
+ */
3833
+ static fromKernel(kernel) {
3834
+ return new OcctWasmAdapter(kernel.getRawModule(), kernel.getRawKernel(), kernel);
3835
+ }
3836
+ /** The owner retained to keep the borrowed raw kernel alive, or `undefined` when built from a raw kernel. */
3837
+ get retainedKernelOwner() {
3838
+ return this.owner;
3824
3839
  }
3825
3840
  dispose(h) {
3826
3841
  if (isOcctWasmHandle(h)) this.k.release(h.id);
@@ -3812,15 +3812,30 @@ function hullFromPoints(k, Module, points, tolerance) {
3812
3812
  function notImplemented(method) {
3813
3813
  throw new Error(`occt-wasm: ${method} is not yet implemented`);
3814
3814
  }
3815
- var OcctWasmAdapter = class {
3815
+ var OcctWasmAdapter = class OcctWasmAdapter {
3816
3816
  oc;
3817
3817
  kernelId = "occt-wasm";
3818
3818
  Module;
3819
3819
  k;
3820
- constructor(module, kernel) {
3820
+ owner;
3821
+ constructor(module, kernel, owner) {
3821
3822
  this.Module = module;
3822
3823
  this.k = wrapKernelExceptions(kernel, module);
3823
3824
  this.oc = buildOcShim(module, this.k);
3825
+ this.owner = owner;
3826
+ }
3827
+ /**
3828
+ * Build an adapter from occt-wasm's `OcctKernel` wrapper, retaining it for the
3829
+ * adapter's lifetime. Prefer this over the raw `(module, kernel)` constructor:
3830
+ * the wrapper deletes its raw kernel when garbage-collected, so an adapter that
3831
+ * only borrows the raw kernel can be left pointing at freed memory.
3832
+ */
3833
+ static fromKernel(kernel) {
3834
+ return new OcctWasmAdapter(kernel.getRawModule(), kernel.getRawKernel(), kernel);
3835
+ }
3836
+ /** The owner retained to keep the borrowed raw kernel alive, or `undefined` when built from a raw kernel. */
3837
+ get retainedKernelOwner() {
3838
+ return this.owner;
3824
3839
  }
3825
3840
  dispose(h) {
3826
3841
  if (isOcctWasmHandle(h)) this.k.release(h.id);
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_historyFns = require("./historyFns-BhUcF5g5.cjs");
3
- const require_extrudeFns = require("./extrudeFns-Byjh14Mh.cjs");
2
+ const require_historyFns = require("./historyFns-D0-tL5u2.cjs");
3
+ const require_extrudeFns = require("./extrudeFns-BCHwL5Rz.cjs");
4
4
  exports.addChild = require_historyFns.addChild;
5
5
  exports.addStep = require_historyFns.addStep;
6
6
  exports.circularPattern = require_historyFns.circularPattern;
@@ -1,3 +1,3 @@
1
- import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-B2Rlwdlq.js";
2
- import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-OvEEZRiI.js";
1
+ import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-CesKJg-g.js";
2
+ import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-B2Jh4xdE.js";
3
3
  export { addChild, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, exportAssemblySTEP, findNode, findStep, getShape as getHistoryShape, gridPattern, linearPattern, modifyStep, registerOperation, registerShape, removeChild, replayFrom, replayHistory, stepCount, stepsFrom, supportExtrude, sweep, twistExtrude, undoLast, updateNode, walkAssembly };