brepjs 8.4.0 → 8.7.4

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 (114) hide show
  1. package/dist/2d.cjs +2 -2
  2. package/dist/2d.js +13 -13
  3. package/dist/{Blueprint-zgFe_5Qj.cjs → Blueprint-BcbOBF-9.cjs} +11 -99
  4. package/dist/{Blueprint-Bp45tnh0.js → Blueprint-Cmh8lKc4.js} +29 -117
  5. package/dist/{boolean2D-CfEbRMPF.cjs → boolean2D-CqacqjME.cjs} +24 -25
  6. package/dist/{boolean2D-DN6ETTCq.js → boolean2D-D94Axs3i.js} +23 -24
  7. package/dist/{booleanFns-C-M6qqvB.js → booleanFns-DdjtpcM6.js} +306 -12
  8. package/dist/{booleanFns-5dDG0jpA.cjs → booleanFns-NtKxkiXn.cjs} +299 -5
  9. package/dist/brepjs.cjs +1619 -71
  10. package/dist/brepjs.js +1880 -333
  11. package/dist/core/errors.d.ts +18 -0
  12. package/dist/core/errors.d.ts.map +1 -1
  13. package/dist/core.cjs +4 -4
  14. package/dist/core.js +4 -4
  15. package/dist/{cornerFinder-CC_MunIh.js → cornerFinder-BBOYfsXl.js} +1 -1
  16. package/dist/{cornerFinder-BQ-_VJx0.cjs → cornerFinder-Bqy8Lw2p.cjs} +1 -1
  17. package/dist/{curveFns-ZuQUBZvd.js → curveFns-B85Glnfo.js} +19 -17
  18. package/dist/{curveFns-VMxgfkqw.cjs → curveFns-BXCbASW-.cjs} +6 -4
  19. package/dist/{drawFns-BbhX1IUq.js → drawFns-B-gJ2WUc.js} +47 -21
  20. package/dist/{drawFns-CKaHgGSK.cjs → drawFns-CAmFEqd1.cjs} +63 -37
  21. package/dist/{errors-CSYOlCCR.js → errors-Coh_5_19.js} +26 -1
  22. package/dist/{errors-D13q2HCk.cjs → errors-eRQu29oc.cjs} +26 -1
  23. package/dist/{faceFns-CfJIbHY3.js → faceFns-CltrEfOo.js} +109 -12
  24. package/dist/{faceFns-es3GENII.cjs → faceFns-DcndPHWm.cjs} +103 -6
  25. package/dist/{helpers-C0q_FVxq.cjs → helpers-CC21GeAr.cjs} +8 -9
  26. package/dist/{helpers-CmVkMubc.js → helpers-SksQIreB.js} +16 -17
  27. package/dist/index.d.ts +18 -3
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/io/dxfImportFns.d.ts +17 -0
  30. package/dist/io/dxfImportFns.d.ts.map +1 -0
  31. package/dist/io/objImportFns.d.ts +19 -0
  32. package/dist/io/objImportFns.d.ts.map +1 -0
  33. package/dist/io/threemfImportFns.d.ts +19 -0
  34. package/dist/io/threemfImportFns.d.ts.map +1 -0
  35. package/dist/io.cjs +5 -5
  36. package/dist/io.js +5 -5
  37. package/dist/kernel/hullOps.d.ts +1 -0
  38. package/dist/kernel/hullOps.d.ts.map +1 -1
  39. package/dist/kernel/occtAdapter.d.ts +5 -0
  40. package/dist/kernel/occtAdapter.d.ts.map +1 -1
  41. package/dist/kernel/solverAdapter.d.ts +39 -0
  42. package/dist/kernel/solverAdapter.d.ts.map +1 -0
  43. package/dist/kernel/types.d.ts +5 -0
  44. package/dist/kernel/types.d.ts.map +1 -1
  45. package/dist/{loft-B-UCPW9P.cjs → loft-BcyyvWCj.cjs} +28 -28
  46. package/dist/{loft-oJq2OD3A.js → loft-CJMPx1NQ.js} +16 -16
  47. package/dist/{measurement-Cf_SoIiR.js → measurement-ByOztLxb.js} +3 -3
  48. package/dist/{measurement-CYmT-C77.cjs → measurement-DU3ry-0Q.cjs} +3 -3
  49. package/dist/measurement.cjs +1 -1
  50. package/dist/measurement.js +1 -1
  51. package/dist/{meshFns-CqNwW0PO.js → meshFns-D2gLyLFt.js} +3 -3
  52. package/dist/{meshFns-DDC_2U81.cjs → meshFns-DawUwI3W.cjs} +3 -3
  53. package/dist/{occtBoundary-D_gjqgzo.js → occtBoundary-CWzWqBCm.js} +17 -5
  54. package/dist/{occtBoundary-CocN2VKx.cjs → occtBoundary-DH2VO-rq.cjs} +12 -0
  55. package/dist/operations/assemblyFns.d.ts +1 -0
  56. package/dist/operations/assemblyFns.d.ts.map +1 -1
  57. package/dist/operations/guidedSweepFns.d.ts +25 -0
  58. package/dist/operations/guidedSweepFns.d.ts.map +1 -0
  59. package/dist/operations/mateFns.d.ts +50 -0
  60. package/dist/operations/mateFns.d.ts.map +1 -0
  61. package/dist/operations/multiSweepFns.d.ts +32 -0
  62. package/dist/operations/multiSweepFns.d.ts.map +1 -0
  63. package/dist/operations/roofFns.d.ts +16 -0
  64. package/dist/operations/roofFns.d.ts.map +1 -0
  65. package/dist/operations/straightSkeleton.d.ts +28 -0
  66. package/dist/operations/straightSkeleton.d.ts.map +1 -0
  67. package/dist/{operations-BQeW_DSM.cjs → operations-CdELWxgv.cjs} +7 -7
  68. package/dist/{operations-6hdpuYmY.js → operations-DiXo_4t9.js} +15 -15
  69. package/dist/operations.cjs +2 -2
  70. package/dist/operations.js +13 -13
  71. package/dist/query.cjs +5 -5
  72. package/dist/query.js +7 -7
  73. package/dist/result.cjs +1 -1
  74. package/dist/result.js +1 -1
  75. package/dist/{shapeFns-B0zSdO9c.cjs → shapeFns-3RYtsUVY.cjs} +54 -21
  76. package/dist/{shapeFns-k1YHFwmB.js → shapeFns-4ioRrhih.js} +52 -19
  77. package/dist/{shapeTypes-BxVxLdiD.cjs → shapeTypes-CMjrTv36.cjs} +1 -1
  78. package/dist/{shapeTypes-c-_pgYCx.js → shapeTypes-D0vfRxWb.js} +13 -13
  79. package/dist/sketching.cjs +2 -2
  80. package/dist/sketching.js +2 -2
  81. package/dist/{curveBuilders-BREwqvuc.js → surfaceBuilders-B7Jxob8g.js} +106 -13
  82. package/dist/{curveBuilders-BkEJ-RVn.cjs → surfaceBuilders-Xx9DRRxs.cjs} +96 -3
  83. package/dist/text/textBlueprints.d.ts +38 -0
  84. package/dist/text/textBlueprints.d.ts.map +1 -1
  85. package/dist/topology/api.d.ts +5 -0
  86. package/dist/topology/api.d.ts.map +1 -1
  87. package/dist/topology/booleanFns.d.ts +10 -1
  88. package/dist/topology/booleanFns.d.ts.map +1 -1
  89. package/dist/topology/colorFns.d.ts +38 -0
  90. package/dist/topology/colorFns.d.ts.map +1 -0
  91. package/dist/topology/curveFns.d.ts +1 -1
  92. package/dist/topology/curveFns.d.ts.map +1 -1
  93. package/dist/topology/faceTagFns.d.ts +44 -0
  94. package/dist/topology/faceTagFns.d.ts.map +1 -0
  95. package/dist/topology/modifierFns.d.ts.map +1 -1
  96. package/dist/topology/polyhedronFns.d.ts +8 -0
  97. package/dist/topology/polyhedronFns.d.ts.map +1 -0
  98. package/dist/topology/shapeFns.d.ts +4 -0
  99. package/dist/topology/shapeFns.d.ts.map +1 -1
  100. package/dist/topology/surfaceBuilders.d.ts +7 -0
  101. package/dist/topology/surfaceBuilders.d.ts.map +1 -1
  102. package/dist/topology/surfaceFns.d.ts +38 -0
  103. package/dist/topology/surfaceFns.d.ts.map +1 -0
  104. package/dist/{topology-CycEc6Oe.cjs → topology-D-nGjCzV.cjs} +19 -20
  105. package/dist/{topology-tMKHJgw2.js → topology-DRP9zreU.js} +8 -9
  106. package/dist/topology.cjs +13 -14
  107. package/dist/topology.js +51 -52
  108. package/dist/{vectors-DE0XriuQ.js → vectors-CZV4ZrTz.js} +2 -2
  109. package/dist/{vectors-DVmHF4zt.cjs → vectors-DwFeX0Ja.cjs} +2 -2
  110. package/dist/vectors.cjs +2 -2
  111. package/dist/vectors.js +2 -2
  112. package/package.json +4 -3
  113. package/dist/cast-CPNOTNFm.cjs +0 -102
  114. package/dist/cast-Cerqtxtb.js +0 -103
