brepjs 12.12.0 → 12.13.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/README.md +6 -2
- package/dist/2d/blueprints/Blueprint.d.ts +1 -0
- package/dist/2d/blueprints/Blueprint.d.ts.map +1 -1
- package/dist/2d/blueprints/Blueprints.d.ts.map +1 -1
- package/dist/2d/blueprints/CompoundBlueprint.d.ts.map +1 -1
- package/dist/2d/blueprints/blueprintCustomCorners.d.ts.map +1 -1
- package/dist/2d/blueprints/cannedBlueprints.d.ts.map +1 -1
- package/dist/2d/lib/BoundingBox2d.d.ts +1 -0
- package/dist/2d/lib/BoundingBox2d.d.ts.map +1 -1
- package/dist/2d/lib/Curve2D.d.ts +1 -0
- package/dist/2d/lib/Curve2D.d.ts.map +1 -1
- package/dist/2d.cjs +3 -3
- package/dist/2d.js +3 -3
- package/dist/{Blueprint-C2znXaaZ.cjs → Blueprint-DX6dM_fB.cjs} +21 -11
- package/dist/{Blueprint-B_jo065X.js → Blueprint-JYd_kdC5.js} +21 -11
- package/dist/{shapeFns-csbO4RSU.cjs → arrayAccess-BrH0ase6.cjs} +76 -23
- package/dist/{shapeFns-glO_2u3k.js → arrayAccess-CswTjB3U.js} +59 -24
- package/dist/{blueprintFns-CxfjtauU.cjs → blueprintFns-DNiRsh4S.cjs} +3 -3
- package/dist/{blueprintFns-bpyUa_XY.js → blueprintFns-DUyzBTeF.js} +3 -3
- package/dist/{boolean2D-Bu1v9M_m.cjs → boolean2D-ByJ-oeX1.cjs} +351 -350
- package/dist/{boolean2D-yyAQW-Rw.js → boolean2D-SeTIJXii.js} +352 -351
- package/dist/{booleanFns-hPtsWvKU.cjs → booleanFns-BfdopMkS.cjs} +32 -32
- package/dist/{booleanFns-ZBHOH5IJ.js → booleanFns-C5YHveic.js} +21 -21
- package/dist/brepjs.cjs +111 -111
- package/dist/brepjs.js +41 -32
- package/dist/core/dimensionTypes.d.ts.map +1 -1
- package/dist/core/errors.d.ts +2 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/shapeTypes.d.ts +7 -1
- package/dist/core/shapeTypes.d.ts.map +1 -1
- package/dist/core/typeDiscriminants.d.ts +3 -1
- package/dist/core/typeDiscriminants.d.ts.map +1 -1
- package/dist/core.cjs +3 -3
- package/dist/core.js +3 -3
- package/dist/{cornerFinder-Bhpxe2GK.js → cornerFinder-BBLIbDCi.js} +3 -2
- package/dist/{cornerFinder-D1iNCBMe.cjs → cornerFinder-a_a15ABE.cjs} +3 -2
- package/dist/{curveFns-D1LG7v0s.js → curveFns-BYBUrMfs.js} +2 -2
- package/dist/{curveFns-C_MUV5Nj.cjs → curveFns-QSHCv-03.cjs} +2 -2
- package/dist/{drawFns-DWfKZyed.js → drawFns-BKeDnnWz.js} +126 -125
- package/dist/{drawFns-CgtSyuBg.cjs → drawFns-DzssRCeR.cjs} +127 -126
- package/dist/{errors-B2qrBS1S.js → errors-BR1gOLRZ.js} +2 -0
- package/dist/{errors-Bkxm3vs2.cjs → errors-Czwm1_Ti.cjs} +2 -0
- package/dist/{extrudeFns-GVLc2cLp.js → extrudeFns-BdEbnHiq.js} +4 -4
- package/dist/{extrudeFns-C2Pmhe-R.cjs → extrudeFns-C8hZmh0E.cjs} +4 -4
- package/dist/{faceFns-KUsSM65w.cjs → faceFns-B-maQLT5.cjs} +2 -2
- package/dist/{faceFns-C-HZ3rFB.js → faceFns-ClROnDk8.js} +2 -2
- package/dist/{helpers-CPw-TkjO.js → helpers-B4DtSiHU.js} +6 -6
- package/dist/{helpers-C5QjF_x8.cjs → helpers-VApXqQXy.cjs} +9 -9
- package/dist/{historyFns-9JUnw1_O.cjs → historyFns-B6wY5d78.cjs} +6 -6
- package/dist/{historyFns-C-HhJKjF.js → historyFns-BVmGuJJJ.js} +5 -5
- package/dist/{importFns-CyPkUA_N.cjs → importFns-BeGWqiwF.cjs} +11 -10
- package/dist/{importFns-beNdL_tU.js → importFns-DoazdU3-.js} +11 -10
- package/dist/index.d.ts +11 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/io/gltfExportFns.d.ts.map +1 -1
- package/dist/io.cjs +2 -2
- package/dist/io.js +2 -2
- package/dist/kernel/advancedOps.d.ts.map +1 -1
- package/dist/kernel/evolutionOps.d.ts +5 -6
- package/dist/kernel/evolutionOps.d.ts.map +1 -1
- package/dist/kernel/extendedConstructorOps.d.ts.map +1 -1
- package/dist/kernel/index.d.ts +35 -1
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/interfaces/index.d.ts +0 -4
- package/dist/kernel/interfaces/index.d.ts.map +1 -1
- package/dist/kernel/wasm-types/externals.d.ts +41 -0
- package/dist/kernel/wasm-types/externals.d.ts.map +1 -0
- package/dist/kernel/wasm-types/index.d.ts +3 -0
- package/dist/kernel/wasm-types/index.d.ts.map +1 -0
- package/dist/kernel/wasm-types/occtBuilders.d.ts +48 -0
- package/dist/kernel/wasm-types/occtBuilders.d.ts.map +1 -0
- package/dist/{measureFns-BVKhgZAe.js → measureFns-BkWSCYIc.js} +3 -3
- package/dist/{measureFns-Gmok6h3t.cjs → measureFns-DBRrplFM.cjs} +3 -3
- package/dist/measurement.cjs +1 -1
- package/dist/measurement.js +1 -1
- package/dist/{meshFns-D5CPzlWP.js → meshFns-B-g1WpYc.js} +3 -3
- package/dist/{meshFns-CW1EUdGe.cjs → meshFns-DobRCF8g.cjs} +4 -4
- package/dist/operations/compoundOpsFns.d.ts.map +1 -1
- package/dist/operations/loftFns.d.ts.map +1 -1
- package/dist/operations/roofFns.d.ts.map +1 -1
- package/dist/operations/straightSkeleton.d.ts +2 -5
- package/dist/operations/straightSkeleton.d.ts.map +1 -1
- package/dist/operations/sweepFns.d.ts.map +1 -1
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +2 -2
- package/dist/{planeOps-CXJOsSMJ.cjs → planeOps-CSs66pta.cjs} +1 -1
- package/dist/{planeOps-PYHm_Q9z.js → planeOps-DOannb3i.js} +1 -1
- package/dist/{primitiveFns-Bc6T6M50.cjs → primitiveFns-CQI47Dnn.cjs} +16 -16
- package/dist/{primitiveFns-CpVWHp6V.js → primitiveFns-X4y5Xuai.js} +6 -6
- package/dist/query/cornerFinder.d.ts.map +1 -1
- package/dist/query/vertexFinder.d.ts.map +1 -1
- package/dist/query.cjs +2 -2
- package/dist/query.js +2 -2
- package/dist/result.cjs +1 -1
- package/dist/result.js +1 -1
- package/dist/{shapeTypes-DQiNnWj0.cjs → shapeTypes-CU-C-shE.cjs} +101 -4
- package/dist/{shapeTypes-DkpaETrw.js → shapeTypes-mvXCEAMH.js} +84 -5
- package/dist/sketching/CompoundSketch.d.ts.map +1 -1
- package/dist/sketching/cannedSketches.d.ts.map +1 -1
- package/dist/sketching/draw.d.ts.map +1 -1
- package/dist/sketching/drawFns.d.ts.map +1 -1
- package/dist/sketching.cjs +2 -2
- package/dist/sketching.js +2 -2
- package/dist/{solidBuilders-j86aJBNd.js → solidBuilders-BNuFyNAn.js} +3 -3
- package/dist/{solidBuilders-CroCRISt.cjs → solidBuilders-CGNnvfYb.cjs} +3 -3
- package/dist/{surfaceBuilders-BZWDla4x.js → surfaceBuilders-CLOCsrlS.js} +3 -3
- package/dist/{surfaceBuilders-DVRuWItl.cjs → surfaceBuilders-DHId1EJI.cjs} +3 -3
- package/dist/text/textBlueprints.d.ts +3 -2
- package/dist/text/textBlueprints.d.ts.map +1 -1
- package/dist/topology/api.d.ts +1 -1
- package/dist/topology/api.d.ts.map +1 -1
- package/dist/topology/booleanFns.d.ts.map +1 -1
- package/dist/topology/topologyQueryFns.d.ts.map +1 -1
- package/dist/topology/transformFns.d.ts +5 -4
- package/dist/topology/transformFns.d.ts.map +1 -1
- package/dist/topology.cjs +20 -20
- package/dist/topology.js +6 -6
- package/dist/utils/arrayAccess.d.ts +12 -0
- package/dist/utils/arrayAccess.d.ts.map +1 -0
- package/dist/vectors.cjs +1 -1
- package/dist/vectors.js +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -40,12 +40,16 @@ Production-ready with the OpenCascade kernel. [brepkit](https://github.com/andym
|
|
|
40
40
|
npm install brepjs brepjs-opencascade
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
`brepjs/quick` handles WASM init automatically via top-level await (ESM only).
|
|
43
|
+
`brepjs/quick` handles WASM init automatically via top-level await (ESM only). Other options:
|
|
44
44
|
|
|
45
45
|
```typescript
|
|
46
|
+
// Auto-detect kernel
|
|
47
|
+
import { init } from 'brepjs';
|
|
48
|
+
await init();
|
|
49
|
+
|
|
50
|
+
// Or manual setup
|
|
46
51
|
import opencascade from 'brepjs-opencascade';
|
|
47
52
|
import { initFromOC } from 'brepjs';
|
|
48
|
-
|
|
49
53
|
const oc = await opencascade();
|
|
50
54
|
initFromOC(oc);
|
|
51
55
|
```
|
|
@@ -47,6 +47,7 @@ export default class Blueprint implements DrawingInterface {
|
|
|
47
47
|
constructor(curves: Curve2D[]);
|
|
48
48
|
/** Release WASM resources held by the underlying curves and bounding box. */
|
|
49
49
|
delete(): void;
|
|
50
|
+
[Symbol.dispose](): void;
|
|
50
51
|
/** Return a deep copy of this blueprint. */
|
|
51
52
|
clone(): Blueprint;
|
|
52
53
|
/** Return a multi-line string representation for debugging. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blueprint.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/Blueprint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Blueprint.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/Blueprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blueprints.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/Blueprints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,gBAAgB;IACzD,mDAAmD;IACnD,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;IACjD,SAAS,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7C,kFAAkF;gBACtE,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;IAK5D,yEAAyE;IACzE,IAAI,IAAI,WAEP;IAED,kEAAkE;IAClE,KAAK,IAAI,UAAU;IAInB,6EAA6E;IAC7E,IAAI,WAAW,IAAI,aAAa,CAS/B;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU;IAIvE,0DAA0D;IAC1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU;IAInD,kEAAkE;IAClE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU;IAKxD,4EAA4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;IACnD,SAAS,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"Blueprints.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/Blueprints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,gBAAgB;IACzD,mDAAmD;IACnD,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;IACjD,SAAS,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7C,kFAAkF;gBACtE,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;IAK5D,yEAAyE;IACzE,IAAI,IAAI,WAEP;IAED,kEAAkE;IAClE,KAAK,IAAI,UAAU;IAInB,6EAA6E;IAC7E,IAAI,WAAW,IAAI,aAAa,CAS/B;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU;IAIvE,0DAA0D;IAC1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU;IAInD,kEAAkE;IAClE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU;IAKxD,4EAA4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;IACnD,SAAS,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU;IAWjD,2DAA2D;IAC3D,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU;IAI3F,oDAAoD;IACpD,aAAa,CACX,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,EACzB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAC3B,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,EAAE;IAIhC,4DAA4D;IAC5D,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,EAAE;IAI9E;;;;OAIG;IACH,SAAS,CACP,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB;IASR,+DAA+D;IAC/D,YAAY,CAAC,MAAM,SAAI;IAIvB,2EAA2E;IAC3E,UAAU;IAIV,sEAAsE;IACtE,KAAK,CAAC,MAAM,SAAI;CAQjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompoundBlueprint.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/CompoundBlueprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"CompoundBlueprint.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/CompoundBlueprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,YAAW,gBAAgB;IAChE;;;OAGG;IACH,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IAE7C;;;;;;OAMG;gBACS,UAAU,EAAE,SAAS,EAAE;IAQnC,0EAA0E;IAC1E,KAAK,IAAI,iBAAiB;IAI1B,6EAA6E;IAC7E,IAAI,WAAW,IAAI,aAAa,CAS/B;IAED,0EAA0E;IAC1E,IAAI,IAAI,WAQP;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,iBAAiB;IAI9E,0DAA0D;IAC1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,iBAAiB;IAI1D,kEAAkE;IAClE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,iBAAiB;IAK/D,4EAA4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAC1D,SAAS,CAAC,iBAAiB,EAAE,OAAO,GAAG,iBAAiB;IAWxD,2DAA2D;IAC3D,MAAM,CACJ,iBAAiB,EAAE,OAAO,EAC1B,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GACxB,iBAAiB;IAMpB;;;OAGG;IACH,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,EAAE;IAIpF;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE;IAI7D;;;;OAIG;IACH,SAAS,CACP,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB,GACL,QAAQ,CAAC,SAAS,CAAC;IAItB,uEAAuE;IACvE,YAAY,CAAC,MAAM,SAAI;IAIvB,6DAA6D;IAC7D,UAAU;IAIV,gEAAgE;IAChE,UAAU;IAIV,yEAAyE;IACzE,KAAK,CAAC,MAAM,SAAI;CAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprintCustomCorners.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/blueprintCustomCorners.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"blueprintCustomCorners.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/blueprintCustomCorners.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA2E9C;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,WAE7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,WAE9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cannedBlueprints.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/cannedBlueprints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cannedBlueprints.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/cannedBlueprints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAI5C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,YAAY,MAAM,EAAE,gBAAW,KAAG,SAiBpF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,IAAG,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAM,cAwC7C,CAAC"}
|
|
@@ -12,6 +12,7 @@ export declare class BoundingBox2d {
|
|
|
12
12
|
constructor(wrapped?: KernelType);
|
|
13
13
|
get wrapped(): KernelType;
|
|
14
14
|
delete(): void;
|
|
15
|
+
[Symbol.dispose](): void;
|
|
15
16
|
/** Return a human-readable string of the form `(xMin,yMin) - (xMax,yMax)`. */
|
|
16
17
|
get repr(): string;
|
|
17
18
|
/** Return the `[min, max]` corner points of the bounding box. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundingBox2d.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/BoundingBox2d.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,CAAC,EAAE,UAAU;IAKhC,IAAI,OAAO,IAAI,UAAU,CAGxB;IAED,MAAM,IAAI,IAAI;IAQd,8EAA8E;IAC9E,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,iEAAiE;IACjE,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAM/B;IAED,mDAAmD;IACnD,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED,uDAAuD;IACvD,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED,wDAAwD;IACxD,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED;;;;OAIG;IACH,YAAY,CAAC,cAAc,SAAI,GAAG,OAAO;IAWzC,mDAAmD;IACnD,GAAG,CAAC,KAAK,EAAE,aAAa;IAIxB,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIpC,iFAAiF;IACjF,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAGvC"}
|
|
1
|
+
{"version":3,"file":"BoundingBox2d.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/BoundingBox2d.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,CAAC,EAAE,UAAU;IAKhC,IAAI,OAAO,IAAI,UAAU,CAGxB;IAED,MAAM,IAAI,IAAI;IAQd,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,8EAA8E;IAC9E,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,iEAAiE;IACjE,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAM/B;IAED,mDAAmD;IACnD,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED,uDAAuD;IACvD,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED,wDAAwD;IACxD,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED;;;;OAIG;IACH,YAAY,CAAC,cAAc,SAAI,GAAG,OAAO;IAWzC,mDAAmD;IACnD,GAAG,CAAC,KAAK,EAAE,aAAa;IAIxB,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIpC,iFAAiF;IACjF,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAGvC"}
|
package/dist/2d/lib/Curve2D.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare class Curve2D {
|
|
|
24
24
|
constructor(handle: KernelType);
|
|
25
25
|
get wrapped(): KernelType;
|
|
26
26
|
delete(): void;
|
|
27
|
+
[Symbol.dispose](): void;
|
|
27
28
|
/** Compute (and cache) the 2D bounding box of this curve. */
|
|
28
29
|
get boundingBox(): BoundingBox2d;
|
|
29
30
|
/** Return a human-readable representation, e.g. `LINE (0,0) - (1,1)`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Curve2D.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/Curve2D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,sBAAsB,CAAC;AAMpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMhD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;GAKG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,YAAY,EAAE,IAAI,GAAG,aAAa,CAAC;IACnC,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,UAAU,CAAwB;gBAE9B,MAAM,EAAE,UAAU;IAM9B,IAAI,OAAO,IAAI,UAAU,CAGxB;IAED,MAAM,IAAI,IAAI;IAQd,6DAA6D;IAC7D,IAAI,WAAW,kBAOd;IAED,yEAAyE;IACzE,IAAI,IAAI,WAEP;IAED,6FAA6F;IAC7F,SAAS,IAAI,MAAM;IAInB,yEAAyE;IACzE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC,8EAA8E;IAC9E,IAAI,UAAU,IAAI,OAAO,CAKxB;IAED,4EAA4E;IAC5E,IAAI,SAAS,IAAI,OAAO,CAKvB;IAED,4DAA4D;IAC5D,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,0DAA0D;IAC1D,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,wFAAwF;IACxF,IAAI,QAAQ,IAAI,SAAS,CAExB;IAED,qDAAqD;IACrD,KAAK,IAAI,OAAO;IAQhB,sDAAsD;IACtD,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;IAyBzB,gFAAgF;IAChF,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM;IAQhD,8EAA8E;IAC9E,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIlC;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IA2B3D;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAe3C;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,SAAS,SAAO,GAAG,OAAO,EAAE;CAiCnE"}
|
|
1
|
+
{"version":3,"file":"Curve2D.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/Curve2D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,sBAAsB,CAAC;AAMpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMhD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;GAKG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,YAAY,EAAE,IAAI,GAAG,aAAa,CAAC;IACnC,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,UAAU,CAAwB;gBAE9B,MAAM,EAAE,UAAU;IAM9B,IAAI,OAAO,IAAI,UAAU,CAGxB;IAED,MAAM,IAAI,IAAI;IAQd,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,6DAA6D;IAC7D,IAAI,WAAW,kBAOd;IAED,yEAAyE;IACzE,IAAI,IAAI,WAEP;IAED,6FAA6F;IAC7F,SAAS,IAAI,MAAM;IAInB,yEAAyE;IACzE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC,8EAA8E;IAC9E,IAAI,UAAU,IAAI,OAAO,CAKxB;IAED,4EAA4E;IAC5E,IAAI,SAAS,IAAI,OAAO,CAKvB;IAED,4DAA4D;IAC5D,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,0DAA0D;IAC1D,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,wFAAwF;IACxF,IAAI,QAAQ,IAAI,SAAS,CAExB;IAED,qDAAqD;IACrD,KAAK,IAAI,OAAO;IAQhB,sDAAsD;IACtD,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;IAyBzB,gFAAgF;IAChF,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM;IAQhD,8EAA8E;IAC9E,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIlC;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IA2B3D;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAe3C;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,SAAS,SAAO,GAAG,OAAO,EAAE;CAiCnE"}
|
package/dist/2d.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const require_blueprintFns = require("./blueprintFns-
|
|
2
|
+
const require_boolean2D = require("./boolean2D-ByJ-oeX1.cjs");
|
|
3
|
+
const require_Blueprint = require("./Blueprint-DX6dM_fB.cjs");
|
|
4
|
+
const require_blueprintFns = require("./blueprintFns-DNiRsh4S.cjs");
|
|
5
5
|
exports.Blueprint = require_Blueprint.Blueprint;
|
|
6
6
|
exports.Blueprints = require_boolean2D.Blueprints;
|
|
7
7
|
exports.BoundingBox2d = require_Blueprint.BoundingBox2d;
|
package/dist/2d.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-
|
|
1
|
+
import { a as fuseBlueprints, c as roundedRectangleBlueprint, g as Blueprints, h as CompoundBlueprint, i as cutBlueprints, m as organiseBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-SeTIJXii.js";
|
|
2
|
+
import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./Blueprint-JYd_kdC5.js";
|
|
3
|
+
import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-DUyzBTeF.js";
|
|
4
4
|
export { Blueprint, Blueprints, BoundingBox2d, CompoundBlueprint, Curve2D, createBlueprint, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, cut2D, cutBlueprints, fuse2D, fuseBlueprints, getBounds2D, getOrientation2D, intersect2D, intersectBlueprints, isInside2D, mirror2D, organiseBlueprints, polysidesBlueprint, reverseCurve, rotate2D, roundedRectangleBlueprint, scale2D, sketchOnFace2D, sketchOnPlane2D, stretch2D, toSVGPathD, translate2D };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
2
|
-
const require_errors = require("./errors-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-CU-C-shE.cjs");
|
|
2
|
+
const require_errors = require("./errors-Czwm1_Ti.cjs");
|
|
3
3
|
const require_vecOps = require("./vecOps-4iBMiet9.cjs");
|
|
4
4
|
const require_types = require("./types-BD-VVaWB.cjs");
|
|
5
|
-
const require_planeOps = require("./planeOps-
|
|
6
|
-
const require_faceFns = require("./faceFns-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
5
|
+
const require_planeOps = require("./planeOps-CSs66pta.cjs");
|
|
6
|
+
const require_faceFns = require("./faceFns-B-maQLT5.cjs");
|
|
7
|
+
const require_arrayAccess = require("./arrayAccess-BrH0ase6.cjs");
|
|
8
|
+
const require_curveFns = require("./curveFns-QSHCv-03.cjs");
|
|
9
|
+
const require_surfaceBuilders = require("./surfaceBuilders-DHId1EJI.cjs");
|
|
10
|
+
const require_helpers = require("./helpers-VApXqQXy.cjs");
|
|
10
11
|
//#region src/2d/lib/definitions.ts
|
|
11
12
|
/** Type guard that checks whether a value is a `Point2D`. */
|
|
12
13
|
function isPoint2D(point) {
|
|
@@ -78,6 +79,9 @@ var BoundingBox2d = class {
|
|
|
78
79
|
if (typeof this._wrapped.delete === "function") this._wrapped.delete();
|
|
79
80
|
}
|
|
80
81
|
}
|
|
82
|
+
[Symbol.dispose]() {
|
|
83
|
+
this.delete();
|
|
84
|
+
}
|
|
81
85
|
/** Return a human-readable string of the form `(xMin,yMin) - (xMax,yMax)`. */
|
|
82
86
|
get repr() {
|
|
83
87
|
const [min, max] = this.bounds;
|
|
@@ -165,6 +169,9 @@ var Curve2D = class Curve2D {
|
|
|
165
169
|
if (typeof this._wrapped.delete === "function") this._wrapped.delete();
|
|
166
170
|
}
|
|
167
171
|
}
|
|
172
|
+
[Symbol.dispose]() {
|
|
173
|
+
this.delete();
|
|
174
|
+
}
|
|
168
175
|
/** Compute (and cache) the 2D bounding box of this curve. */
|
|
169
176
|
get boundingBox() {
|
|
170
177
|
if (this._boundingBox) return this._boundingBox;
|
|
@@ -729,6 +736,9 @@ var Blueprint = class Blueprint {
|
|
|
729
736
|
});
|
|
730
737
|
if (this._boundingBox) this._boundingBox.delete();
|
|
731
738
|
}
|
|
739
|
+
[Symbol.dispose]() {
|
|
740
|
+
this.delete();
|
|
741
|
+
}
|
|
732
742
|
/** Return a deep copy of this blueprint. */
|
|
733
743
|
clone() {
|
|
734
744
|
return new Blueprint(this.curves.map((c) => c.clone()));
|
|
@@ -755,7 +765,7 @@ var Blueprint = class Blueprint {
|
|
|
755
765
|
return [c.firstPoint];
|
|
756
766
|
});
|
|
757
767
|
this._guessedOrientation = vertices.map((v1, i) => {
|
|
758
|
-
const v2 = vertices
|
|
768
|
+
const v2 = require_arrayAccess.getAtOrThrow(vertices, (i + 1) % vertices.length);
|
|
759
769
|
return (v2[0] - v1[0]) * (v2[1] + v1[1]);
|
|
760
770
|
}).reduce((a, b) => a + b, 0) > 0 ? "clockwise" : "counterClockwise";
|
|
761
771
|
return this._guessedOrientation;
|
|
@@ -872,7 +882,7 @@ var Blueprint = class Blueprint {
|
|
|
872
882
|
const path = approximateAsSvgCompatibleCurve(bp.curves).flatMap((c) => {
|
|
873
883
|
return adaptedCurveToPathElem(c, c.lastPoint);
|
|
874
884
|
});
|
|
875
|
-
const [startX, startY] = bp.curves
|
|
885
|
+
const [startX, startY] = require_arrayAccess.firstOrThrow(bp.curves).firstPoint;
|
|
876
886
|
return `M ${round5(startX)} ${round5(startY)} ${path.join(" ")}${bp.isClosed() ? " Z" : ""}`;
|
|
877
887
|
}
|
|
878
888
|
/** Wrap the SVG path data in a `<path>` element string. */
|
|
@@ -901,11 +911,11 @@ var Blueprint = class Blueprint {
|
|
|
901
911
|
}
|
|
902
912
|
/** Get the start point of the first curve. */
|
|
903
913
|
get firstPoint() {
|
|
904
|
-
return this.curves
|
|
914
|
+
return require_arrayAccess.firstOrThrow(this.curves).firstPoint;
|
|
905
915
|
}
|
|
906
916
|
/** Get the end point of the last curve. */
|
|
907
917
|
get lastPoint() {
|
|
908
|
-
return
|
|
918
|
+
return require_arrayAccess.lastOrThrow(this.curves).lastPoint;
|
|
909
919
|
}
|
|
910
920
|
/**
|
|
911
921
|
* Test whether a 2D point lies inside this closed blueprint.
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { L as unwrap, d as validationError, k as ok, m as bug, n as computationError, y as err } from "./errors-
|
|
1
|
+
import { B as unregisterFromCleanup, G as getKernel, K as getKernel2D, R as registerForCleanup, a as createEdge, u as createWire } from "./shapeTypes-mvXCEAMH.js";
|
|
2
|
+
import { L as unwrap, d as validationError, k as ok, m as bug, n as computationError, y as err } from "./errors-BR1gOLRZ.js";
|
|
3
3
|
import { _ as DEG2RAD, y as RAD2DEG } from "./vecOps-B9-MTeC8.js";
|
|
4
4
|
import { r as toVec3 } from "./types-Bb4KK_iG.js";
|
|
5
|
-
import { r as makePlane } from "./planeOps-
|
|
6
|
-
import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
5
|
+
import { r as makePlane } from "./planeOps-DOannb3i.js";
|
|
6
|
+
import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-ClROnDk8.js";
|
|
7
|
+
import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-CswTjB3U.js";
|
|
8
|
+
import { f as getOrientation } from "./curveFns-BYBUrMfs.js";
|
|
9
|
+
import { r as makeFace } from "./surfaceBuilders-CLOCsrlS.js";
|
|
10
|
+
import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-B4DtSiHU.js";
|
|
10
11
|
//#region src/2d/lib/definitions.ts
|
|
11
12
|
/** Type guard that checks whether a value is a `Point2D`. */
|
|
12
13
|
function isPoint2D(point) {
|
|
@@ -78,6 +79,9 @@ var BoundingBox2d = class {
|
|
|
78
79
|
if (typeof this._wrapped.delete === "function") this._wrapped.delete();
|
|
79
80
|
}
|
|
80
81
|
}
|
|
82
|
+
[Symbol.dispose]() {
|
|
83
|
+
this.delete();
|
|
84
|
+
}
|
|
81
85
|
/** Return a human-readable string of the form `(xMin,yMin) - (xMax,yMax)`. */
|
|
82
86
|
get repr() {
|
|
83
87
|
const [min, max] = this.bounds;
|
|
@@ -165,6 +169,9 @@ var Curve2D = class Curve2D {
|
|
|
165
169
|
if (typeof this._wrapped.delete === "function") this._wrapped.delete();
|
|
166
170
|
}
|
|
167
171
|
}
|
|
172
|
+
[Symbol.dispose]() {
|
|
173
|
+
this.delete();
|
|
174
|
+
}
|
|
168
175
|
/** Compute (and cache) the 2D bounding box of this curve. */
|
|
169
176
|
get boundingBox() {
|
|
170
177
|
if (this._boundingBox) return this._boundingBox;
|
|
@@ -729,6 +736,9 @@ var Blueprint = class Blueprint {
|
|
|
729
736
|
});
|
|
730
737
|
if (this._boundingBox) this._boundingBox.delete();
|
|
731
738
|
}
|
|
739
|
+
[Symbol.dispose]() {
|
|
740
|
+
this.delete();
|
|
741
|
+
}
|
|
732
742
|
/** Return a deep copy of this blueprint. */
|
|
733
743
|
clone() {
|
|
734
744
|
return new Blueprint(this.curves.map((c) => c.clone()));
|
|
@@ -755,7 +765,7 @@ var Blueprint = class Blueprint {
|
|
|
755
765
|
return [c.firstPoint];
|
|
756
766
|
});
|
|
757
767
|
this._guessedOrientation = vertices.map((v1, i) => {
|
|
758
|
-
const v2 = vertices
|
|
768
|
+
const v2 = getAtOrThrow(vertices, (i + 1) % vertices.length);
|
|
759
769
|
return (v2[0] - v1[0]) * (v2[1] + v1[1]);
|
|
760
770
|
}).reduce((a, b) => a + b, 0) > 0 ? "clockwise" : "counterClockwise";
|
|
761
771
|
return this._guessedOrientation;
|
|
@@ -872,7 +882,7 @@ var Blueprint = class Blueprint {
|
|
|
872
882
|
const path = approximateAsSvgCompatibleCurve(bp.curves).flatMap((c) => {
|
|
873
883
|
return adaptedCurveToPathElem(c, c.lastPoint);
|
|
874
884
|
});
|
|
875
|
-
const [startX, startY] = bp.curves
|
|
885
|
+
const [startX, startY] = firstOrThrow(bp.curves).firstPoint;
|
|
876
886
|
return `M ${round5(startX)} ${round5(startY)} ${path.join(" ")}${bp.isClosed() ? " Z" : ""}`;
|
|
877
887
|
}
|
|
878
888
|
/** Wrap the SVG path data in a `<path>` element string. */
|
|
@@ -901,11 +911,11 @@ var Blueprint = class Blueprint {
|
|
|
901
911
|
}
|
|
902
912
|
/** Get the start point of the first curve. */
|
|
903
913
|
get firstPoint() {
|
|
904
|
-
return this.curves
|
|
914
|
+
return firstOrThrow(this.curves).firstPoint;
|
|
905
915
|
}
|
|
906
916
|
/** Get the end point of the last curve. */
|
|
907
917
|
get lastPoint() {
|
|
908
|
-
return this.curves
|
|
918
|
+
return lastOrThrow(this.curves).lastPoint;
|
|
909
919
|
}
|
|
910
920
|
/**
|
|
911
921
|
* Test whether a 2D point lies inside this closed blueprint.
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
2
|
-
const require_errors = require("./errors-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-CU-C-shE.cjs");
|
|
2
|
+
const require_errors = require("./errors-Czwm1_Ti.cjs");
|
|
3
3
|
const require_vecOps = require("./vecOps-4iBMiet9.cjs");
|
|
4
|
-
const require_faceFns = require("./faceFns-
|
|
4
|
+
const require_faceFns = require("./faceFns-B-maQLT5.cjs");
|
|
5
5
|
//#region src/topology/topologyQueryFns.ts
|
|
6
6
|
/**
|
|
7
7
|
* Topology query functions — extract sub-shapes, compute bounds, and
|
|
8
8
|
* describe shape topology. All results are lazily cached per shape.
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Extract sub-shapes of a known type, bypassing the generator wrapper and
|
|
12
|
+
* redundant downcast calls. Uses iterShapes (C++ bulk extraction) directly
|
|
13
|
+
* and passes the known type to castShape to skip the shapeType() WASM call.
|
|
14
|
+
*/
|
|
15
|
+
function castSubShapes(parentShape, type) {
|
|
16
|
+
const rawShapes = require_shapeTypes.getKernel().iterShapes(parentShape, type);
|
|
17
|
+
const result = new Array(rawShapes.length);
|
|
18
|
+
for (let i = 0; i < rawShapes.length; i++) result[i] = require_shapeTypes.castShapeWithKnownType(rawShapes[i], type);
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
10
21
|
var topoCache = /* @__PURE__ */ new WeakMap();
|
|
11
22
|
/** @internal Get or create a cache entry for a shape. Used by originTrackingFns. */
|
|
12
23
|
function getOrCreateCache(shape) {
|
|
@@ -32,7 +43,7 @@ function invalidateShapeCache(shape) {
|
|
|
32
43
|
function getEdges(shape) {
|
|
33
44
|
const cache = getOrCreateCache(shape);
|
|
34
45
|
if (cache.edges) return cache.edges;
|
|
35
|
-
const edges =
|
|
46
|
+
const edges = castSubShapes(shape.wrapped, "edge");
|
|
36
47
|
cache.edges = edges;
|
|
37
48
|
return edges;
|
|
38
49
|
}
|
|
@@ -45,7 +56,7 @@ function getEdges(shape) {
|
|
|
45
56
|
function getFaces(shape) {
|
|
46
57
|
const cache = getOrCreateCache(shape);
|
|
47
58
|
if (cache.faces) return cache.faces;
|
|
48
|
-
const faces =
|
|
59
|
+
const faces = castSubShapes(shape.wrapped, "face");
|
|
49
60
|
cache.faces = faces;
|
|
50
61
|
return faces;
|
|
51
62
|
}
|
|
@@ -53,7 +64,7 @@ function getFaces(shape) {
|
|
|
53
64
|
function getWires(shape) {
|
|
54
65
|
const cache = getOrCreateCache(shape);
|
|
55
66
|
if (cache.wires) return cache.wires;
|
|
56
|
-
const wires =
|
|
67
|
+
const wires = castSubShapes(shape.wrapped, "wire");
|
|
57
68
|
cache.wires = wires;
|
|
58
69
|
return wires;
|
|
59
70
|
}
|
|
@@ -61,25 +72,25 @@ function getWires(shape) {
|
|
|
61
72
|
function getVertices(shape) {
|
|
62
73
|
const cache = getOrCreateCache(shape);
|
|
63
74
|
if (cache.vertices) return cache.vertices;
|
|
64
|
-
const vertices =
|
|
75
|
+
const vertices = castSubShapes(shape.wrapped, "vertex");
|
|
65
76
|
cache.vertices = vertices;
|
|
66
77
|
return vertices;
|
|
67
78
|
}
|
|
68
79
|
/** Lazily iterate edges of a shape, yielding branded Edge handles one at a time. */
|
|
69
80
|
function* iterEdges(shape) {
|
|
70
|
-
for (const e of
|
|
81
|
+
for (const e of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "edge")) yield require_shapeTypes.castShapeWithKnownType(e, "edge");
|
|
71
82
|
}
|
|
72
83
|
/** Lazily iterate faces of a shape, yielding branded Face handles one at a time. */
|
|
73
84
|
function* iterFaces(shape) {
|
|
74
|
-
for (const f of
|
|
85
|
+
for (const f of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "face")) yield require_shapeTypes.castShapeWithKnownType(f, "face");
|
|
75
86
|
}
|
|
76
87
|
/** Lazily iterate wires of a shape, yielding branded Wire handles one at a time. */
|
|
77
88
|
function* iterWires(shape) {
|
|
78
|
-
for (const w of
|
|
89
|
+
for (const w of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "wire")) yield require_shapeTypes.castShapeWithKnownType(w, "wire");
|
|
79
90
|
}
|
|
80
91
|
/** Lazily iterate vertices of a shape, yielding branded Vertex handles one at a time. */
|
|
81
92
|
function* iterVertices(shape) {
|
|
82
|
-
for (const v of
|
|
93
|
+
for (const v of require_shapeTypes.getKernel().iterShapes(shape.wrapped, "vertex")) yield require_shapeTypes.castShapeWithKnownType(v, "vertex");
|
|
83
94
|
}
|
|
84
95
|
/** Get the axis-aligned bounding box of a shape. Cached per shape. */
|
|
85
96
|
function getBounds(shape) {
|
|
@@ -588,22 +599,22 @@ function resize(shape, dimensions, options) {
|
|
|
588
599
|
factor(dimensions[1], size[1], autoFactor),
|
|
589
600
|
factor(dimensions[2], size[2], autoFactor)
|
|
590
601
|
];
|
|
591
|
-
if (!(Math.abs(factors[0] - factors[1]) < 1e-6 && Math.abs(factors[1] - factors[2]) < 1e-6))
|
|
592
|
-
return scale(shape, factors[0]);
|
|
602
|
+
if (!(Math.abs(factors[0] - factors[1]) < 1e-6 && Math.abs(factors[1] - factors[2]) < 1e-6)) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.VALIDATION_FAILED, "resize: non-uniform scaling is not supported (WASM build lacks BRepBuilderAPI_GTransform).", void 0, void 0, "Use auto: true to scale proportionally, or set all three dimensions to achieve uniform scaling."));
|
|
603
|
+
return require_errors.ok(scale(shape, factors[0]));
|
|
593
604
|
}
|
|
594
605
|
/**
|
|
595
606
|
* Parse a MatrixInput into a 3x3 linear part and translation vector.
|
|
596
607
|
* Validates the bottom row of a Matrix4x4.
|
|
597
608
|
*/
|
|
598
609
|
function parseMatrixInput(input) {
|
|
599
|
-
if ("linear" in input) return {
|
|
610
|
+
if ("linear" in input) return require_errors.ok({
|
|
600
611
|
linear: input.linear,
|
|
601
612
|
translation: input.translation
|
|
602
|
-
};
|
|
613
|
+
});
|
|
603
614
|
const [r0, r1, r2, r3] = input;
|
|
604
615
|
const TOL = 1e-10;
|
|
605
|
-
if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL)
|
|
606
|
-
return {
|
|
616
|
+
if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.VALIDATION_FAILED, `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`));
|
|
617
|
+
return require_errors.ok({
|
|
607
618
|
linear: [
|
|
608
619
|
r0[0],
|
|
609
620
|
r0[1],
|
|
@@ -620,7 +631,7 @@ function parseMatrixInput(input) {
|
|
|
620
631
|
r1[3],
|
|
621
632
|
r2[3]
|
|
622
633
|
]
|
|
623
|
-
};
|
|
634
|
+
});
|
|
624
635
|
}
|
|
625
636
|
/** Determinant of a 3x3 matrix given as 9 row-major values. */
|
|
626
637
|
function det3x3(m) {
|
|
@@ -653,23 +664,25 @@ function isOrthogonalMatrix(m) {
|
|
|
653
664
|
* and the general `gp_GTrsf` path for non-orthogonal transforms (shear, non-uniform scale).
|
|
654
665
|
*/
|
|
655
666
|
function applyMatrix(shape, matrix) {
|
|
656
|
-
const
|
|
667
|
+
const parsed = parseMatrixInput(matrix);
|
|
668
|
+
if (!parsed.ok) return parsed;
|
|
669
|
+
const { linear, translation } = parsed.value;
|
|
657
670
|
const d = det3x3(linear);
|
|
658
|
-
if (Math.abs(d) < 1e-12)
|
|
671
|
+
if (Math.abs(d) < 1e-12) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.VALIDATION_FAILED, "applyMatrix: singular matrix (determinant ≈ 0). Cannot apply a non-invertible transform."));
|
|
659
672
|
if (isOrthogonalMatrix(linear)) {
|
|
660
673
|
const inputFaceHashes = collectInputFaceHashes([shape]);
|
|
661
674
|
const { shape: resultShape, evolution } = require_shapeTypes.getKernel().generalTransformWithHistory(shape.wrapped, linear, translation, true, inputFaceHashes, require_vecOps.HASH_CODE_MAX);
|
|
662
675
|
const result = require_shapeTypes.castShape(resultShape);
|
|
663
676
|
propagateAllMetadata(evolution, [shape], result);
|
|
664
|
-
return result;
|
|
677
|
+
return require_errors.ok(result);
|
|
665
678
|
}
|
|
666
679
|
const result = require_shapeTypes.castShape(require_shapeTypes.getKernel().generalTransformNonOrthogonal(shape.wrapped, linear, translation));
|
|
667
680
|
propagateMetadataByHash([shape], result);
|
|
668
|
-
return result;
|
|
681
|
+
return require_errors.ok(result);
|
|
669
682
|
/* v8 ignore stop */
|
|
670
683
|
}
|
|
671
684
|
/**
|
|
672
|
-
* Compose multiple translate/rotate operations into a single kernel
|
|
685
|
+
* Compose multiple translate/rotate operations into a single kernel transform.
|
|
673
686
|
* Operations are applied in order (first element applied first).
|
|
674
687
|
* Call `.cleanup()` on the result when done to free the kernel object.
|
|
675
688
|
*/
|
|
@@ -744,6 +757,28 @@ function simplify(shape) {
|
|
|
744
757
|
return require_shapeTypes.castShape(require_shapeTypes.getKernel().simplify(shape.wrapped));
|
|
745
758
|
}
|
|
746
759
|
//#endregion
|
|
760
|
+
//#region src/utils/arrayAccess.ts
|
|
761
|
+
/**
|
|
762
|
+
* Safe array access utilities.
|
|
763
|
+
* Replaces `arr[i]!` patterns where TypeScript's `noUncheckedIndexedAccess` requires
|
|
764
|
+
* a non-null assertion but bounds are proven by surrounding code.
|
|
765
|
+
*/
|
|
766
|
+
/** Access element by index, throwing if out of bounds. Use when bounds are logically guaranteed. */
|
|
767
|
+
function getAtOrThrow(arr, index, msg) {
|
|
768
|
+
if (index < 0 || index >= arr.length) throw new Error(msg ?? `Index ${index} out of bounds (length ${arr.length})`);
|
|
769
|
+
return arr[index];
|
|
770
|
+
}
|
|
771
|
+
/** Get the first element of a non-empty array, throwing if empty. */
|
|
772
|
+
function firstOrThrow(arr, msg) {
|
|
773
|
+
if (arr.length === 0) throw new Error(msg ?? "Expected non-empty array");
|
|
774
|
+
return arr[0];
|
|
775
|
+
}
|
|
776
|
+
/** Get the last element of a non-empty array, throwing if empty. */
|
|
777
|
+
function lastOrThrow(arr, msg) {
|
|
778
|
+
if (arr.length === 0) throw new Error(msg ?? "Expected non-empty array");
|
|
779
|
+
return arr[arr.length - 1];
|
|
780
|
+
}
|
|
781
|
+
//#endregion
|
|
747
782
|
Object.defineProperty(exports, "applyMatrix", {
|
|
748
783
|
enumerable: true,
|
|
749
784
|
get: function() {
|
|
@@ -792,6 +827,18 @@ Object.defineProperty(exports, "findFacesByTag", {
|
|
|
792
827
|
return findFacesByTag;
|
|
793
828
|
}
|
|
794
829
|
});
|
|
830
|
+
Object.defineProperty(exports, "firstOrThrow", {
|
|
831
|
+
enumerable: true,
|
|
832
|
+
get: function() {
|
|
833
|
+
return firstOrThrow;
|
|
834
|
+
}
|
|
835
|
+
});
|
|
836
|
+
Object.defineProperty(exports, "getAtOrThrow", {
|
|
837
|
+
enumerable: true,
|
|
838
|
+
get: function() {
|
|
839
|
+
return getAtOrThrow;
|
|
840
|
+
}
|
|
841
|
+
});
|
|
795
842
|
Object.defineProperty(exports, "getBounds", {
|
|
796
843
|
enumerable: true,
|
|
797
844
|
get: function() {
|
|
@@ -906,6 +953,12 @@ Object.defineProperty(exports, "iterWires", {
|
|
|
906
953
|
return iterWires;
|
|
907
954
|
}
|
|
908
955
|
});
|
|
956
|
+
Object.defineProperty(exports, "lastOrThrow", {
|
|
957
|
+
enumerable: true,
|
|
958
|
+
get: function() {
|
|
959
|
+
return lastOrThrow;
|
|
960
|
+
}
|
|
961
|
+
});
|
|
909
962
|
Object.defineProperty(exports, "mirror", {
|
|
910
963
|
enumerable: true,
|
|
911
964
|
get: function() {
|