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.
- package/dist/2d.cjs +2 -2
- package/dist/2d.js +13 -13
- package/dist/{Blueprint-zgFe_5Qj.cjs → Blueprint-BcbOBF-9.cjs} +11 -99
- package/dist/{Blueprint-Bp45tnh0.js → Blueprint-Cmh8lKc4.js} +29 -117
- package/dist/{boolean2D-CfEbRMPF.cjs → boolean2D-CqacqjME.cjs} +24 -25
- package/dist/{boolean2D-DN6ETTCq.js → boolean2D-D94Axs3i.js} +23 -24
- package/dist/{booleanFns-C-M6qqvB.js → booleanFns-DdjtpcM6.js} +306 -12
- package/dist/{booleanFns-5dDG0jpA.cjs → booleanFns-NtKxkiXn.cjs} +299 -5
- package/dist/brepjs.cjs +1619 -71
- package/dist/brepjs.js +1880 -333
- package/dist/core/errors.d.ts +18 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core.cjs +4 -4
- package/dist/core.js +4 -4
- package/dist/{cornerFinder-CC_MunIh.js → cornerFinder-BBOYfsXl.js} +1 -1
- package/dist/{cornerFinder-BQ-_VJx0.cjs → cornerFinder-Bqy8Lw2p.cjs} +1 -1
- package/dist/{curveFns-ZuQUBZvd.js → curveFns-B85Glnfo.js} +19 -17
- package/dist/{curveFns-VMxgfkqw.cjs → curveFns-BXCbASW-.cjs} +6 -4
- package/dist/{drawFns-BbhX1IUq.js → drawFns-B-gJ2WUc.js} +47 -21
- package/dist/{drawFns-CKaHgGSK.cjs → drawFns-CAmFEqd1.cjs} +63 -37
- package/dist/{errors-CSYOlCCR.js → errors-Coh_5_19.js} +26 -1
- package/dist/{errors-D13q2HCk.cjs → errors-eRQu29oc.cjs} +26 -1
- package/dist/{faceFns-CfJIbHY3.js → faceFns-CltrEfOo.js} +109 -12
- package/dist/{faceFns-es3GENII.cjs → faceFns-DcndPHWm.cjs} +103 -6
- package/dist/{helpers-C0q_FVxq.cjs → helpers-CC21GeAr.cjs} +8 -9
- package/dist/{helpers-CmVkMubc.js → helpers-SksQIreB.js} +16 -17
- package/dist/index.d.ts +18 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/io/dxfImportFns.d.ts +17 -0
- package/dist/io/dxfImportFns.d.ts.map +1 -0
- package/dist/io/objImportFns.d.ts +19 -0
- package/dist/io/objImportFns.d.ts.map +1 -0
- package/dist/io/threemfImportFns.d.ts +19 -0
- package/dist/io/threemfImportFns.d.ts.map +1 -0
- package/dist/io.cjs +5 -5
- package/dist/io.js +5 -5
- package/dist/kernel/hullOps.d.ts +1 -0
- package/dist/kernel/hullOps.d.ts.map +1 -1
- package/dist/kernel/occtAdapter.d.ts +5 -0
- package/dist/kernel/occtAdapter.d.ts.map +1 -1
- package/dist/kernel/solverAdapter.d.ts +39 -0
- package/dist/kernel/solverAdapter.d.ts.map +1 -0
- package/dist/kernel/types.d.ts +5 -0
- package/dist/kernel/types.d.ts.map +1 -1
- package/dist/{loft-B-UCPW9P.cjs → loft-BcyyvWCj.cjs} +28 -28
- package/dist/{loft-oJq2OD3A.js → loft-CJMPx1NQ.js} +16 -16
- package/dist/{measurement-Cf_SoIiR.js → measurement-ByOztLxb.js} +3 -3
- package/dist/{measurement-CYmT-C77.cjs → measurement-DU3ry-0Q.cjs} +3 -3
- package/dist/measurement.cjs +1 -1
- package/dist/measurement.js +1 -1
- package/dist/{meshFns-CqNwW0PO.js → meshFns-D2gLyLFt.js} +3 -3
- package/dist/{meshFns-DDC_2U81.cjs → meshFns-DawUwI3W.cjs} +3 -3
- package/dist/{occtBoundary-D_gjqgzo.js → occtBoundary-CWzWqBCm.js} +17 -5
- package/dist/{occtBoundary-CocN2VKx.cjs → occtBoundary-DH2VO-rq.cjs} +12 -0
- package/dist/operations/assemblyFns.d.ts +1 -0
- package/dist/operations/assemblyFns.d.ts.map +1 -1
- package/dist/operations/guidedSweepFns.d.ts +25 -0
- package/dist/operations/guidedSweepFns.d.ts.map +1 -0
- package/dist/operations/mateFns.d.ts +50 -0
- package/dist/operations/mateFns.d.ts.map +1 -0
- package/dist/operations/multiSweepFns.d.ts +32 -0
- package/dist/operations/multiSweepFns.d.ts.map +1 -0
- package/dist/operations/roofFns.d.ts +16 -0
- package/dist/operations/roofFns.d.ts.map +1 -0
- package/dist/operations/straightSkeleton.d.ts +28 -0
- package/dist/operations/straightSkeleton.d.ts.map +1 -0
- package/dist/{operations-BQeW_DSM.cjs → operations-CdELWxgv.cjs} +7 -7
- package/dist/{operations-6hdpuYmY.js → operations-DiXo_4t9.js} +15 -15
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +13 -13
- package/dist/query.cjs +5 -5
- package/dist/query.js +7 -7
- package/dist/result.cjs +1 -1
- package/dist/result.js +1 -1
- package/dist/{shapeFns-B0zSdO9c.cjs → shapeFns-3RYtsUVY.cjs} +54 -21
- package/dist/{shapeFns-k1YHFwmB.js → shapeFns-4ioRrhih.js} +52 -19
- package/dist/{shapeTypes-BxVxLdiD.cjs → shapeTypes-CMjrTv36.cjs} +1 -1
- package/dist/{shapeTypes-c-_pgYCx.js → shapeTypes-D0vfRxWb.js} +13 -13
- package/dist/sketching.cjs +2 -2
- package/dist/sketching.js +2 -2
- package/dist/{curveBuilders-BREwqvuc.js → surfaceBuilders-B7Jxob8g.js} +106 -13
- package/dist/{curveBuilders-BkEJ-RVn.cjs → surfaceBuilders-Xx9DRRxs.cjs} +96 -3
- package/dist/text/textBlueprints.d.ts +38 -0
- package/dist/text/textBlueprints.d.ts.map +1 -1
- package/dist/topology/api.d.ts +5 -0
- package/dist/topology/api.d.ts.map +1 -1
- package/dist/topology/booleanFns.d.ts +10 -1
- package/dist/topology/booleanFns.d.ts.map +1 -1
- package/dist/topology/colorFns.d.ts +38 -0
- package/dist/topology/colorFns.d.ts.map +1 -0
- package/dist/topology/curveFns.d.ts +1 -1
- package/dist/topology/curveFns.d.ts.map +1 -1
- package/dist/topology/faceTagFns.d.ts +44 -0
- package/dist/topology/faceTagFns.d.ts.map +1 -0
- package/dist/topology/modifierFns.d.ts.map +1 -1
- package/dist/topology/polyhedronFns.d.ts +8 -0
- package/dist/topology/polyhedronFns.d.ts.map +1 -0
- package/dist/topology/shapeFns.d.ts +4 -0
- package/dist/topology/shapeFns.d.ts.map +1 -1
- package/dist/topology/surfaceBuilders.d.ts +7 -0
- package/dist/topology/surfaceBuilders.d.ts.map +1 -1
- package/dist/topology/surfaceFns.d.ts +38 -0
- package/dist/topology/surfaceFns.d.ts.map +1 -0
- package/dist/{topology-CycEc6Oe.cjs → topology-D-nGjCzV.cjs} +19 -20
- package/dist/{topology-tMKHJgw2.js → topology-DRP9zreU.js} +8 -9
- package/dist/topology.cjs +13 -14
- package/dist/topology.js +51 -52
- package/dist/{vectors-DE0XriuQ.js → vectors-CZV4ZrTz.js} +2 -2
- package/dist/{vectors-DVmHF4zt.cjs → vectors-DwFeX0Ja.cjs} +2 -2
- package/dist/vectors.cjs +2 -2
- package/dist/vectors.js +2 -2
- package/package.json +4 -3
- package/dist/cast-CPNOTNFm.cjs +0 -102
- package/dist/cast-Cerqtxtb.js +0 -103
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const occtBoundary = require("./occtBoundary-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
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"}
|
package/dist/topology/api.d.ts
CHANGED
|
@@ -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,
|
|
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,
|
|
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;
|
|
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;
|
|
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-
|
|
3
|
-
require("./booleanFns-
|
|
4
|
-
const occtBoundary = require("./occtBoundary-
|
|
5
|
-
const shapeTypes = require("./shapeTypes-
|
|
6
|
-
const
|
|
7
|
-
const errors = require("./errors-
|
|
8
|
-
require("./curveFns-
|
|
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-
|
|
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 =
|
|
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(
|
|
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
|
|
264
|
-
if (!shapeTypes.isSolid(
|
|
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(
|
|
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
|
|
279
|
-
if (!shapeTypes.isFace(
|
|
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(
|
|
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
|
|
294
|
-
if (!shapeTypes.isWire(
|
|
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(
|
|
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 {
|
|
2
|
-
import "./booleanFns-
|
|
3
|
-
import { g as getKernel } from "./occtBoundary-
|
|
4
|
-
import { c as castShape, h as isShape3D, k as isSolid, e as isFace, m as isWire } from "./shapeTypes-
|
|
5
|
-
import { d as downcast } from "./
|
|
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-
|
|
7
|
-
import "./curveFns-
|
|
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-
|
|
9
|
+
import "./meshFns-D2gLyLFt.js";
|
|
11
10
|
function toBufferGeometryData(mesh) {
|
|
12
11
|
return {
|
|
13
12
|
position: mesh.vertices,
|