@@ -1,7 +1,16 @@
1
1
  "use strict";
2
- const occtBoundary = require("./occtBoundary-CocN2VKx.cjs");
3
- const shapeTypes = require("./shapeTypes-BxVxLdiD.cjs");
4
- const errors = require("./errors-D13q2HCk.cjs");
2
+ const occtBoundary = require("./occtBoundary-DH2VO-rq.cjs");
3
+ const errors = require("./errors-eRQu29oc.cjs");
4
+ const shapeTypes = require("./shapeTypes-CMjrTv36.cjs");
5
+ const shapeFns = require("./shapeFns-3RYtsUVY.cjs");
6
+ const faceFns = require("./faceFns-DcndPHWm.cjs");
7
+ function range(len) {
8
+ return Array.from(Array(len).keys());
9
+ }
10
+ function zip(arrays) {
11
+ const minLength = Math.min(...arrays.map((arr) => arr.length));
12
+ return range(minLength).map((i) => arrays.map((arr) => arr[i]));
13
+ }
5
14
  function makeLine(v1, v2) {
6
15
  const oc = occtBoundary.getKernel().oc;
7
16
  const r = shapeTypes.gcWithScope();
@@ -184,13 +193,97 @@ function assembleWire(listOfEdges) {
184
193
  }
185
194
  return errors.ok(shapeTypes.createWire(wireBuilder.Wire()));
186
195
  }
