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.
Files changed (122) hide show
  1. package/README.md +6 -2
  2. package/dist/2d/blueprints/Blueprint.d.ts +1 -0
  3. package/dist/2d/blueprints/Blueprint.d.ts.map +1 -1
  4. package/dist/2d/blueprints/Blueprints.d.ts.map +1 -1
  5. package/dist/2d/blueprints/CompoundBlueprint.d.ts.map +1 -1
  6. package/dist/2d/blueprints/blueprintCustomCorners.d.ts.map +1 -1
  7. package/dist/2d/blueprints/cannedBlueprints.d.ts.map +1 -1
  8. package/dist/2d/lib/BoundingBox2d.d.ts +1 -0
  9. package/dist/2d/lib/BoundingBox2d.d.ts.map +1 -1
  10. package/dist/2d/lib/Curve2D.d.ts +1 -0
  11. package/dist/2d/lib/Curve2D.d.ts.map +1 -1
  12. package/dist/2d.cjs +3 -3
  13. package/dist/2d.js +3 -3
  14. package/dist/{Blueprint-C2znXaaZ.cjs → Blueprint-DX6dM_fB.cjs} +21 -11
  15. package/dist/{Blueprint-B_jo065X.js → Blueprint-JYd_kdC5.js} +21 -11
  16. package/dist/{shapeFns-csbO4RSU.cjs → arrayAccess-BrH0ase6.cjs} +76 -23
  17. package/dist/{shapeFns-glO_2u3k.js → arrayAccess-CswTjB3U.js} +59 -24
  18. package/dist/{blueprintFns-CxfjtauU.cjs → blueprintFns-DNiRsh4S.cjs} +3 -3
  19. package/dist/{blueprintFns-bpyUa_XY.js → blueprintFns-DUyzBTeF.js} +3 -3
  20. package/dist/{boolean2D-Bu1v9M_m.cjs → boolean2D-ByJ-oeX1.cjs} +351 -350
  21. package/dist/{boolean2D-yyAQW-Rw.js → boolean2D-SeTIJXii.js} +352 -351
  22. package/dist/{booleanFns-hPtsWvKU.cjs → booleanFns-BfdopMkS.cjs} +32 -32
  23. package/dist/{booleanFns-ZBHOH5IJ.js → booleanFns-C5YHveic.js} +21 -21
  24. package/dist/brepjs.cjs +111 -111
  25. package/dist/brepjs.js +41 -32
  26. package/dist/core/dimensionTypes.d.ts.map +1 -1
  27. package/dist/core/errors.d.ts +2 -0
  28. package/dist/core/errors.d.ts.map +1 -1
  29. package/dist/core/shapeTypes.d.ts +7 -1
  30. package/dist/core/shapeTypes.d.ts.map +1 -1
  31. package/dist/core/typeDiscriminants.d.ts +3 -1
  32. package/dist/core/typeDiscriminants.d.ts.map +1 -1
  33. package/dist/core.cjs +3 -3
  34. package/dist/core.js +3 -3
  35. package/dist/{cornerFinder-Bhpxe2GK.js → cornerFinder-BBLIbDCi.js} +3 -2
  36. package/dist/{cornerFinder-D1iNCBMe.cjs → cornerFinder-a_a15ABE.cjs} +3 -2
  37. package/dist/{curveFns-D1LG7v0s.js → curveFns-BYBUrMfs.js} +2 -2
  38. package/dist/{curveFns-C_MUV5Nj.cjs → curveFns-QSHCv-03.cjs} +2 -2
  39. package/dist/{drawFns-DWfKZyed.js → drawFns-BKeDnnWz.js} +126 -125
  40. package/dist/{drawFns-CgtSyuBg.cjs → drawFns-DzssRCeR.cjs} +127 -126
  41. package/dist/{errors-B2qrBS1S.js → errors-BR1gOLRZ.js} +2 -0
  42. package/dist/{errors-Bkxm3vs2.cjs → errors-Czwm1_Ti.cjs} +2 -0
  43. package/dist/{extrudeFns-GVLc2cLp.js → extrudeFns-BdEbnHiq.js} +4 -4
  44. package/dist/{extrudeFns-C2Pmhe-R.cjs → extrudeFns-C8hZmh0E.cjs} +4 -4
  45. package/dist/{faceFns-KUsSM65w.cjs → faceFns-B-maQLT5.cjs} +2 -2
  46. package/dist/{faceFns-C-HZ3rFB.js → faceFns-ClROnDk8.js} +2 -2
  47. package/dist/{helpers-CPw-TkjO.js → helpers-B4DtSiHU.js} +6 -6
  48. package/dist/{helpers-C5QjF_x8.cjs → helpers-VApXqQXy.cjs} +9 -9
  49. package/dist/{historyFns-9JUnw1_O.cjs → historyFns-B6wY5d78.cjs} +6 -6
  50. package/dist/{historyFns-C-HhJKjF.js → historyFns-BVmGuJJJ.js} +5 -5
  51. package/dist/{importFns-CyPkUA_N.cjs → importFns-BeGWqiwF.cjs} +11 -10
  52. package/dist/{importFns-beNdL_tU.js → importFns-DoazdU3-.js} +11 -10
  53. package/dist/index.d.ts +11 -12
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/io/gltfExportFns.d.ts.map +1 -1
  56. package/dist/io.cjs +2 -2
  57. package/dist/io.js +2 -2
  58. package/dist/kernel/advancedOps.d.ts.map +1 -1
  59. package/dist/kernel/evolutionOps.d.ts +5 -6
  60. package/dist/kernel/evolutionOps.d.ts.map +1 -1
  61. package/dist/kernel/extendedConstructorOps.d.ts.map +1 -1
  62. package/dist/kernel/index.d.ts +35 -1
  63. package/dist/kernel/index.d.ts.map +1 -1
  64. package/dist/kernel/interfaces/index.d.ts +0 -4
  65. package/dist/kernel/interfaces/index.d.ts.map +1 -1
  66. package/dist/kernel/wasm-types/externals.d.ts +41 -0
  67. package/dist/kernel/wasm-types/externals.d.ts.map +1 -0
  68. package/dist/kernel/wasm-types/index.d.ts +3 -0
  69. package/dist/kernel/wasm-types/index.d.ts.map +1 -0
  70. package/dist/kernel/wasm-types/occtBuilders.d.ts +48 -0
  71. package/dist/kernel/wasm-types/occtBuilders.d.ts.map +1 -0
  72. package/dist/{measureFns-BVKhgZAe.js → measureFns-BkWSCYIc.js} +3 -3
  73. package/dist/{measureFns-Gmok6h3t.cjs → measureFns-DBRrplFM.cjs} +3 -3
  74. package/dist/measurement.cjs +1 -1
  75. package/dist/measurement.js +1 -1
  76. package/dist/{meshFns-D5CPzlWP.js → meshFns-B-g1WpYc.js} +3 -3
  77. package/dist/{meshFns-CW1EUdGe.cjs → meshFns-DobRCF8g.cjs} +4 -4
  78. package/dist/operations/compoundOpsFns.d.ts.map +1 -1
  79. package/dist/operations/loftFns.d.ts.map +1 -1
  80. package/dist/operations/roofFns.d.ts.map +1 -1
  81. package/dist/operations/straightSkeleton.d.ts +2 -5
  82. package/dist/operations/straightSkeleton.d.ts.map +1 -1
  83. package/dist/operations/sweepFns.d.ts.map +1 -1
  84. package/dist/operations.cjs +2 -2
  85. package/dist/operations.js +2 -2
  86. package/dist/{planeOps-CXJOsSMJ.cjs → planeOps-CSs66pta.cjs} +1 -1
  87. package/dist/{planeOps-PYHm_Q9z.js → planeOps-DOannb3i.js} +1 -1
  88. package/dist/{primitiveFns-Bc6T6M50.cjs → primitiveFns-CQI47Dnn.cjs} +16 -16
  89. package/dist/{primitiveFns-CpVWHp6V.js → primitiveFns-X4y5Xuai.js} +6 -6
  90. package/dist/query/cornerFinder.d.ts.map +1 -1
  91. package/dist/query/vertexFinder.d.ts.map +1 -1
  92. package/dist/query.cjs +2 -2
  93. package/dist/query.js +2 -2
  94. package/dist/result.cjs +1 -1
  95. package/dist/result.js +1 -1
  96. package/dist/{shapeTypes-DQiNnWj0.cjs → shapeTypes-CU-C-shE.cjs} +101 -4
  97. package/dist/{shapeTypes-DkpaETrw.js → shapeTypes-mvXCEAMH.js} +84 -5
  98. package/dist/sketching/CompoundSketch.d.ts.map +1 -1
  99. package/dist/sketching/cannedSketches.d.ts.map +1 -1
  100. package/dist/sketching/draw.d.ts.map +1 -1
  101. package/dist/sketching/drawFns.d.ts.map +1 -1
  102. package/dist/sketching.cjs +2 -2
  103. package/dist/sketching.js +2 -2
  104. package/dist/{solidBuilders-j86aJBNd.js → solidBuilders-BNuFyNAn.js} +3 -3
  105. package/dist/{solidBuilders-CroCRISt.cjs → solidBuilders-CGNnvfYb.cjs} +3 -3
  106. package/dist/{surfaceBuilders-BZWDla4x.js → surfaceBuilders-CLOCsrlS.js} +3 -3
  107. package/dist/{surfaceBuilders-DVRuWItl.cjs → surfaceBuilders-DHId1EJI.cjs} +3 -3
  108. package/dist/text/textBlueprints.d.ts +3 -2
  109. package/dist/text/textBlueprints.d.ts.map +1 -1
  110. package/dist/topology/api.d.ts +1 -1
  111. package/dist/topology/api.d.ts.map +1 -1
  112. package/dist/topology/booleanFns.d.ts.map +1 -1
  113. package/dist/topology/topologyQueryFns.d.ts.map +1 -1
  114. package/dist/topology/transformFns.d.ts +5 -4
  115. package/dist/topology/transformFns.d.ts.map +1 -1
  116. package/dist/topology.cjs +20 -20
  117. package/dist/topology.js +6 -6
  118. package/dist/utils/arrayAccess.d.ts +12 -0
  119. package/dist/utils/arrayAccess.d.ts.map +1 -0
  120. package/dist/vectors.cjs +1 -1
  121. package/dist/vectors.js +1 -1
  122. 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). Manual setup:
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":"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"}
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;IAQjD,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
+ {"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;AAChD,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,WASP;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;IAQxD,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;IAKtB,uEAAuE;IACvE,YAAY,CAAC,MAAM,SAAI;IAIvB,6DAA6D;IAC7D,UAAU;IAIV,gEAAgE;IAChE,UAAU;IAIV,yEAAyE;IACzE,KAAK,CAAC,MAAM,SAAI;CAGjB"}
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;AAKrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAgF9C;;;;;;;;;;;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
+ {"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;AAG5C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,YAAY,MAAM,EAAE,gBAAW,KAAG,SAkBpF,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"}
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"}
@@ -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 require_Blueprint = require("./Blueprint-C2znXaaZ.cjs");
3
- const require_boolean2D = require("./boolean2D-Bu1v9M_m.cjs");
4
- const require_blueprintFns = require("./blueprintFns-CxfjtauU.cjs");
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 { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./Blueprint-B_jo065X.js";
2
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as Blueprints, i as cutBlueprints, m as organiseBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-yyAQW-Rw.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-bpyUa_XY.js";
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-DQiNnWj0.cjs");
2
- const require_errors = require("./errors-Bkxm3vs2.cjs");
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-CXJOsSMJ.cjs");
6
- const require_faceFns = require("./faceFns-KUsSM65w.cjs");
7
- const require_curveFns = require("./curveFns-C_MUV5Nj.cjs");
8
- const require_surfaceBuilders = require("./surfaceBuilders-DVRuWItl.cjs");
9
- const require_helpers = require("./helpers-C5QjF_x8.cjs");
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[(i + 1) % vertices.length];
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[0].firstPoint;
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[0].firstPoint;
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 this.curves[this.curves.length - 1].lastPoint;
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 { G as getKernel2D, L as registerForCleanup, W as getKernel, i as createEdge, l as createWire, z as unregisterFromCleanup } from "./shapeTypes-DkpaETrw.js";
2
- import { L as unwrap, d as validationError, k as ok, m as bug, n as computationError, y as err } from "./errors-B2qrBS1S.js";
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-PYHm_Q9z.js";
6
- import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-C-HZ3rFB.js";
7
- import { f as getOrientation } from "./curveFns-D1LG7v0s.js";
8
- import { r as makeFace } from "./surfaceBuilders-BZWDla4x.js";
9
- import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-CPw-TkjO.js";
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[(i + 1) % vertices.length];
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[0].firstPoint;
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[0].firstPoint;
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[this.curves.length - 1].lastPoint;
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-DQiNnWj0.cjs");
2
- const require_errors = require("./errors-Bkxm3vs2.cjs");
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-KUsSM65w.cjs");
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 = Array.from(require_faceFns.iterTopo(shape.wrapped, "edge")).map((e) => require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(e))));
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 = Array.from(require_faceFns.iterTopo(shape.wrapped, "face")).map((e) => require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(e))));
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 = Array.from(require_faceFns.iterTopo(shape.wrapped, "wire")).map((e) => require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(e))));
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 = Array.from(require_faceFns.iterTopo(shape.wrapped, "vertex")).map((e) => require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(e))));
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 require_faceFns.iterTopo(shape.wrapped, "edge")) yield require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(e)));
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 require_faceFns.iterTopo(shape.wrapped, "face")) yield require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(f)));
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 require_faceFns.iterTopo(shape.wrapped, "wire")) yield require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(w)));
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 require_faceFns.iterTopo(shape.wrapped, "vertex")) yield require_shapeTypes.castShape(require_errors.unwrap(require_faceFns.downcast(v)));
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)) throw new Error("resize: non-uniform scaling is not supported (WASM build lacks BRepBuilderAPI_GTransform). Use auto: true to scale proportionally, or set all three dimensions to achieve uniform scaling.");
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) throw new Error(`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.`);
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 { linear, translation } = parseMatrixInput(matrix);
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) throw new Error("applyMatrix: singular matrix (determinant ≈ 0). Cannot apply a non-invertible transform.");
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 kernel transform.
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() {