brepjs 12.8.2 → 12.9.1
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/lib/svgPath.d.ts.map +1 -1
- package/dist/2d/lib/vectorOperations.d.ts +4 -1
- package/dist/2d/lib/vectorOperations.d.ts.map +1 -1
- package/dist/2d.cjs +2 -2
- package/dist/2d.js +5 -5
- package/dist/{Blueprint-DbVaf6k7.js → Blueprint-1HGbugaC.js} +33 -63
- package/dist/{Blueprint-CQ28WJhz.cjs → Blueprint-CUyXM6CV.cjs} +15 -45
- package/dist/{boolean2D-0blbVtJ8.cjs → boolean2D-9OnbotKT.cjs} +9 -9
- package/dist/{boolean2D-y3E92F0u.js → boolean2D-CR4efa35.js} +11 -11
- package/dist/{booleanFns-gmsX3Cv2.cjs → booleanFns-BBd2oTvv.cjs} +43 -40
- package/dist/{booleanFns-BCTjYZAg.js → booleanFns-Br2KdGJq.js} +53 -50
- package/dist/brepjs.cjs +379 -284
- package/dist/brepjs.js +1437 -1341
- package/dist/core/definitionMaps.d.ts +2 -7
- package/dist/core/definitionMaps.d.ts.map +1 -1
- package/dist/core/dimensionTypes.d.ts +52 -0
- package/dist/core/dimensionTypes.d.ts.map +1 -0
- package/dist/core/disposal.d.ts +18 -0
- package/dist/core/disposal.d.ts.map +1 -1
- package/dist/core/errors.d.ts +1 -8
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/kernelErrorTranslation.d.ts +15 -0
- package/dist/core/kernelErrorTranslation.d.ts.map +1 -0
- package/dist/core/planeOps.d.ts +14 -0
- package/dist/core/planeOps.d.ts.map +1 -1
- package/dist/core/result.d.ts +4 -0
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/shapeTypes.d.ts +14 -146
- package/dist/core/shapeTypes.d.ts.map +1 -1
- package/dist/core/typeDiscriminants.d.ts +14 -0
- package/dist/core/typeDiscriminants.d.ts.map +1 -0
- package/dist/core/validityTypes.d.ts +100 -0
- package/dist/core/validityTypes.d.ts.map +1 -0
- package/dist/core.cjs +52 -11
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +118 -75
- package/dist/{curveFns-mROFhiuG.js → curveFns-1u0oZ0u0.js} +14 -14
- package/dist/{curveFns-BZngcnQ1.cjs → curveFns-BwLvO_Ia.cjs} +2 -2
- package/dist/{drawFns-Bwakrq7w.js → drawFns-B0na6sbo.js} +16 -16
- package/dist/{drawFns-CjRc1NfQ.cjs → drawFns-CzlEePor.cjs} +18 -18
- package/dist/{faceFns-DB1Fc5gy.cjs → faceFns-BAKkZG6D.cjs} +2 -2
- package/dist/{faceFns-B8GnxjdY.js → faceFns-DGMp47Os.js} +3 -3
- package/dist/{helpers-C8NoT0Wu.cjs → helpers-DVdscQxW.cjs} +73 -8
- package/dist/{helpers-X0juxnwj.js → helpers-sJjnIXDA.js} +85 -20
- package/dist/index.d.ts +10 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/io.cjs +4 -4
- package/dist/io.js +4 -4
- package/dist/kernel/brepkit/booleanOps.d.ts +23 -0
- package/dist/kernel/brepkit/booleanOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/constructionOps.d.ts +51 -0
- package/dist/kernel/brepkit/constructionOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/evolutionOps.d.ts +31 -0
- package/dist/kernel/brepkit/evolutionOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/geometryOps.d.ts +56 -0
- package/dist/kernel/brepkit/geometryOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/helpers.d.ts +84 -0
- package/dist/kernel/brepkit/helpers.d.ts.map +1 -0
- package/dist/kernel/brepkit/internalOps.d.ts +28 -0
- package/dist/kernel/brepkit/internalOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/ioOps.d.ts +43 -0
- package/dist/kernel/brepkit/ioOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/measureOps.d.ts +30 -0
- package/dist/kernel/brepkit/measureOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/meshOps.d.ts +7 -0
- package/dist/kernel/brepkit/meshOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/modifierOps.d.ts +15 -0
- package/dist/kernel/brepkit/modifierOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/repairOps.d.ts +14 -0
- package/dist/kernel/brepkit/repairOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/sweepOps.d.ts +27 -0
- package/dist/kernel/brepkit/sweepOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/topologyOps.d.ts +16 -0
- package/dist/kernel/brepkit/topologyOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/transformOps.d.ts +14 -0
- package/dist/kernel/brepkit/transformOps.d.ts.map +1 -0
- package/dist/kernel/brepkitAdapter.d.ts +1 -1
- package/dist/kernel/brepkitAdapter.d.ts.map +1 -1
- package/dist/kernel/brepkitWasmTypes.d.ts +8 -0
- package/dist/kernel/brepkitWasmTypes.d.ts.map +1 -1
- package/dist/kernel/defaultAdapter.d.ts.map +1 -1
- package/dist/kernel/extendedConstructorOps.d.ts +9 -1
- package/dist/kernel/extendedConstructorOps.d.ts.map +1 -1
- package/dist/kernel/index.d.ts +1 -0
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/interfaces/boolean-ops.d.ts +25 -0
- package/dist/kernel/interfaces/boolean-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/construction-ops.d.ts +76 -0
- package/dist/kernel/interfaces/construction-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/core.d.ts +45 -0
- package/dist/kernel/interfaces/core.d.ts.map +1 -0
- package/dist/kernel/interfaces/evolution-ops.d.ts +19 -0
- package/dist/kernel/interfaces/evolution-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/geometry-ops.d.ts +77 -0
- package/dist/kernel/interfaces/geometry-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/index.d.ts +29 -0
- package/dist/kernel/interfaces/index.d.ts.map +1 -0
- package/dist/kernel/interfaces/io-ops.d.ts +66 -0
- package/dist/kernel/interfaces/io-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/measure-ops.d.ts +35 -0
- package/dist/kernel/interfaces/measure-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/mesh-ops.d.ts +21 -0
- package/dist/kernel/interfaces/mesh-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/modifier-ops.d.ts +22 -0
- package/dist/kernel/interfaces/modifier-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/repair-ops.d.ts +36 -0
- package/dist/kernel/interfaces/repair-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/sweep-ops.d.ts +49 -0
- package/dist/kernel/interfaces/sweep-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/topology-ops.d.ts +30 -0
- package/dist/kernel/interfaces/topology-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/transform-ops.d.ts +20 -0
- package/dist/kernel/interfaces/transform-ops.d.ts.map +1 -0
- package/dist/kernel/modifierOps.d.ts +2 -2
- package/dist/kernel/modifierOps.d.ts.map +1 -1
- package/dist/kernel/types.d.ts +2 -446
- package/dist/kernel/types.d.ts.map +1 -1
- package/dist/{loft-hp3pc1M7.cjs → loft-BNvBZzqe.cjs} +5 -5
- package/dist/{loft-Bhw-FMoL.js → loft-D0aCZRaB.js} +7 -7
- package/dist/measurement/measureFns.d.ts +2 -2
- package/dist/measurement/measureFns.d.ts.map +1 -1
- package/dist/{measurement-D8EJ694A.js → measurement-C7o5jE6G.js} +2 -2
- package/dist/{measurement-BoNTUBAp.cjs → measurement-DZcaxo1A.cjs} +2 -2
- package/dist/measurement.cjs +1 -1
- package/dist/measurement.js +1 -1
- package/dist/{meshFns-BnV0ZR8w.cjs → meshFns-7dgZgNYK.cjs} +4 -4
- package/dist/{meshFns-nQjK38EC.js → meshFns-CtUl9fGY.js} +3 -3
- package/dist/operations/compoundOpsFns.d.ts +38 -0
- package/dist/operations/compoundOpsFns.d.ts.map +1 -0
- package/dist/operations/extrude.d.ts +2 -12
- package/dist/operations/extrude.d.ts.map +1 -1
- package/dist/operations/extrudeFns.d.ts +2 -93
- package/dist/operations/extrudeFns.d.ts.map +1 -1
- package/dist/operations/guidedSweepFns.d.ts +3 -22
- package/dist/operations/guidedSweepFns.d.ts.map +1 -1
- package/dist/operations/loft.d.ts +2 -16
- package/dist/operations/loft.d.ts.map +1 -1
- package/dist/operations/multiSweepFns.d.ts +3 -29
- package/dist/operations/multiSweepFns.d.ts.map +1 -1
- package/dist/operations/roofFns.d.ts +2 -2
- package/dist/operations/roofFns.d.ts.map +1 -1
- package/dist/operations/sweepFns.d.ts +121 -0
- package/dist/operations/sweepFns.d.ts.map +1 -0
- package/dist/{operations-BfbkK6DU.js → operations-DisJ5F8s.js} +110 -57
- package/dist/{operations-CYpmLSC4.cjs → operations-DwZ-RBO1.cjs} +97 -44
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +14 -14
- package/dist/originTrackingFns-NJ1dWoiF.js +137 -0
- package/dist/originTrackingFns-dhaCe8Yb.cjs +136 -0
- package/dist/query/edgeFinder.d.ts +4 -14
- package/dist/query/edgeFinder.d.ts.map +1 -1
- package/dist/query/faceFinder.d.ts +4 -14
- package/dist/query/faceFinder.d.ts.map +1 -1
- package/dist/query/finderCore.d.ts +6 -0
- package/dist/query/finderCore.d.ts.map +1 -1
- package/dist/query/shapeFinders.d.ts +32 -0
- package/dist/query/shapeFinders.d.ts.map +1 -0
- package/dist/query/wireFinder.d.ts +4 -9
- package/dist/query/wireFinder.d.ts.map +1 -1
- package/dist/query.cjs +54 -32
- package/dist/query.js +56 -34
- package/dist/{result-fAX0OZzI.cjs → result-DJAAj1yb.cjs} +8 -59
- package/dist/{result-BaSD1fqR.js → result-DtuwWSUD.js} +38 -89
- package/dist/result.cjs +1 -1
- package/dist/result.js +22 -22
- package/dist/shapeFns-BJbua5kT.js +34 -0
- package/dist/shapeFns-w9tWELHX.cjs +33 -0
- package/dist/{shapeTypes-CpSaBLDv.js → shapeTypes-CAEAyk8j.js} +233 -172
- package/dist/{shapeTypes-7xEam9Ri.cjs → shapeTypes-owrg2MNK.cjs} +421 -360
- package/dist/sketching/Sketcher.d.ts.map +1 -1
- package/dist/sketching.cjs +2 -2
- package/dist/sketching.js +2 -2
- package/dist/{solidBuilders-994_MQwB.cjs → solidBuilders-BLQ4I6Ig.cjs} +3 -3
- package/dist/{solidBuilders-DmwhTCCd.js → solidBuilders-BS-1220W.js} +3 -3
- package/dist/{surfaceBuilders-nQdJ56fe.js → surfaceBuilders-Dj6AjhOv.js} +7 -7
- package/dist/{surfaceBuilders-5VA34a3_.cjs → surfaceBuilders-KU_7OD2q.cjs} +3 -3
- package/dist/topology/booleanFns.d.ts.map +1 -1
- package/dist/topology/compoundOpsFns.d.ts +3 -35
- package/dist/topology/compoundOpsFns.d.ts.map +1 -1
- package/dist/topology/index.d.ts +0 -1
- package/dist/topology/index.d.ts.map +1 -1
- package/dist/topology/metadataPropagation.d.ts +30 -0
- package/dist/topology/metadataPropagation.d.ts.map +1 -0
- package/dist/topology/modifierFns.d.ts.map +1 -1
- package/dist/topology/originTrackingFns.d.ts +23 -0
- package/dist/topology/originTrackingFns.d.ts.map +1 -0
- package/dist/topology/shapeFns.d.ts +6 -120
- package/dist/topology/shapeFns.d.ts.map +1 -1
- package/dist/topology/topologyQueryFns.d.ts +67 -0
- package/dist/topology/topologyQueryFns.d.ts.map +1 -0
- package/dist/topology/transformFns.d.ts +49 -0
- package/dist/topology/transformFns.d.ts.map +1 -0
- package/dist/topology/wrapperFns.d.ts.map +1 -1
- package/dist/{topology-ANwCzGL8.cjs → topology-CyPHYYjV.cjs} +205 -20
- package/dist/{topology-C7x98OVn.js → topology-D6LeuhI_.js} +235 -50
- package/dist/topology.cjs +18 -17
- package/dist/topology.js +92 -91
- package/dist/topologyQueryFns-De439iBP.js +119 -0
- package/dist/topologyQueryFns-fz5kz5e1.cjs +118 -0
- package/dist/{types-CWDdqcrq.js → types-CcKqsmd0.js} +2 -2
- package/dist/utils/precisionRound.d.ts +4 -0
- package/dist/utils/precisionRound.d.ts.map +1 -1
- package/dist/utils/vec2d.d.ts +5 -0
- package/dist/utils/vec2d.d.ts.map +1 -1
- package/dist/{vecOps-ZDdZWbwT.js → vecOps-LTN--A58.js} +15 -15
- package/dist/{vectors-D_IiZx0q.cjs → vectors-C8N_QeEX.cjs} +9 -1
- package/dist/{vectors-Bx8wkNui.js → vectors-DTREgnVp.js} +15 -7
- package/dist/vectors.cjs +1 -1
- package/dist/vectors.js +23 -23
- package/package.json +3 -3
- package/dist/core/geometryHelpers.d.ts +0 -30
- package/dist/core/geometryHelpers.d.ts.map +0 -1
- package/dist/core/memory.d.ts +0 -6
- package/dist/core/memory.d.ts.map +0 -1
- package/dist/core/typeErrors.d.ts +0 -17
- package/dist/core/typeErrors.d.ts.map +0 -1
- package/dist/cornerFinder-Ckz-mPHE.js +0 -59
- package/dist/cornerFinder-ZmOyOOsh.cjs +0 -58
- package/dist/shapeFns-C2SnNvdH.cjs +0 -468
- package/dist/shapeFns-FDuKkrDR.js +0 -469
- package/dist/utils/round2.d.ts +0 -3
- package/dist/utils/round2.d.ts.map +0 -1
- package/dist/utils/round5.d.ts +0 -3
- package/dist/utils/round5.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sketcher.d.ts","sourceRoot":"","sources":["../../src/sketching/Sketcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAQ1E,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Sketcher.d.ts","sourceRoot":"","sources":["../../src/sketching/Sketcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAQ1E,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAKlD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,cAAe,YAAW,eAAe,CAAC,MAAM,CAAC;IACrF,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAEvB;;;;OAIG;gBACS,KAAK,EAAE,KAAK;gBACZ,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAO3D,gGAAgG;IAChG,MAAM,IAAI,IAAI;IAId;;;;;;;OAOG;IACM,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1D,SAAS,CAAC,SAAS,IAAI,IAAI;IAU3B,gFAAgF;IAChF,IAAI,IAAI,MAAM;IAOd,oFAAoF;IACpF,KAAK,IAAI,MAAM;IAKf;;;;;OAKG;IACH,eAAe,IAAI,MAAM;IA4BzB;;;;;;OAMG;IACH,qBAAqB,CACnB,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC,EACxD,IAAI,GAAE,QAAQ,GAAG,SAAS,GAAG,SAAoB,GAChD,MAAM;CAKV"}
|
package/dist/sketching.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const drawFns = require("./drawFns-
|
|
4
|
-
const boolean2D = require("./boolean2D-
|
|
3
|
+
const drawFns = require("./drawFns-CzlEePor.cjs");
|
|
4
|
+
const boolean2D = require("./boolean2D-9OnbotKT.cjs");
|
|
5
5
|
exports.CompoundSketch = drawFns.CompoundSketch;
|
|
6
6
|
exports.Drawing = drawFns.Drawing;
|
|
7
7
|
exports.DrawingPen = drawFns.DrawingPen;
|
package/dist/sketching.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C, D, a, S, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W } from "./drawFns-
|
|
2
|
-
import { B as B2, a as a2, F as F2, S as S2 } from "./boolean2D-
|
|
1
|
+
import { C, D, a, S, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W } from "./drawFns-B0na6sbo.js";
|
|
2
|
+
import { B as B2, a as a2, F as F2, S as S2 } from "./boolean2D-CR4efa35.js";
|
|
3
3
|
export {
|
|
4
4
|
B2 as BaseSketcher2d,
|
|
5
5
|
a2 as BlueprintSketcher,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const shapeTypes = require("./shapeTypes-
|
|
3
|
-
const result = require("./result-
|
|
4
|
-
const faceFns = require("./faceFns-
|
|
2
|
+
const shapeTypes = require("./shapeTypes-owrg2MNK.cjs");
|
|
3
|
+
const result = require("./result-DJAAj1yb.cjs");
|
|
4
|
+
const faceFns = require("./faceFns-BAKkZG6D.cjs");
|
|
5
5
|
function weldShapes(facesOrShells) {
|
|
6
6
|
const sewn = shapeTypes.getKernel().sew(facesOrShells.map((s) => s.wrapped));
|
|
7
7
|
return result.unwrap(faceFns.cast(result.unwrap(faceFns.downcast(sewn))));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { c as cast, d as downcast } from "./faceFns-
|
|
1
|
+
import { g as getKernel, d as isShell, e as createCompound, f as createVertex, h as createSolid, j as isShape3D, k as isSolid } from "./shapeTypes-CAEAyk8j.js";
|
|
2
|
+
import { u as unwrap, e as err, t as typeCastError, o as ok, a as andThen } from "./result-DtuwWSUD.js";
|
|
3
|
+
import { c as cast, d as downcast } from "./faceFns-DGMp47Os.js";
|
|
4
4
|
function weldShapes(facesOrShells) {
|
|
5
5
|
const sewn = getKernel().sew(facesOrShells.map((s) => s.wrapped));
|
|
6
6
|
return unwrap(cast(unwrap(downcast(sewn))));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { o as ok, e as err, k as kernelError,
|
|
3
|
-
import { o as outerWire, c as cast } from "./faceFns-
|
|
1
|
+
import { l as createWire, g as getKernel, m as createEdge, n as createFace, o as isFace } from "./shapeTypes-CAEAyk8j.js";
|
|
2
|
+
import { o as ok, e as err, k as kernelError, v as validationError, a as andThen } from "./result-DtuwWSUD.js";
|
|
3
|
+
import { o as outerWire, c as cast } from "./faceFns-DGMp47Os.js";
|
|
4
4
|
function range(len) {
|
|
5
5
|
return Array.from(Array(len).keys());
|
|
6
6
|
}
|
|
@@ -158,9 +158,9 @@ function makePolygon(points) {
|
|
|
158
158
|
return andThen(assembleWire(edges), (wire) => makeFace(wire));
|
|
159
159
|
}
|
|
160
160
|
export {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
assembleWire as a,
|
|
162
|
+
makeHelix as b,
|
|
163
|
+
makeFace as c,
|
|
164
164
|
addHolesInFace as d,
|
|
165
165
|
makeCircle as e,
|
|
166
166
|
makeEllipse as f,
|
|
@@ -170,7 +170,7 @@ export {
|
|
|
170
170
|
makeBezierCurve as j,
|
|
171
171
|
makeEllipseArc as k,
|
|
172
172
|
makeNonPlanarFace as l,
|
|
173
|
-
|
|
173
|
+
makeLine as m,
|
|
174
174
|
makePolygon as n,
|
|
175
175
|
makeTangentArc as o,
|
|
176
176
|
makeThreePointArc as p,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const shapeTypes = require("./shapeTypes-
|
|
3
|
-
const result = require("./result-
|
|
4
|
-
const faceFns = require("./faceFns-
|
|
2
|
+
const shapeTypes = require("./shapeTypes-owrg2MNK.cjs");
|
|
3
|
+
const result = require("./result-DJAAj1yb.cjs");
|
|
4
|
+
const faceFns = require("./faceFns-BAKkZG6D.cjs");
|
|
5
5
|
function range(len) {
|
|
6
6
|
return Array.from(Array(len).keys());
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booleanFns.d.ts","sourceRoot":"","sources":["../../src/topology/booleanFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,QAAQ,EAER,SAAS,EACT,YAAY,EACZ,OAAO,EAER,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"booleanFns.d.ts","sourceRoot":"","sources":["../../src/topology/booleanFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,QAAQ,EAER,SAAS,EACT,YAAY,EACZ,OAAO,EAER,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA8BxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,CAAC;AAiC/B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GACnF,MAAM,CAAC,OAAO,CAAC,CAmBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GACnF,MAAM,CAAC,OAAO,CAAC,CAmBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GAC5D,MAAM,CAAC,OAAO,CAAC,CAuBjB;AAiED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EAAE,EACjB,EACE,YAAqB,EACrB,QAAgB,EAChB,QAAmB,EACnB,MAAM,EACN,UAAU,GACX,GAAE,cAAmB,GACrB,MAAM,CAAC,OAAO,CAAC,CA2CjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GACnF,MAAM,CAAC,OAAO,CAAC,CAwBjB;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,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,SAAS,CAAC,CAAC,CAyB7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,YAAY,CAAC,CAsGtB;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAiC7B;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAQ/B"}
|
|
@@ -1,38 +1,6 @@
|
|
|
1
|
-
import { Result } from '../core/result.js';
|
|
2
|
-
import { Shape3D } from '../core/shapeTypes.js';
|
|
3
|
-
import { Shapeable, DrillOptions, PocketOptions, BossOptions, MirrorJoinOptions, RectangularPatternOptions } from './apiTypes.js';
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Creates a cylinder at the specified position and cuts it from the shape.
|
|
8
|
-
* If no depth is given, cuts all the way through (computed from bounding box).
|
|
2
|
+
* Re-exports from `../operations/compoundOpsFns.js` for backward compatibility.
|
|
3
|
+
* compoundOps properly belongs in operations/ since it depends on operations.
|
|
9
4
|
*/
|
|
10
|
-
export
|
|
11
|
-
/**
|
|
12
|
-
* Cut a pocket (2D profile extruded inward) into a shape.
|
|
13
|
-
*
|
|
14
|
-
* The profile (Drawing or Wire) is positioned on the target face and extruded
|
|
15
|
-
* inward by the specified depth, then subtracted from the shape.
|
|
16
|
-
*/
|
|
17
|
-
export declare function pocket<T extends Shape3D>(shape: Shapeable<T>, options: PocketOptions): Result<T>;
|
|
18
|
-
/**
|
|
19
|
-
* Add a boss (2D profile extruded outward) onto a shape.
|
|
20
|
-
*
|
|
21
|
-
* The profile (Drawing or Wire) is positioned on the target face and extruded
|
|
22
|
-
* outward by the specified height, then fused with the shape.
|
|
23
|
-
*/
|
|
24
|
-
export declare function boss<T extends Shape3D>(shape: Shapeable<T>, options: BossOptions): Result<T>;
|
|
25
|
-
/**
|
|
26
|
-
* Mirror a shape and fuse it with the original.
|
|
27
|
-
*
|
|
28
|
-
* Common pattern: model half a part, then mirror-join for symmetry.
|
|
29
|
-
*/
|
|
30
|
-
export declare function mirrorJoin<T extends Shape3D>(shape: Shapeable<T>, options?: MirrorJoinOptions): Result<T>;
|
|
31
|
-
/**
|
|
32
|
-
* Create a rectangular (2D grid) pattern of a shape.
|
|
33
|
-
*
|
|
34
|
-
* Replicates the shape along two directions with specified counts and spacings,
|
|
35
|
-
* then fuses all copies into a single shape.
|
|
36
|
-
*/
|
|
37
|
-
export declare function rectangularPattern<T extends Shape3D>(shape: Shapeable<T>, options: RectangularPatternOptions): Result<T>;
|
|
5
|
+
export { drill, pocket, boss, mirrorJoin, rectangularPattern, } from '../operations/compoundOpsFns.js';
|
|
38
6
|
//# sourceMappingURL=compoundOpsFns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compoundOpsFns.d.ts","sourceRoot":"","sources":["../../src/topology/compoundOpsFns.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compoundOpsFns.d.ts","sourceRoot":"","sources":["../../src/topology/compoundOpsFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,UAAU,EACV,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
|
package/dist/topology/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
export { cast, downcast, shapeType, iterTopo, asTopo, isShape3D, isWire, isCompSolid, fromBREP as deserializeShape, type TopoEntity, type GenericTopo, } from './cast.js';
|
|
5
5
|
export { applyGlue } from './shapeBooleans.js';
|
|
6
6
|
export { isNumber, isChamferRadius, isFilletRadius, type ChamferRadius, type FilletRadius, type RadiusOptions, } from './shapeModifiers.js';
|
|
7
|
-
export type { AnyShape, Shape3D, CurveLike } from '../core/shapeTypes.js';
|
|
8
7
|
export type { CurveType } from '../core/definitionMaps.js';
|
|
9
8
|
export { getHashCode, isSameShape, isEqualShape, getEdges, getFaces, getWires, iterEdges, iterFaces, iterWires, getBounds, vertexPosition, type Bounds3D, } from './shapeFns.js';
|
|
10
9
|
export { getCurveType, curveStartPoint, curveEndPoint, curvePointAt, curveTangentAt, curveLength, curveIsClosed, curveIsPeriodic, curvePeriod, getOrientation, flipOrientation, offsetWire2D, } from './curveFns.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAI7B,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAI7B,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,cAAc,EACd,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ShapeEvolution } from '../kernel/types.js';
|
|
2
|
+
import { AnyShape, Dimension } from '../core/shapeTypes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Collect ALL face hashes from input shapes for WithHistory kernel methods.
|
|
5
|
+
*
|
|
6
|
+
* Fast-path: returns empty array when no inputs have any metadata (origins,
|
|
7
|
+
* tags, or colors), avoiding expensive WASM topology exploration.
|
|
8
|
+
*/
|
|
9
|
+
export declare function collectInputFaceHashes(inputs: readonly AnyShape<Dimension>[]): number[];
|
|
10
|
+
/**
|
|
11
|
+
* Propagate all metadata (origins, tags, colors) from inputs to result
|
|
12
|
+
* using a kernel-provided ShapeEvolution record.
|
|
13
|
+
*
|
|
14
|
+
* This is the standard pipeline for any operation that returns
|
|
15
|
+
* `{ shape, evolution }` from a WithHistory kernel method.
|
|
16
|
+
*/
|
|
17
|
+
export declare function propagateAllMetadata(evolution: ShapeEvolution, inputs: readonly AnyShape<Dimension>[], result: AnyShape<Dimension>): void;
|
|
18
|
+
/**
|
|
19
|
+
* Fallback metadata propagation when no ShapeEvolution is available.
|
|
20
|
+
*
|
|
21
|
+
* Matches result faces to input faces by hash code (and geometric fallback).
|
|
22
|
+
* Used by operations that don't support WithHistory (e.g., native fuseAll).
|
|
23
|
+
*
|
|
24
|
+
* **Limitation:** Only propagates face origins. Face tags and face colors
|
|
25
|
+
* require a ShapeEvolution record to map input→output face hashes, so they
|
|
26
|
+
* are lost through this path. Batch booleans (`fuseAll`, `cutAll`) therefore
|
|
27
|
+
* have weaker metadata guarantees than pairwise booleans (`fuse`, `cut`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function propagateMetadataByHash(inputs: readonly AnyShape<Dimension>[], result: AnyShape<Dimension>): void;
|
|
30
|
+
//# sourceMappingURL=metadataPropagation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadataPropagation.d.ts","sourceRoot":"","sources":["../../src/topology/metadataPropagation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAcjE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,CAgBvF;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,EACtC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC1B,IAAI,CAIN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,EACtC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC1B,IAAI,CAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifierFns.d.ts","sourceRoot":"","sources":["../../src/topology/modifierFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
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;AAG/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,CAmB7E;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,CA4GjB;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,CA+FjB;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,CAoCjB;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CA0B1F"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ShapeEvolution } from '../kernel/types.js';
|
|
2
|
+
import { AnyShape, Dimension } from '../core/shapeTypes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Tag all faces of a shape with an opaque integer origin.
|
|
5
|
+
* Consumers assign meaning (e.g., source line number).
|
|
6
|
+
*/
|
|
7
|
+
export declare function setShapeOrigin(shape: AnyShape<Dimension>, origin: number): void;
|
|
8
|
+
/**
|
|
9
|
+
* Get the face origin map for a shape (faceHash → originTag).
|
|
10
|
+
* Returns undefined if no origins have been set or propagated.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getFaceOrigins(shape: AnyShape<Dimension>): Map<number, number> | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Propagate face origins using a kernel-provided ShapeEvolution record.
|
|
15
|
+
*/
|
|
16
|
+
export declare function propagateOriginsFromEvolution(evolution: ShapeEvolution, inputs: readonly AnyShape<Dimension>[], result: AnyShape<Dimension>): void;
|
|
17
|
+
/**
|
|
18
|
+
* Fallback origin propagation when no kernel op object is available.
|
|
19
|
+
* Matches result faces to input faces by hash code first; if no hash matches
|
|
20
|
+
* are found, falls back to geometric matching (normal + centroid comparison).
|
|
21
|
+
*/
|
|
22
|
+
export declare function propagateOriginsByHash(inputs: readonly AnyShape<Dimension>[], result: AnyShape<Dimension>): void;
|
|
23
|
+
//# sourceMappingURL=originTrackingFns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"originTrackingFns.d.ts","sourceRoot":"","sources":["../../src/topology/originTrackingFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQjE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAE1F;AAMD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,EACtC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC1B,IAAI,CAyCN;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,EACtC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC1B,IAAI,CAsGN"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Vec3, MatrixInput } from '../core/types.js';
|
|
3
|
-
import { AnyShape, Dimension, Edge, Face, Wire, Vertex, ShapeKind } from '../core/shapeTypes.js';
|
|
1
|
+
import { AnyShape, Dimension } from '../core/shapeTypes.js';
|
|
4
2
|
/** Clone a shape (deep copy via kernel topology downcast). */
|
|
5
3
|
export declare function clone<T extends AnyShape<Dimension>>(shape: T): T;
|
|
6
4
|
/** Serialize a shape to BREP string format. */
|
|
@@ -15,121 +13,9 @@ export declare function isSameShape(a: AnyShape<Dimension>, b: AnyShape<Dimensio
|
|
|
15
13
|
export declare function isEqualShape(a: AnyShape<Dimension>, b: AnyShape<Dimension>): boolean;
|
|
16
14
|
/** Simplify a shape by merging same-domain faces/edges. Returns a new shape. */
|
|
17
15
|
export declare function simplify<T extends AnyShape<Dimension>>(shape: T): T;
|
|
18
|
-
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
export declare function mirror<T extends AnyShape<Dimension>>(shape: T, planeNormal?: Vec3, planeOrigin?: Vec3): T;
|
|
24
|
-
/** Scale a shape uniformly. Returns a new shape. */
|
|
25
|
-
export declare function scale<T extends AnyShape<Dimension>>(shape: T, factor: number, center?: Vec3): T;
|
|
26
|
-
/** Resize a shape to exact target dimensions with optional auto-proportional scaling. */
|
|
27
|
-
export declare function resize<T extends AnyShape<Dimension>>(shape: T, dimensions: [number | undefined, number | undefined, number | undefined], options?: {
|
|
28
|
-
auto?: boolean;
|
|
29
|
-
}): T;
|
|
30
|
-
/**
|
|
31
|
-
* Apply a 4x4 affine transformation matrix to a shape.
|
|
32
|
-
* Equivalent to OpenSCAD's `multmatrix`.
|
|
33
|
-
*
|
|
34
|
-
* Uses the fast `kernel transform` path for orthogonal matrices (rotation, uniform scale, mirror)
|
|
35
|
-
* and the general `gp_GTrsf` path for non-orthogonal transforms (shear, non-uniform scale).
|
|
36
|
-
*/
|
|
37
|
-
export declare function applyMatrix<T extends AnyShape<Dimension>>(shape: T, matrix: MatrixInput): T;
|
|
38
|
-
/** A single transform operation: translate or rotate. */
|
|
39
|
-
export type TransformOp = {
|
|
40
|
-
readonly type: 'translate';
|
|
41
|
-
readonly v: Vec3;
|
|
42
|
-
} | {
|
|
43
|
-
readonly type: 'rotate';
|
|
44
|
-
readonly angle: number;
|
|
45
|
-
readonly axis?: Vec3;
|
|
46
|
-
readonly center?: Vec3;
|
|
47
|
-
};
|
|
48
|
-
/** An kernel kernel transform with a cleanup function. Call `cleanup()` when done. */
|
|
49
|
-
export interface ComposedTransform {
|
|
50
|
-
readonly trsf: any;
|
|
51
|
-
readonly cleanup: () => void;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Compose multiple translate/rotate operations into a single kernel kernel transform.
|
|
55
|
-
* Operations are applied in order (first element applied first).
|
|
56
|
-
* Call `.cleanup()` on the result when done to free the kernel object.
|
|
57
|
-
*/
|
|
58
|
-
export declare function composeTransforms(ops: readonly TransformOp[]): ComposedTransform;
|
|
59
|
-
/**
|
|
60
|
-
* Clone a shape and apply a pre-composed transform in a single kernel operation.
|
|
61
|
-
* Much faster than separate clone() + translate() + rotate() calls.
|
|
62
|
-
*/
|
|
63
|
-
export declare function transformCopy<T extends AnyShape<Dimension>>(shape: T, composed: ComposedTransform): T;
|
|
64
|
-
/**
|
|
65
|
-
* Invalidate cached topology data for a shape.
|
|
66
|
-
* Call this after operations that modify a shape in-place (e.g., unifyFaces).
|
|
67
|
-
*/
|
|
68
|
-
export declare function invalidateShapeCache(shape: AnyShape<Dimension>): void;
|
|
69
|
-
/** Get all edges of a shape as branded Edge handles. Results are cached per shape. */
|
|
70
|
-
export declare function getEdges<D extends Dimension>(shape: AnyShape<D>): Edge<D>[];
|
|
71
|
-
/**
|
|
72
|
-
* Get all faces of a shape. Results are cached per shape.
|
|
73
|
-
*
|
|
74
|
-
* Returns `Face[]` — use `isOrientedFace()` or `orientedFace()` to narrow
|
|
75
|
-
* individual faces to `OrientedFace` when the orientation guarantee is needed.
|
|
76
|
-
*/
|
|
77
|
-
export declare function getFaces<D extends Dimension>(shape: AnyShape<D>): Face<D>[];
|
|
78
|
-
/** Get all wires of a shape as branded Wire handles. Results are cached per shape. */
|
|
79
|
-
export declare function getWires<D extends Dimension>(shape: AnyShape<D>): Wire<D>[];
|
|
80
|
-
/**
|
|
81
|
-
* Tag all faces of a shape with an opaque integer origin.
|
|
82
|
-
* Consumers assign meaning (e.g., source line number).
|
|
83
|
-
*/
|
|
84
|
-
export declare function setShapeOrigin(shape: AnyShape<Dimension>, origin: number): void;
|
|
85
|
-
/**
|
|
86
|
-
* Get the face origin map for a shape (faceHash → originTag).
|
|
87
|
-
* Returns undefined if no origins have been set or propagated.
|
|
88
|
-
*/
|
|
89
|
-
export declare function getFaceOrigins(shape: AnyShape<Dimension>): Map<number, number> | undefined;
|
|
90
|
-
/**
|
|
91
|
-
* Propagate face origins using a kernel-provided ShapeEvolution record.
|
|
92
|
-
*/
|
|
93
|
-
export declare function propagateOriginsFromEvolution(evolution: ShapeEvolution, inputs: AnyShape<Dimension>[], result: AnyShape<Dimension>): void;
|
|
94
|
-
/**
|
|
95
|
-
* Fallback origin propagation when no kernel op object is available.
|
|
96
|
-
* Matches result faces to input faces by hash code first; if no hash matches
|
|
97
|
-
* are found, falls back to geometric matching (normal + centroid comparison).
|
|
98
|
-
*/
|
|
99
|
-
export declare function propagateOriginsByHash(inputs: AnyShape<Dimension>[], result: AnyShape<Dimension>): void;
|
|
100
|
-
/** Get all vertices of a shape as branded Vertex handles. Results are cached per shape. */
|
|
101
|
-
export declare function getVertices<D extends Dimension>(shape: AnyShape<D>): Vertex<D>[];
|
|
102
|
-
/** Lazily iterate edges of a shape, yielding branded Edge handles one at a time. */
|
|
103
|
-
export declare function iterEdges<D extends Dimension>(shape: AnyShape<D>): Generator<Edge<D>>;
|
|
104
|
-
/** Lazily iterate faces of a shape, yielding branded Face handles one at a time. */
|
|
105
|
-
export declare function iterFaces<D extends Dimension>(shape: AnyShape<D>): Generator<Face<D>>;
|
|
106
|
-
/** Lazily iterate wires of a shape, yielding branded Wire handles one at a time. */
|
|
107
|
-
export declare function iterWires<D extends Dimension>(shape: AnyShape<D>): Generator<Wire<D>>;
|
|
108
|
-
/** Lazily iterate vertices of a shape, yielding branded Vertex handles one at a time. */
|
|
109
|
-
export declare function iterVertices<D extends Dimension>(shape: AnyShape<D>): Generator<Vertex<D>>;
|
|
110
|
-
/** Bounding box as a plain object. */
|
|
111
|
-
export interface Bounds3D {
|
|
112
|
-
readonly xMin: number;
|
|
113
|
-
readonly xMax: number;
|
|
114
|
-
readonly yMin: number;
|
|
115
|
-
readonly yMax: number;
|
|
116
|
-
readonly zMin: number;
|
|
117
|
-
readonly zMax: number;
|
|
118
|
-
}
|
|
119
|
-
/** Get the axis-aligned bounding box of a shape. Cached per shape. */
|
|
120
|
-
export declare function getBounds(shape: AnyShape<Dimension>): Bounds3D;
|
|
121
|
-
/** A summary of a shape's topology, geometry, and validity. */
|
|
122
|
-
export interface ShapeDescription {
|
|
123
|
-
readonly kind: ShapeKind;
|
|
124
|
-
readonly faceCount: number;
|
|
125
|
-
readonly edgeCount: number;
|
|
126
|
-
readonly wireCount: number;
|
|
127
|
-
readonly vertexCount: number;
|
|
128
|
-
readonly valid: boolean;
|
|
129
|
-
readonly bounds: Bounds3D;
|
|
130
|
-
}
|
|
131
|
-
/** Get a quick summary of a shape for debugging and inspection. */
|
|
132
|
-
export declare function describe(shape: AnyShape<Dimension>): ShapeDescription;
|
|
133
|
-
/** Get the position of a vertex as a Vec3 tuple. */
|
|
134
|
-
export declare function vertexPosition(vertex: Vertex): Vec3;
|
|
16
|
+
export { translate, rotate, mirror, scale, resize, applyMatrix, composeTransforms, transformCopy, } from './transformFns.js';
|
|
17
|
+
export type { TransformOp, ComposedTransform } from './transformFns.js';
|
|
18
|
+
export { getEdges, getFaces, getWires, getVertices, iterEdges, iterFaces, iterWires, iterVertices, getBounds, describe, vertexPosition, invalidateShapeCache, } from './topologyQueryFns.js';
|
|
19
|
+
export type { Bounds3D, ShapeDescription } from './topologyQueryFns.js';
|
|
20
|
+
export { setShapeOrigin, getFaceOrigins, propagateOriginsFromEvolution, propagateOriginsByHash, } from './originTrackingFns.js';
|
|
135
21
|
//# sourceMappingURL=shapeFns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapeFns.d.ts","sourceRoot":"","sources":["../../src/topology/shapeFns.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shapeFns.d.ts","sourceRoot":"","sources":["../../src/topology/shapeFns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAUjE,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEhE;AAED,+CAA+C;AAC/C,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAEzD;AAED,6CAA6C;AAC7C,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAE9D;AAED,gCAAgC;AAChC,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAE3D;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAEnF;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAEpF;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEnE;AAMD,OAAO,EACL,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,cAAc,EACd,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EACL,cAAc,EACd,cAAc,EACd,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { AnyShape, Dimension, Edge, Face, Wire, Vertex, ShapeKind } from '../core/shapeTypes.js';
|
|
2
|
+
import { Vec3 } from '../core/types.js';
|
|
3
|
+
/** @internal Cache entry type — exported for originTrackingFns. */
|
|
4
|
+
export interface TopoCacheEntry {
|
|
5
|
+
edges?: Edge<Dimension>[];
|
|
6
|
+
faces?: Face<Dimension>[];
|
|
7
|
+
wires?: Wire<Dimension>[];
|
|
8
|
+
vertices?: Vertex<Dimension>[];
|
|
9
|
+
faceOrigins?: Map<number, number>;
|
|
10
|
+
bounds?: Bounds3D;
|
|
11
|
+
}
|
|
12
|
+
/** @internal Get or create a cache entry for a shape. Used by originTrackingFns. */
|
|
13
|
+
export declare function getOrCreateCache(shape: AnyShape<Dimension>): TopoCacheEntry;
|
|
14
|
+
/** @internal Direct cache access. Used by originTrackingFns for getFaceOrigins. */
|
|
15
|
+
export declare function getCacheEntry(shape: AnyShape<Dimension>): TopoCacheEntry | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Invalidate cached topology data for a shape.
|
|
18
|
+
* Call this after operations that modify a shape in-place (e.g., unifyFaces).
|
|
19
|
+
*/
|
|
20
|
+
export declare function invalidateShapeCache(shape: AnyShape<Dimension>): void;
|
|
21
|
+
/** Get all edges of a shape as branded Edge handles. Results are cached per shape. */
|
|
22
|
+
export declare function getEdges<D extends Dimension>(shape: AnyShape<D>): Edge<D>[];
|
|
23
|
+
/**
|
|
24
|
+
* Get all faces of a shape. Results are cached per shape.
|
|
25
|
+
*
|
|
26
|
+
* Returns `Face[]` — use `isOrientedFace()` or `orientedFace()` to narrow
|
|
27
|
+
* individual faces to `OrientedFace` when the orientation guarantee is needed.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getFaces<D extends Dimension>(shape: AnyShape<D>): Face<D>[];
|
|
30
|
+
/** Get all wires of a shape as branded Wire handles. Results are cached per shape. */
|
|
31
|
+
export declare function getWires<D extends Dimension>(shape: AnyShape<D>): Wire<D>[];
|
|
32
|
+
/** Get all vertices of a shape as branded Vertex handles. Results are cached per shape. */
|
|
33
|
+
export declare function getVertices<D extends Dimension>(shape: AnyShape<D>): Vertex<D>[];
|
|
34
|
+
/** Lazily iterate edges of a shape, yielding branded Edge handles one at a time. */
|
|
35
|
+
export declare function iterEdges<D extends Dimension>(shape: AnyShape<D>): Generator<Edge<D>>;
|
|
36
|
+
/** Lazily iterate faces of a shape, yielding branded Face handles one at a time. */
|
|
37
|
+
export declare function iterFaces<D extends Dimension>(shape: AnyShape<D>): Generator<Face<D>>;
|
|
38
|
+
/** Lazily iterate wires of a shape, yielding branded Wire handles one at a time. */
|
|
39
|
+
export declare function iterWires<D extends Dimension>(shape: AnyShape<D>): Generator<Wire<D>>;
|
|
40
|
+
/** Lazily iterate vertices of a shape, yielding branded Vertex handles one at a time. */
|
|
41
|
+
export declare function iterVertices<D extends Dimension>(shape: AnyShape<D>): Generator<Vertex<D>>;
|
|
42
|
+
/** Bounding box as a plain object. */
|
|
43
|
+
export interface Bounds3D {
|
|
44
|
+
readonly xMin: number;
|
|
45
|
+
readonly xMax: number;
|
|
46
|
+
readonly yMin: number;
|
|
47
|
+
readonly yMax: number;
|
|
48
|
+
readonly zMin: number;
|
|
49
|
+
readonly zMax: number;
|
|
50
|
+
}
|
|
51
|
+
/** Get the axis-aligned bounding box of a shape. Cached per shape. */
|
|
52
|
+
export declare function getBounds(shape: AnyShape<Dimension>): Bounds3D;
|
|
53
|
+
/** A summary of a shape's topology, geometry, and validity. */
|
|
54
|
+
export interface ShapeDescription {
|
|
55
|
+
readonly kind: ShapeKind;
|
|
56
|
+
readonly faceCount: number;
|
|
57
|
+
readonly edgeCount: number;
|
|
58
|
+
readonly wireCount: number;
|
|
59
|
+
readonly vertexCount: number;
|
|
60
|
+
readonly valid: boolean;
|
|
61
|
+
readonly bounds: Bounds3D;
|
|
62
|
+
}
|
|
63
|
+
/** Get a quick summary of a shape for debugging and inspection. */
|
|
64
|
+
export declare function describe(shape: AnyShape<Dimension>): ShapeDescription;
|
|
65
|
+
/** Get the position of a vertex as a Vec3 tuple. */
|
|
66
|
+
export declare function vertexPosition(vertex: Vertex): Vec3;
|
|
67
|
+
//# sourceMappingURL=topologyQueryFns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topologyQueryFns.d.ts","sourceRoot":"","sources":["../../src/topology/topologyQueryFns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Vec3, MatrixInput } from '../core/types.js';
|
|
2
|
+
import { AnyShape, Dimension } from '../core/shapeTypes.js';
|
|
3
|
+
/** Translate a shape by a vector. Returns a new shape. */
|
|
4
|
+
export declare function translate<T extends AnyShape<Dimension>>(shape: T, v: Vec3): T;
|
|
5
|
+
/** Rotate a shape around an axis. Angle is in degrees. Returns a new shape. */
|
|
6
|
+
export declare function rotate<T extends AnyShape<Dimension>>(shape: T, angle: number, position?: Vec3, direction?: Vec3): T;
|
|
7
|
+
/** Mirror a shape through a plane defined by origin and normal. Returns a new shape. */
|
|
8
|
+
export declare function mirror<T extends AnyShape<Dimension>>(shape: T, planeNormal?: Vec3, planeOrigin?: Vec3): T;
|
|
9
|
+
/** Scale a shape uniformly. Returns a new shape. */
|
|
10
|
+
export declare function scale<T extends AnyShape<Dimension>>(shape: T, factor: number, center?: Vec3): T;
|
|
11
|
+
/** Resize a shape to exact target dimensions with optional auto-proportional scaling. */
|
|
12
|
+
export declare function resize<T extends AnyShape<Dimension>>(shape: T, dimensions: [number | undefined, number | undefined, number | undefined], options?: {
|
|
13
|
+
auto?: boolean;
|
|
14
|
+
}): T;
|
|
15
|
+
/**
|
|
16
|
+
* Apply a 4x4 affine transformation matrix to a shape.
|
|
17
|
+
* Equivalent to OpenSCAD's `multmatrix`.
|
|
18
|
+
*
|
|
19
|
+
* Uses the fast `kernel transform` path for orthogonal matrices (rotation, uniform scale, mirror)
|
|
20
|
+
* and the general `gp_GTrsf` path for non-orthogonal transforms (shear, non-uniform scale).
|
|
21
|
+
*/
|
|
22
|
+
export declare function applyMatrix<T extends AnyShape<Dimension>>(shape: T, matrix: MatrixInput): T;
|
|
23
|
+
/** A single transform operation: translate or rotate. */
|
|
24
|
+
export type TransformOp = {
|
|
25
|
+
readonly type: 'translate';
|
|
26
|
+
readonly v: Vec3;
|
|
27
|
+
} | {
|
|
28
|
+
readonly type: 'rotate';
|
|
29
|
+
readonly angle: number;
|
|
30
|
+
readonly axis?: Vec3;
|
|
31
|
+
readonly center?: Vec3;
|
|
32
|
+
};
|
|
33
|
+
/** An kernel kernel transform with a cleanup function. Call `cleanup()` when done. */
|
|
34
|
+
export interface ComposedTransform {
|
|
35
|
+
readonly trsf: any;
|
|
36
|
+
readonly cleanup: () => void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Compose multiple translate/rotate operations into a single kernel kernel transform.
|
|
40
|
+
* Operations are applied in order (first element applied first).
|
|
41
|
+
* Call `.cleanup()` on the result when done to free the kernel object.
|
|
42
|
+
*/
|
|
43
|
+
export declare function composeTransforms(ops: readonly TransformOp[]): ComposedTransform;
|
|
44
|
+
/**
|
|
45
|
+
* Clone a shape and apply a pre-composed transform in a single kernel operation.
|
|
46
|
+
* Much faster than separate clone() + translate() + rotate() calls.
|
|
47
|
+
*/
|
|
48
|
+
export declare function transformCopy<T extends AnyShape<Dimension>>(shape: T, composed: ComposedTransform): T;
|
|
49
|
+
//# sourceMappingURL=transformFns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformFns.d.ts","sourceRoot":"","sources":["../../src/topology/transformFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAajE,0DAA0D;AAC1D,wBAAgB,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAa7E;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAClD,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,IAAgB,EAC1B,SAAS,GAAE,IAAgB,GAC1B,CAAC,CAaH;AAED,wFAAwF;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAClD,KAAK,EAAE,CAAC,EACR,WAAW,GAAE,IAAgB,EAC7B,WAAW,GAAE,IAAgB,GAC5B,CAAC,CAYH;AAED,oDAAoD;AACpD,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EACjD,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,IAAgB,GACvB,CAAC,CAYH;AAED,yFAAyF;AACzF,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAClD,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,EACxE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,CAAC,CA2CH;AA8ED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,CAmC3F;AAMD,yDAAyD;AACzD,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAA;CAAE,GAChD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEN,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,GAAG,iBAAiB,CAchF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,SAAS,CAAC,EACzD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,iBAAiB,GAC1B,CAAC,CAWH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapperFns.d.ts","sourceRoot":"","sources":["../../src/topology/wrapperFns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"wrapperFns.d.ts","sourceRoot":"","sources":["../../src/topology/wrapperFns.ts"],"names":[],"mappings":"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"}
|