196
+ function makeFace(wire, holes) {
197
+ const oc = occtBoundary.getKernel().oc;
198
+ const faceBuilder = new oc.BRepBuilderAPI_MakeFace_15(wire.wrapped, false);
199
+ holes?.forEach((hole) => {
200
+ faceBuilder.Add(hole.wrapped);
201
+ });
202
+ if (!faceBuilder.IsDone()) {
203
+ faceBuilder.delete();
204
+ return errors.err(
205
+ errors.occtError("FACE_BUILD_FAILED", "Failed to build the face. Your wire might be non planar.")
206
+ );
207
+ }
208
+ const face = faceBuilder.Face();
209
+ faceBuilder.delete();
210
+ return errors.ok(shapeTypes.createFace(face));
211
+ }
212
+ function fill(face) {
213
+ const outer = faceFns.outerWire(face);
214
+ return makeFace(outer);
215
+ }
216
+ function makeNewFaceWithinFace(originFace, wire) {
217
+ const oc = occtBoundary.getKernel().oc;
218
+ const [r, gc] = shapeTypes.localGC();
219
+ const surface = r(oc.BRep_Tool.Surface_2(originFace.wrapped));
220
+ const faceBuilder = r(new oc.BRepBuilderAPI_MakeFace_21(surface, wire.wrapped, true));
221
+ const face = faceBuilder.Face();
222
+ gc();
223
+ return shapeTypes.createFace(face);
224
+ }
225
+ function makeNonPlanarFace(wire) {
226
+ const oc = occtBoundary.getKernel().oc;
227
+ const [r, gc] = shapeTypes.localGC();
228
+ const faceBuilder = r(
229
+ new oc.BRepOffsetAPI_MakeFilling(3, 15, 2, false, 1e-5, 1e-4, 0.01, 0.1, 8, 9)
230
+ );
231
+ shapeFns.getEdges(wire).forEach((edge) => {
232
+ faceBuilder.Add_1(
233
+ edge.wrapped,
234
+ oc.GeomAbs_Shape.GeomAbs_C0,
235
+ true
236
+ );
237
+ });
238
+ const progress = r(new oc.Message_ProgressRange_1());
239
+ faceBuilder.Build(progress);
240
+ return errors.andThen(faceFns.cast(faceBuilder.Shape()), (newFace) => {
241
+ gc();
242
+ if (!shapeTypes.isFace(newFace)) {
243
+ return errors.err(errors.occtError("FACE_BUILD_FAILED", "Failed to create a face"));
244
+ }
245
+ return errors.ok(newFace);
246
+ });
247
+ }
248
+ function addHolesInFace(face, holes) {
249
+ const oc = occtBoundary.getKernel().oc;
250
+ const [r, gc] = shapeTypes.localGC();
251
+ const faceMaker = r(new oc.BRepBuilderAPI_MakeFace_2(face.wrapped));
252
+ holes.forEach((wire) => {
253
+ faceMaker.Add(wire.wrapped);
254
+ });
255
+ const builtFace = r(faceMaker.Face());
256
+ const fixer = r(new oc.ShapeFix_Face_2(builtFace));
257
+ fixer.FixOrientation_1();
258
+ const newFace = fixer.Face();
259
+ gc();
260
+ return shapeTypes.createFace(newFace);
261
+ }
262
+ function makePolygon(points) {
263
+ if (points.length < 3)
264
+ return errors.err(
265
+ errors.validationError("POLYGON_MIN_POINTS", "You need at least 3 points to make a polygon")
266
+ );
267
+ const edges = zip([points, [...points.slice(1), points[0]]]).map(
268
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- zip returns untyped pairs
269
+ ([p1, p2]) => makeLine(p1, p2)
270
+ );
271
+ return errors.andThen(assembleWire(edges), (wire) => makeFace(wire));
272
+ }
273
+ exports.addHolesInFace = addHolesInFace;
187
274
  exports.assembleWire = assembleWire;
275
+ exports.fill = fill;
188
276
  exports.makeBSplineApproximation = makeBSplineApproximation;
189
277
  exports.makeBezierCurve = makeBezierCurve;
190
278
  exports.makeCircle = makeCircle;
191
279
  exports.makeEllipse = makeEllipse;
192
280
  exports.makeEllipseArc = makeEllipseArc;
281
+ exports.makeFace = makeFace;
193
282
  exports.makeHelix = makeHelix;
194
283
  exports.makeLine = makeLine;
284
+ exports.makeNewFaceWithinFace = makeNewFaceWithinFace;
285
+ exports.makeNonPlanarFace = makeNonPlanarFace;
286
+ exports.makePolygon = makePolygon;
195
287
  exports.makeTangentArc = makeTangentArc;
196
288
  exports.makeThreePointArc = makeThreePointArc;
289
+ exports.zip = zip;
@@ -66,4 +66,42 @@ export declare function sketchText(text: string, textConfig?: {
66
66
  plane?: PlaneName | Plane;
67
67
  origin?: PointInput | number;
68
68
  }): Sketches;
69
+ export interface TextMetricsResult {
70
+ /** Total advance width of the text string. */
71
+ width: number;
72
+ /** Height from descender to ascender. */
73
+ height: number;
74
+ /** Distance from baseline to top of tallest glyph (positive). */
75
+ ascender: number;
76
+ /** Distance from baseline to bottom of lowest glyph (negative). */
77
+ descender: number;
78
+ }
79
+ export interface FontMetricsResult {
80
+ /** Ascender in font units scaled to fontSize. */
81
+ ascender: number;
82
+ /** Descender in font units scaled to fontSize (negative). */
83
+ descender: number;
84
+ /** Units per em of the font. */
85
+ unitsPerEm: number;
86
+ /** Total line height (ascender - descender + line gap). */
87
+ lineHeight: number;
88
+ }
89
+ /**
90
+ * Measure the dimensions of a text string without generating geometry.
91
+ *
92
+ * Requires a font to be loaded via {@link loadFont} first.
93
+ */
94
+ export declare function textMetrics(text: string, options?: {
95
+ fontSize?: number;
96
+ fontFamily?: string;
97
+ }): TextMetricsResult;
98
+ /**
99
+ * Retrieve font-level metrics without referencing specific text.
100
+ *
101
+ * Requires a font to be loaded via {@link loadFont} first.
102
+ */
103
+ export declare function fontMetrics(options?: {
104
+ fontSize?: number;
105
+ fontFamily?: string;
106
+ }): FontMetricsResult;
69
107
  //# sourceMappingURL=textBlueprints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textBlueprints.d.ts","sourceRoot":"","sources":["../../src/text/textBlueprints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAK7D,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAQhD;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,GAAG,WAAW,EAC9B,UAAU,SAAY,EACtB,KAAK,UAAQ,GAEZ,OAAO,CAAC,GAAG,CAAC,CAsCd;AAED;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,GAAI,mBAAsB,KAAG,GAEhD,CAAC;AA8CF;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,MAAU,EAAE,MAAU,EAAE,QAAa,EAAE,UAAsB,EAAE;;;;;CAAK,GACrE,UAAU,CASZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EACD,WAAW,GAAE;IACX,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACzB,GACL,QAAQ,CAWV"}
1
+ {"version":3,"file":"textBlueprints.d.ts","sourceRoot":"","sources":["../../src/text/textBlueprints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAK7D,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAQhD;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,GAAG,WAAW,EAC9B,UAAU,SAAY,EACtB,KAAK,UAAQ,GAEZ,OAAO,CAAC,GAAG,CAAC,CAsCd;AAED;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,GAAI,mBAAsB,KAAG,GAEhD,CAAC;AA8CF;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,MAAU,EAAE,MAAU,EAAE,QAAa,EAAE,UAAsB,EAAE;;;;;CAAK,GACrE,UAAU,CASZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EACD,WAAW,GAAE;IACX,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACzB,GACL,QAAQ,CAWV;AAMD,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,iBAAiB,CAcnB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,iBAAiB,CAoBpB"}
@@ -62,6 +62,11 @@ export declare function section(shape: Shapeable<AnyShape>, plane: PlaneInput, o
62
62
  approximation?: boolean;
63
63
  planeSize?: number;
64
64
  }): Result<AnyShape>;
65
+ /** Section a shape with a plane and return a filled Face. */
66
+ export declare function sectionToFace(shape: Shapeable<AnyShape>, plane: PlaneInput, options?: {
67
+ approximation?: boolean;
68
+ planeSize?: number;
69
+ }): Result<Face>;
65
70
  /** Split a shape with tool shapes. */
66
71
  export declare function split(shape: Shapeable<AnyShape>, tools: AnyShape[]): Result<AnyShape>;
67
72
  /** Slice a shape with multiple planes. */
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/topology/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/topology/api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AnyShape, Shape3D } from '../core/shapeTypes.js';
1
+ import { AnyShape, Face, Shape3D } from '../core/shapeTypes.js';
2
2
  import { Result } from '../core/result.js';
3
3
  import { PlaneInput } from '../core/planeTypes.js';
4
4
  /** Options shared by all boolean and compound operations. */
@@ -92,6 +92,15 @@ export declare function section(shape: AnyShape, plane: PlaneInput, { approximat
92
92
  approximation?: boolean;
93
93
  planeSize?: number;
94
94
  }): Result<AnyShape>;
95
+ /**
96
+ * Section a shape with a plane and return a filled Face.
97
+ * The outermost wire (largest bounding-box area) becomes the outer boundary;
98
+ * any remaining wires are treated as holes.
99
+ */
100
+ export declare function sectionToFace(shape: AnyShape, plane: PlaneInput, options?: {
101
+ approximation?: boolean;
102
+ planeSize?: number;
103
+ }): Result<Face>;
95
104
  /**
96
105
  * Split a shape with one or more tool shapes using BRepAlgoAPI_Splitter.
97
106
  * Returns all pieces from the split as a compound.
@@ -1 +1 @@
1
- {"version":3,"file":"booleanFns.d.ts","sourceRoot":"","sources":["../../src/topology/booleanFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAqBxD,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;IAClD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sHAAsH;IACtH,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA6CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAsBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAkBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GAChD,MAAM,CAAC,OAAO,CAAC,CAqBjB;AA4CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EAAE,EACjB,EAAE,YAAqB,EAAE,QAAgB,EAAE,QAAmB,EAAE,MAAM,EAAE,GAAE,cAAmB,GAC5F,MAAM,CAAC,OAAO,CAAC,CAiCjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CA8BjB;AA4DD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,EAAE,aAAoB,EAAE,SAAe,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9F,MAAM,CAAC,QAAQ,CAAC,CAyBlB;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAiC1E;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,QAAQ,EAAE,CAAC,CAQpB"}
1
+ {"version":3,"file":"booleanFns.d.ts","sourceRoot":"","sources":["../../src/topology/booleanFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAQ,MAAM,uBAAuB,CAAC;AAG3E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAwBxD,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;IAClD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sHAAsH;IACtH,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA6CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAwBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAoBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GAChD,MAAM,CAAC,OAAO,CAAC,CAuBjB;AA4CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EAAE,EACjB,EAAE,YAAqB,EAAE,QAAgB,EAAE,QAAmB,EAAE,MAAM,EAAE,GAAE,cAAmB,GAC5F,MAAM,CAAC,OAAO,CAAC,CAiCjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAgCjB;AA4DD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,EAAE,aAAoB,EAAE,SAAe,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9F,MAAM,CAAC,QAAQ,CAAC,CAyBlB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,IAAI,CAAC,CA8Ed;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAiC1E;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,QAAQ,EAAE,CAAC,CAQpB"}
@@ -0,0 +1,38 @@
1
+ import { AnyShape, Face } from '../core/shapeTypes.js';
2
+ /** RGBA color as 0-1 floats. */
3
+ export type Color = [number, number, number, number];
4
+ /** Accepted color inputs: hex string, RGB tuple, or RGBA tuple. */
5
+ export type ColorInput = string | [number, number, number] | [number, number, number, number];
6
+ /**
7
+ * Set a whole-shape color (stored externally via WeakMap).
8
+ * Returns the same shape reference.
9
+ */
10
+ export declare function colorShape<T extends AnyShape>(shape: T, color: ColorInput): T;
11
+ /**
12
+ * Set per-face colors on a shape.
13
+ * Returns the same shape reference.
14
+ */
15
+ export declare function colorFaces<T extends AnyShape>(shape: T, faces: Face[], color: ColorInput): T;
16
+ /**
17
+ * Get the whole-shape color, or undefined if none set.
18
+ */
19
+ export declare function getShapeColor(shape: AnyShape): Color | undefined;
20
+ /**
21
+ * Get the color of a specific face, or undefined if none set.
22
+ */
23
+ export declare function getFaceColor(shape: AnyShape, face: Face): Color | undefined;
24
+ /**
25
+ * Propagate colors from input shapes to a result shape.
26
+ *
27
+ * Call after any operation that creates a new shape from existing shapes
28
+ * (booleans, fillets, chamfers, etc.) to preserve colors.
29
+ *
30
+ * Uses OCCT's Modified()/Generated() to track which input faces
31
+ * became which result faces.
32
+ */
33
+ export declare function propagateColors(op: {
34
+ Modified(s: any): any;
35
+ Generated(s: any): any;
36
+ IsDeleted?(s: any): boolean;
37
+ }, inputs: readonly AnyShape[], result: AnyShape): void;
38
+ //# sourceMappingURL=colorFns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorFns.d.ts","sourceRoot":"","sources":["../../src/topology/colorFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS5D,gCAAgC;AAChC,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAoD9F;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAG7E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAO5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAI3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAE7B,EAAE,EAAE;IAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAA;CAAE,EAClF,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,MAAM,EAAE,QAAQ,GACf,IAAI,CA0CN"}
@@ -76,5 +76,5 @@ export declare function approximateCurve(points: Vec3[], options?: ApproximateCu
76
76
  * @param kind - Join type for offset corners ('arc', 'intersection', or 'tangent').
77
77
  * @returns Ok with the offset wire, or Err if the operation fails.
78
78
  */
79
- export declare function offsetWire2D(wire: Wire, offset: number, kind?: 'arc' | 'intersection' | 'tangent'): Result<Wire>;
79
+ export declare function offsetWire2D(wire: Wire, offset: number, kind?: 'arc' | 'intersection' | 'tangent' | 'chamfer'): Result<Wire>;
80
80
  //# sourceMappingURL=curveFns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"curveFns.d.ts","sourceRoot":"","sources":["../../src/topology/curveFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,mBAAmB,CAAC;AA6BjE;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAK1D;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAKxD;AAED,oCAAoC;AACpC,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAKtD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,SAAM,GAAG,IAAI,CAKrE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,SAAM,GAAG,IAAI,CAWvE;AAED,6CAA6C;AAC7C,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAMtD;AAED,oCAAoC;AACpC,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAIzD;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAI3D;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAKtD;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAIzE;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAE/D;AAMD,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,EAAE,EACd,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAAC,IAAI,CAAC,CAoBd;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,EAAE,EACd,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAAC,IAAI,CAAC,CAoBd;AAMD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,KAAK,GAAG,cAAc,GAAG,SAAiB,GAC/C,MAAM,CAAC,IAAI,CAAC,CAgBd"}
1
+ {"version":3,"file":"curveFns.d.ts","sourceRoot":"","sources":["../../src/topology/curveFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,mBAAmB,CAAC;AA6BjE;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAK1D;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAKxD;AAED,oCAAoC;AACpC,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAKtD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,SAAM,GAAG,IAAI,CAKrE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,SAAM,GAAG,IAAI,CAWvE;AAED,6CAA6C;AAC7C,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAMtD;AAED,oCAAoC;AACpC,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAIzD;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAI3D;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAKtD;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAIzE;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAE/D;AAMD,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,EAAE,EACd,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAAC,IAAI,CAAC,CAoBd;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,EAAE,EACd,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAAC,IAAI,CAAC,CAoBd;AAMD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,KAAK,GAAG,cAAc,GAAG,SAAS,GAAG,SAAiB,GAC3D,MAAM,CAAC,IAAI,CAAC,CAiBd"}
@@ -0,0 +1,44 @@
1
+ import { AnyShape, Face } from '../core/shapeTypes.js';
2
+ /**
3
+ * Tag selected faces with a string name.
4
+ *
5
+ * @param shape - The shape containing the faces.
6
+ * @param selector - Array of faces, or a predicate function.
7
+ * @param tag - The tag name to assign.
8
+ * @returns The same shape (tags are stored externally).
9
+ */
10
+ export declare function tagFaces(shape: AnyShape, selector: Face[] | ((face: Face) => boolean), tag: string): AnyShape;
11
+ /**
12
+ * Find all faces on a shape that have the given tag.
13
+ *
14
+ * Checks both direct tags and propagated origins (for faces that
15
+ * survived boolean/modifier operations).
16
+ */
17
+ export declare function findFacesByTag(shape: AnyShape, tag: string): Face[];
18
+ /**
19
+ * Get all tags and their associated faces on a shape.
20
+ */
21
+ export declare function getFaceTags(shape: AnyShape): Map<string, Face[]>;
22
+ /**
23
+ * Store arbitrary metadata for a tag on a shape.
24
+ */
25
+ export declare function setTagMetadata(shape: AnyShape, tag: string, metadata: Record<string, unknown>): AnyShape;
26
+ /**
27
+ * Retrieve metadata for a tag on a shape.
28
+ */
29
+ export declare function getTagMetadata(shape: AnyShape, tag: string): Record<string, unknown> | undefined;
30
+ /**
31
+ * Propagate face tags from input shapes to a result shape.
32
+ *
33
+ * Call this after any operation that creates a new shape from existing shapes
34
+ * (booleans, fillets, chamfers, etc.) to preserve face tags.
35
+ *
36
+ * Uses OCCT's Modified()/Generated() to track which input faces
37
+ * became which result faces.
38
+ */
39
+ export declare function propagateFaceTags(op: {
40
+ Modified(s: any): any;
41
+ Generated(s: any): any;
42
+ IsDeleted?(s: any): boolean;
43
+ }, inputs: readonly AnyShape[], result: AnyShape): void;
44
+ //# sourceMappingURL=faceTagFns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faceTagFns.d.ts","sourceRoot":"","sources":["../../src/topology/faceTagFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAqC5D;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,EAC5C,GAAG,EAAE,MAAM,GACV,QAAQ,CAYV;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAenE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAuBhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,QAAQ,CAIV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEhG;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAE/B,EAAE,EAAE;IAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAA;CAAE,EAClF,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,MAAM,EAAE,QAAQ,GACf,IAAI,CA+DN"}
@@ -1 +1 @@
1
- {"version":3,"file":"modifierFns.d.ts","sourceRoot":"","sources":["../../src/topology/modifierFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAmBhE;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAoB7E;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACrF,MAAM,CAAC,OAAO,CAAC,CAyEjB;AAMD;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACvF,MAAM,CAAC,OAAO,CAAC,CAmGjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,SAAO,GACf,MAAM,CAAC,OAAO,CAAC,CAiDjB;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAmC1F"}
1
+ {"version":3,"file":"modifierFns.d.ts","sourceRoot":"","sources":["../../src/topology/modifierFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAqBhE;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAsB7E;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACrF,MAAM,CAAC,OAAO,CAAC,CA2EjB;AAMD;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACvF,MAAM,CAAC,OAAO,CAAC,CAqGjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,SAAO,GACf,MAAM,CAAC,OAAO,CAAC,CAmDjB;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAqC1F"}
@@ -0,0 +1,8 @@
1
+ import { Solid } from '../core/shapeTypes.js';
2
+ import { Result } from '../core/result.js';
3
+ import { Vec3 } from '../core/types.js';
4
+ export interface PolyhedronOptions {
5
+ tolerance?: number;
6
+ }
7
+ export declare function polyhedron(points: ReadonlyArray<Vec3>, faces: ReadonlyArray<ReadonlyArray<number>>, options?: PolyhedronOptions): Result<Solid>;
8
+ //# sourceMappingURL=polyhedronFns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyhedronFns.d.ts","sourceRoot":"","sources":["../../src/topology/polyhedronFns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAC3B,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAC3C,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAAC,KAAK,CAAC,CAyDf"}
@@ -22,6 +22,10 @@ export declare function rotate<T extends AnyShape>(shape: T, angle: number, posi
22
22
  export declare function mirror<T extends AnyShape>(shape: T, planeNormal?: Vec3, planeOrigin?: Vec3): T;
23
23
  /** Scale a shape uniformly. Returns a new shape. */
24
24
  export declare function scale<T extends AnyShape>(shape: T, factor: number, center?: Vec3): T;
25
+ /** Resize a shape to exact target dimensions with optional auto-proportional scaling. */
26
+ export declare function resize<T extends AnyShape>(shape: T, dimensions: [number | undefined, number | undefined, number | undefined], options?: {
27
+ auto?: boolean;
28
+ }): T;
25
29
  /**
26
30
  * Apply a 4x4 affine transformation matrix to a shape.
27
31
  * Equivalent to OpenSCAD's `multmatrix`.
@@ -1 +1 @@
1
- {"version":3,"file":"shapeFns.d.ts","sourceRoot":"","sources":["../../src/topology/shapeFns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapeFns.d.ts","sourceRoot":"","sources":["../../src/topology/shapeFns.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,13 @@ import { Face, Wire } from '../core/shapeTypes.js';
7
7
  * @returns An error if the wire is non-planar or the face cannot be built.
8
8
  */
9
9
  export declare function makeFace(wire: Wire, holes?: Wire[]): Result<Face>;
10
+ /**
11
+ * Remove holes from a face by rebuilding it from only the outer wire.
12
+ *
13
+ * Equivalent to OpenSCAD's `fill()` — takes a 2D face with holes and returns
14
+ * a solid face with all internal cutouts filled in.
15
+ */
16
+ export declare function fill(face: Face): Result<Face>;
10
17
  /**
11
18
  * Create a face bounded by a wire on an existing face's underlying surface.
12
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"surfaceBuilders.d.ts","sourceRoot":"","sources":["../../src/topology/surfaceBuilders.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAQ,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAO9D;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAgBjE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CASxE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CA0B1D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAiB9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAWxD"}
1
+ {"version":3,"file":"surfaceBuilders.d.ts","sourceRoot":"","sources":["../../src/topology/surfaceBuilders.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAQ,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAQ9D;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAgBjE;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAG7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CASxE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CA0B1D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAiB9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAWxD"}
@@ -0,0 +1,38 @@
1
+ import { AnyShape } from '../core/shapeTypes.js';
2
+ import { Result } from '../core/result.js';
3
+ export interface SurfaceFromGridOptions {
4
+ /** Physical width in X direction. Default: number of columns - 1. */
5
+ width?: number;
6
+ /** Physical depth in Y direction. Default: number of rows - 1. */
7
+ depth?: number;
8
+ /** Scale factor for Z values. Default: 1. */
9
+ scaleZ?: number;
10
+ }
11
+ /**
12
+ * Create a B-spline surface (or triangulated shell) from a 2D grid of height values.
13
+ *
14
+ * The grid is interpreted as Z heights at evenly spaced (X, Y) positions.
15
+ * Row index maps to Y, column index maps to X.
16
+ *
17
+ * @param heights - 2D array of Z values, at least 2x2
18
+ * @param options - Physical dimensions and Z scaling
19
+ * @returns A Face representing the surface
20
+ */
21
+ export declare function surfaceFromGrid(heights: ReadonlyArray<ReadonlyArray<number>>, options?: SurfaceFromGridOptions): Result<AnyShape>;
22
+ export interface SurfaceFromImageOptions extends SurfaceFromGridOptions {
23
+ /** Which channel to use for height. Default: 'luminance'. */
24
+ channel?: 'r' | 'g' | 'b' | 'luminance';
25
+ /** Downsample factor — use every Nth pixel. Default: 1 (no downsampling). */
26
+ downsample?: number;
27
+ }
28
+ /**
29
+ * Create a surface from an image blob by interpreting pixel brightness as height.
30
+ * Requires `createImageBitmap` and `OffscreenCanvas` (available in browsers and
31
+ * some worker environments; not available in Node.js).
32
+ *
33
+ * @param blob - Image data as a Blob
34
+ * @param options - Channel selection, downsampling, and grid options
35
+ * @returns A Result containing the surface shape
36
+ */
37
+ export declare function surfaceFromImage(blob: Blob, options?: SurfaceFromImageOptions): Promise<Result<AnyShape>>;
38
+ //# sourceMappingURL=surfaceFns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaceFns.d.ts","sourceRoot":"","sources":["../../src/topology/surfaceFns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAGzD,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAC7C,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAAC,QAAQ,CAAC,CAsDlB;AAoLD,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,6DAA6D;IAC7D,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,WAAW,CAAC;IACxC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAqG3B"}
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
- const shapeFns = require("./shapeFns-B0zSdO9c.cjs");
3
- require("./booleanFns-5dDG0jpA.cjs");
4
- const occtBoundary = require("./occtBoundary-CocN2VKx.cjs");
5
- const shapeTypes = require("./shapeTypes-BxVxLdiD.cjs");
6
- const cast = require("./cast-CPNOTNFm.cjs");
7
- const errors = require("./errors-D13q2HCk.cjs");
8
- require("./curveFns-VMxgfkqw.cjs");
9
- require("./faceFns-es3GENII.cjs");
2
+ const shapeFns = require("./shapeFns-3RYtsUVY.cjs");
3
+ require("./booleanFns-NtKxkiXn.cjs");
4
+ const occtBoundary = require("./occtBoundary-DH2VO-rq.cjs");
5
+ const shapeTypes = require("./shapeTypes-CMjrTv36.cjs");
6
+ const faceFns = require("./faceFns-DcndPHWm.cjs");
7
+ const errors = require("./errors-eRQu29oc.cjs");
8
+ require("./curveFns-BXCbASW-.cjs");
10
9
  const vecOps = require("./vecOps-CjRL1jau.cjs");
11
- require("./meshFns-DDC_2U81.cjs");
10
+ require("./meshFns-DawUwI3W.cjs");
12
11
  function toBufferGeometryData(mesh) {
13
12
  return {
14
13
  position: mesh.vertices,
@@ -84,7 +83,7 @@ function chamferDistAngle(shape, edges, distance, angleDeg) {
84
83
  )
85
84
  );
86
85
  }
87
- const downcastResult = cast.downcast(raw);
86
+ const downcastResult = faceFns.downcast(raw);
88
87
  if (errors.isErr(downcastResult)) return downcastResult;
89
88
  const wrapped = shapeTypes.castShape(downcastResult.value);
90
89
  if (!shapeTypes.isShape3D(wrapped)) {
@@ -151,7 +150,7 @@ function findChildren(parent, childType) {
151
150
  return results;
152
151
  }
153
152
  function wrapAll(shapes) {
154
- return shapes.map((s) => shapeTypes.castShape(errors.unwrap(cast.downcast(s))));
153
+ return shapes.map((s) => shapeTypes.castShape(errors.unwrap(faceFns.downcast(s))));
155
154
  }
156
155
  function facesOfEdge(parent, edge) {
157
156
  const oc = occtBoundary.getKernel().oc;
@@ -260,11 +259,11 @@ function healSolid(solid) {
260
259
  )
261
260
  );
262
261
  }
263
- const cast2 = shapeTypes.castShape(result);
264
- if (!shapeTypes.isSolid(cast2)) {
262
+ const cast = shapeTypes.castShape(result);
263
+ if (!shapeTypes.isSolid(cast)) {
265
264
  return errors.err(errors.occtError("HEAL_RESULT_NOT_SOLID", "Healed result is not a solid"));
266
265
  }
267
- return errors.ok(cast2);
266
+ return errors.ok(cast);
268
267
  } catch (e) {
269
268
  return errors.err(errors.occtError("HEAL_SOLID_FAILED", "Solid healing failed", e));
270
269
  }
@@ -275,11 +274,11 @@ function healFace(face) {
275
274
  }
276
275
  try {
277
276
  const result = occtBoundary.getKernel().healFace(face.wrapped);
278
- const cast2 = shapeTypes.castShape(result);
279
- if (!shapeTypes.isFace(cast2)) {
277
+ const cast = shapeTypes.castShape(result);
278
+ if (!shapeTypes.isFace(cast)) {
280
279
  return errors.err(errors.occtError("HEAL_RESULT_NOT_FACE", "Healed result is not a face"));
281
280
  }
282
- return errors.ok(cast2);
281
+ return errors.ok(cast);
283
282
  } catch (e) {
284
283
  return errors.err(errors.occtError("HEAL_FACE_FAILED", "Face healing failed", e));
285
284
  }
@@ -290,11 +289,11 @@ function healWire(wire, face) {
290
289
  }
291
290
  try {
292
291
  const result = occtBoundary.getKernel().healWire(wire.wrapped, face?.wrapped);
293
- const cast2 = shapeTypes.castShape(result);
294
- if (!shapeTypes.isWire(cast2)) {
292
+ const cast = shapeTypes.castShape(result);
293
+ if (!shapeTypes.isWire(cast)) {
295
294
  return errors.err(errors.occtError("HEAL_RESULT_NOT_WIRE", "Healed result is not a wire"));
296
295
  }
297
- return errors.ok(cast2);
296
+ return errors.ok(cast);
298
297
  } catch (e) {
299
298
  return errors.err(errors.occtError("HEAL_WIRE_FAILED", "Wire healing failed", e));
300
299
  }
@@ -1,13 +1,12 @@
1
- import { u as getWires, c as getFaces } from "./shapeFns-k1YHFwmB.js";
2
- import "./booleanFns-C-M6qqvB.js";
3
- import { g as getKernel } from "./occtBoundary-D_gjqgzo.js";
4
- import { c as castShape, h as isShape3D, k as isSolid, e as isFace, m as isWire } from "./shapeTypes-c-_pgYCx.js";
5
- import { d as downcast } from "./cast-Cerqtxtb.js";
6
- import { e as err, x as validationError, o as occtError, d as isErr, p as typeCastError, l as ok, u as unwrap, g as isOk, B as BrepErrorCode } from "./errors-CSYOlCCR.js";
7
- import "./curveFns-ZuQUBZvd.js";
8
- import "./faceFns-CfJIbHY3.js";
1
+ import { c as getWires, a as getFaces } from "./shapeFns-4ioRrhih.js";
2
+ import "./booleanFns-DdjtpcM6.js";
3
+ import { g as getKernel } from "./occtBoundary-CWzWqBCm.js";
4
+ import { c as castShape, h as isShape3D, k as isSolid, e as isFace, m as isWire } from "./shapeTypes-D0vfRxWb.js";
5
+ import { d as downcast } from "./faceFns-CltrEfOo.js";
6
+ import { e as err, x as validationError, o as occtError, d as isErr, p as typeCastError, l as ok, u as unwrap, g as isOk, B as BrepErrorCode } from "./errors-Coh_5_19.js";
7
+ import "./curveFns-B85Glnfo.js";
9
8
  import { H as HASH_CODE_MAX } from "./vecOps-ZDdZWbwT.js";
10
- import "./meshFns-CqNwW0PO.js";
9
+ import "./meshFns-D2gLyLFt.js";
11
10
  function toBufferGeometryData(mesh) {
12
11
  return {
13
12
  position: mesh.vertices,