brepjs 15.1.8 → 15.1.10

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 (79) hide show
  1. package/dist/2d/blueprints/blueprint.d.ts.map +1 -1
  2. package/dist/2d/blueprints/blueprintOffset.d.ts.map +1 -1
  3. package/dist/2d/blueprints/intersectionSegments.d.ts.map +1 -1
  4. package/dist/2d/curve2dGeometryFns.d.ts +6 -0
  5. package/dist/2d/curve2dGeometryFns.d.ts.map +1 -1
  6. package/dist/2d/curves.d.ts.map +1 -1
  7. package/dist/2d/lib/curve2D.d.ts +4 -2
  8. package/dist/2d/lib/curve2D.d.ts.map +1 -1
  9. package/dist/2d/lib/offset.d.ts.map +1 -1
  10. package/dist/2d/lib/stitching.d.ts.map +1 -1
  11. package/dist/2d.cjs +22 -5
  12. package/dist/2d.d.ts +1 -1
  13. package/dist/2d.d.ts.map +1 -1
  14. package/dist/2d.js +20 -6
  15. package/dist/{blueprint-CjWjaFBx.cjs → blueprint-BvUKWbkE.cjs} +63 -43
  16. package/dist/{blueprint-BOICL-YA.js → blueprint-DD20bL3n.js} +63 -43
  17. package/dist/{blueprintFns-PEdKpSH9.cjs → blueprintFns-DFLtehf-.cjs} +2 -2
  18. package/dist/{blueprintFns-DIDr-6k3.js → blueprintFns-DLDx4XFc.js} +2 -2
  19. package/dist/{boolean2D-DIrXfRsK.cjs → boolean2D-CQE7rswO.cjs} +58 -28
  20. package/dist/{boolean2D-rza7Dzie.js → boolean2D-CpSRx5_U.js} +58 -28
  21. package/dist/{booleanFns-CrxLrhiY.js → booleanFns-C-IpkYUW.js} +4 -4
  22. package/dist/{booleanFns-BnuuzsmS.cjs → booleanFns-D3wX7_qO.cjs} +4 -4
  23. package/dist/brepjs.cjs +20 -20
  24. package/dist/brepjs.js +20 -20
  25. package/dist/core.cjs +1 -1
  26. package/dist/core.js +1 -1
  27. package/dist/{cornerFinder-lvtKN6D-.cjs → cornerFinder-BybcZVxL.cjs} +1 -1
  28. package/dist/{cornerFinder-BqBKxpw9.js → cornerFinder-C7k0yipe.js} +1 -1
  29. package/dist/{curveFns-BAYdU9o3.cjs → curveFns-BErRtKDj.cjs} +1 -1
  30. package/dist/{curveFns-ZfTMJwOX.js → curveFns-DbIakl9J.js} +1 -1
  31. package/dist/{drawFns-Be2-GMV1.cjs → drawFns-Bk5q5z-m.cjs} +35 -21
  32. package/dist/{drawFns-DecOOibJ.js → drawFns-tyuGCCqm.js} +35 -21
  33. package/dist/{extrudeFns-r4z8JjXR.cjs → extrudeFns-7_WDVoEg.cjs} +1 -1
  34. package/dist/{extrudeFns-BayH4aST.js → extrudeFns-pjrR5ECA.js} +1 -1
  35. package/dist/{faceFns-D3Ge4FIP.cjs → faceFns-B8y0xqpK.cjs} +1 -1
  36. package/dist/{faceFns-B0abunWd.js → faceFns-wSgaAQrJ.js} +1 -1
  37. package/dist/{helpers-BKiwf-pE.cjs → helpers-CpCe09zS.cjs} +5 -5
  38. package/dist/{helpers-D4PQ7xhP.js → helpers-DsVYL2Ri.js} +5 -5
  39. package/dist/{historyFns-DUIQaLVi.cjs → historyFns-DAY8a7Ss.cjs} +4 -4
  40. package/dist/{historyFns-BoRzKlCs.js → historyFns-s3knhOiM.js} +4 -4
  41. package/dist/{importFns-C3q2BF1x.cjs → importFns-B-5chCzB.cjs} +2 -2
  42. package/dist/{importFns-BUO0pwJ6.js → importFns-C0Edyiov.js} +2 -2
  43. package/dist/io.cjs +2 -2
  44. package/dist/io.js +2 -2
  45. package/dist/kernel/geometry2d.d.ts.map +1 -1
  46. package/dist/kernel/occt/kernel2dOps.d.ts.map +1 -1
  47. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  48. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  49. package/dist/{measureFns-_58_x_YA.js → measureFns-gRr84qGk.js} +2 -2
  50. package/dist/{measureFns-CEBFLLb5.cjs → measureFns-vgnbVhDc.cjs} +2 -2
  51. package/dist/measurement.cjs +1 -1
  52. package/dist/measurement.js +1 -1
  53. package/dist/{meshFns-Df6b-fuz.js → meshFns-CA6fJ-Z0.js} +2 -2
  54. package/dist/{meshFns-crHPkhoE.cjs → meshFns-rMEka_pV.cjs} +2 -2
  55. package/dist/{occtWasmAdapter-B8K7kN7m.js → occtWasmAdapter-BBr9e9ej.js} +30 -1
  56. package/dist/{occtWasmAdapter-DYjViuTQ.cjs → occtWasmAdapter-DcGOi3MQ.cjs} +30 -1
  57. package/dist/operations.cjs +2 -2
  58. package/dist/operations.js +2 -2
  59. package/dist/{primitiveFns-D4h33-Zc.cjs → primitiveFns-B1R8RWjt.cjs} +5 -5
  60. package/dist/{primitiveFns-BpSN8ikw.js → primitiveFns-DtfUR91z.js} +5 -5
  61. package/dist/query.cjs +2 -2
  62. package/dist/query.js +2 -2
  63. package/dist/{shapeFns-DFey0u1e.cjs → shapeFns-BtGq6ZqD.cjs} +2 -2
  64. package/dist/{shapeFns-CU69rY5c.js → shapeFns-ClKIHb3P.js} +2 -2
  65. package/dist/shapeRef.cjs +1 -1
  66. package/dist/shapeRef.js +1 -1
  67. package/dist/{shapeRefFns-BXfiUUBm.js → shapeRefFns-DjWRttT2.js} +3 -3
  68. package/dist/{shapeRefFns-KTeGJjhQ.cjs → shapeRefFns-MA4_U4Fn.cjs} +3 -3
  69. package/dist/{shapeTypes-DhdxzErV.cjs → shapeTypes-Cs7uihz8.cjs} +9 -3
  70. package/dist/{shapeTypes-Ct7hPC-B.js → shapeTypes-Qh4ErtGx.js} +8 -3
  71. package/dist/sketching.cjs +2 -2
  72. package/dist/sketching.js +2 -2
  73. package/dist/{solidBuilders-QEzWeF-_.cjs → solidBuilders-BMv6UQUY.cjs} +2 -2
  74. package/dist/{solidBuilders-etpPzJCP.js → solidBuilders-CHvrwtLL.js} +2 -2
  75. package/dist/{surfaceBuilders-Bret7wF4.cjs → surfaceBuilders-Bgc5TlIe.cjs} +2 -2
  76. package/dist/{surfaceBuilders-DyR1Pdu_.js → surfaceBuilders-CL8MJABt.js} +2 -2
  77. package/dist/topology.cjs +6 -6
  78. package/dist/topology.js +6 -6
  79. package/package.json +1 -1
@@ -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":"blueprintOffset.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/blueprintOffset.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,OAAO,EAQR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAGvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA0N9C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,cAAmB,GAChC,OAAO,EAAE,CAgGX;AAOD,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CAC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,cAAmB,GAChC,OAAO,CA6CT;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,EAAE,EAAE,OAAO,EACX,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,cAAmB,GAChC,OAAO,CAeT"}
1
+ {"version":3,"file":"blueprintOffset.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/blueprintOffset.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,OAAO,EAQR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAGvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAiO9C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,cAAmB,GAChC,OAAO,EAAE,CAgGX;AAOD,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CAC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,cAAmB,GAChC,OAAO,CA6DT;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,EAAE,EAAE,OAAO,EACX,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,cAAmB,GAChC,OAAO,CAeT"}
@@ -1 +1 @@
1
- {"version":3,"file":"intersectionSegments.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/intersectionSegments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAY5C,OAAO,KAAK,EAAW,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AA2KxE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,oBAAoB,EAAE,OAAO,EAAE,EAAE,EACjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAQT;AAMD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,mBAAmB,EAAE,GAAG,IAAI,CAwE9B"}
1
+ {"version":3,"file":"intersectionSegments.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/intersectionSegments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAY5C,OAAO,KAAK,EAAW,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAuLxE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,oBAAoB,EAAE,OAAO,EAAE,EAAE,EACjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAQT;AAMD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,mBAAmB,EAAE,GAAG,IAAI,CAsF9B"}
@@ -104,4 +104,10 @@ export declare function distanceBetweenCurves2d(c1: Curve2DHandle, c2: Curve2DHa
104
104
  export declare function liftCurve2dToPlane(curve: Curve2DHandle, plane: Plane): Result<Edge>;
105
105
  /** Extract the 2D parametric curve of a 3D edge on a face. */
106
106
  export declare function extractCurve2dFromEdge(edge: Edge, face: Face): Result<Curve2DHandle>;
107
+ /** Trim a 2D curve to a sub-range of its parameter domain. */
108
+ export declare function trimCurve2d(curve: Curve2DHandle, start: number, end: number): Result<Curve2DHandle>;
109
+ /** Create an independent deep copy of a 2D curve. */
110
+ export declare function copyCurve2d(curve: Curve2DHandle): Result<Curve2DHandle>;
111
+ /** Split a 2D curve at the given parameter values. */
112
+ export declare function splitCurve2d(curve: Curve2DHandle, params: number[]): Result<Curve2DHandle[]>;
107
113
  //# sourceMappingURL=curve2dGeometryFns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"curve2dGeometryFns.d.ts","sourceRoot":"","sources":["../../src/2d/curve2dGeometryFns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curve2dGeometryFns.d.ts","sourceRoot":"","sources":["../../src/2d/curve2dGeometryFns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"curves.d.ts","sourceRoot":"","sources":["../../src/2d/curves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAExD,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,EAAE,KAAG,aAOrD,CAAC;AAEF,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,CAO5E;AAED,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,GAAI,QAAQ,OAAO,EAAE,EAAE,UAAU,UAAU,KAAG,IAAI,EAKpF,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAC1B,QAAQ,OAAO,EAAE,EAEjB,gBAAgB,UAAU,GAAG,IAAI,KAChC,OAAO,EAMT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,WAAW,OAAO,EAClB,SAAQ,OAAgB,KACvB,gBAEF,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,GAAI,aAAa,OAAO,KAAG,gBAE7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,mBAAmB,OAAO,EAC1B,SAAQ,OAAgB,EACxB,aAAe,KACd,gBAaF,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,SAAQ,OAAgB,KAAG,gBAE3E,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EACnB,SAAQ,OAAgB,KACvB,gBAEF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,EAAE,IAAI,EACV,KAAK,GAAE,SAAsB,GAC5B,MAAM,CAAC,IAAI,EAAE,CAAC,CA0EhB;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD"}
1
+ {"version":3,"file":"curves.d.ts","sourceRoot":"","sources":["../../src/2d/curves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAExD,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,OAAO,EAAE,KAAG,aAOrD,CAAC;AAEF,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,CAO5E;AAED,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,GAAI,QAAQ,OAAO,EAAE,EAAE,UAAU,UAAU,KAAG,IAAI,EAKpF,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAC1B,QAAQ,OAAO,EAAE,EAEjB,gBAAgB,UAAU,GAAG,IAAI,KAChC,OAAO,EAMT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,WAAW,OAAO,EAClB,SAAQ,OAAgB,KACvB,gBAEF,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,GAAI,aAAa,OAAO,KAAG,gBAE7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,mBAAmB,OAAO,EAC1B,SAAQ,OAAgB,EACxB,aAAe,KACd,gBAaF,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,SAAQ,OAAgB,KAAG,gBAE3E,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EACnB,SAAQ,OAAgB,KACvB,gBAEF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,EAAE,IAAI,EACV,KAAK,GAAE,SAAsB,GAC5B,MAAM,CAAC,IAAI,EAAE,CAAC,CAyEhB;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD"}
@@ -21,6 +21,8 @@ export declare class Curve2D {
21
21
  _boundingBox: null | BoundingBox2d;
22
22
  private _firstPoint;
23
23
  private _lastPoint;
24
+ private _firstParameter;
25
+ private _lastParameter;
24
26
  constructor(handle: KernelType);
25
27
  get wrapped(): KernelType;
26
28
  delete(): void;
@@ -37,9 +39,9 @@ export declare class Curve2D {
37
39
  get firstPoint(): Point2D;
38
40
  /** Return the point at the end of the curve (cached after first access). */
39
41
  get lastPoint(): Point2D;
40
- /** Return the parameter value at the start of the curve. */
42
+ /** Return the parameter value at the start of the curve (cached after first access). */
41
43
  get firstParameter(): number;
42
- /** Return the parameter value at the end of the curve. */
44
+ /** Return the parameter value at the end of the curve (cached after first access). */
43
45
  get lastParameter(): number;
44
46
  /** Return the geometric type of this curve (e.g. `LINE`, `CIRCLE`, `BSPLINE_CURVE`). */
45
47
  get geomType(): CurveType;
@@ -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,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,kBAAkB,CAAC;AAMhE,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;IAsC3D;;;;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,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,kBAAkB,CAAC;AAMhE,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;IAC1C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAAuB;gBAEjC,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,wFAAwF;IACxF,IAAI,cAAc,IAAI,MAAM,CAK3B;IAED,sFAAsF;IACtF,IAAI,aAAa,IAAI,MAAM,CAK1B;IAED,wFAAwF;IACxF,IAAI,QAAQ,IAAI,SAAS,CAExB;IAED,qDAAqD;IACrD,KAAK,IAAI,OAAO;IAUhB,sDAAsD;IACtD,OAAO,IAAI,IAAI;IAUf,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;IAsC3D;;;;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 +1 @@
1
- {"version":3,"file":"offset.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/offset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAmBhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,OAAO,EACd,QAAQ,MAAM,KACb,OAAO,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CA4EtE,CAAC"}
1
+ {"version":3,"file":"offset.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/offset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAmBhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,OAAO,EACd,QAAQ,MAAM,KACb,OAAO,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAoFtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stitching.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/stitching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,OAAO,EAAE,EAAE,kBAAgB,KAAG,OAAO,EAAE,EAwE3E,CAAC"}
1
+ {"version":3,"file":"stitching.d.ts","sourceRoot":"","sources":["../../../src/2d/lib/stitching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,OAAO,EAAE,EAAE,kBAAgB,KAAG,OAAO,EAAE,EAqE3E,CAAC"}
package/dist/2d.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-DhdxzErV.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-Cs7uihz8.cjs");
3
3
  const require_errors = require("./errors-CXRNVCec.cjs");
4
- const require_faceFns = require("./faceFns-D3Ge4FIP.cjs");
5
- const require_boolean2D = require("./boolean2D-DIrXfRsK.cjs");
6
- const require_blueprint = require("./blueprint-CjWjaFBx.cjs");
7
- const require_blueprintFns = require("./blueprintFns-PEdKpSH9.cjs");
4
+ const require_faceFns = require("./faceFns-B8y0xqpK.cjs");
5
+ const require_boolean2D = require("./boolean2D-CQE7rswO.cjs");
6
+ const require_blueprint = require("./blueprint-BvUKWbkE.cjs");
7
+ const require_blueprintFns = require("./blueprintFns-DFLtehf-.cjs");
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -204,6 +204,20 @@ function liftCurve2dToPlane(curve, plane) {
204
204
  function extractCurve2dFromEdge(edge, face) {
205
205
  return curveCall(() => require_shapeTypes.getKernel2D().extractCurve2dFromEdge(edge.wrapped, face.wrapped), CURVE2D_BRIDGE_FAILED, "Failed to extract 2D curve from edge");
206
206
  }
207
+ /** Trim a 2D curve to a sub-range of its parameter domain. */
208
+ function trimCurve2d(curve, start, end) {
209
+ return curveCall(() => require_shapeTypes.getKernel2D().trimCurve2d(curve.raw, start, end), CURVE2D_CONSTRUCTION_FAILED, "Failed to trim 2D curve");
210
+ }
211
+ /** Create an independent deep copy of a 2D curve. */
212
+ function copyCurve2d(curve) {
213
+ return curveCall(() => require_shapeTypes.getKernel2D().copyCurve2d(curve.raw), CURVE2D_CONSTRUCTION_FAILED, "Failed to copy 2D curve");
214
+ }
215
+ /** Split a 2D curve at the given parameter values. */
216
+ function splitCurve2d(curve, params) {
217
+ return require_faceFns.kernelCallRaw(() => {
218
+ return require_shapeTypes.getKernel2D().splitCurve2d(curve.raw, params).map((h) => wrapRawHandle(h));
219
+ }, CURVE2D_CONSTRUCTION_FAILED, "Failed to split 2D curve");
220
+ }
207
221
  //#endregion
208
222
  exports.Blueprint = require_blueprint.Blueprint;
209
223
  exports.Blueprints = require_boolean2D.Blueprints;
@@ -216,6 +230,7 @@ exports.bezier2d = bezier2d;
216
230
  exports.boundsCurve2d = boundsCurve2d;
217
231
  exports.bspline2d = bspline2d;
218
232
  exports.circle2d = circle2d;
233
+ exports.copyCurve2d = copyCurve2d;
219
234
  exports.createBlueprint = require_blueprintFns.createBlueprint;
220
235
  exports.createCurve2DHandle = createCurve2DHandle;
221
236
  exports.curve2dBoundingBox = require_blueprintFns.curve2dBoundingBox;
@@ -258,9 +273,11 @@ exports.scale2D = require_blueprintFns.scale2D;
258
273
  exports.scaleCurve2d = scaleCurve2d;
259
274
  exports.sketchOnFace2D = require_blueprintFns.sketchOnFace2D;
260
275
  exports.sketchOnPlane2D = require_blueprintFns.sketchOnPlane2D;
276
+ exports.splitCurve2d = splitCurve2d;
261
277
  exports.stretch2D = require_blueprintFns.stretch2D;
262
278
  exports.tangentCurve2d = tangentCurve2d;
263
279
  exports.toSVGPathD = require_blueprintFns.toSVGPathD;
264
280
  exports.translate2D = require_blueprintFns.translate2D;
265
281
  exports.translateCurve2d = translateCurve2d;
282
+ exports.trimCurve2d = trimCurve2d;
266
283
  exports.typeCurve2d = typeCurve2d;
package/dist/2d.d.ts CHANGED
@@ -17,7 +17,7 @@ export { createBlueprint, getBounds2D, getOrientation2D, isInside2D, toSVGPathD,
17
17
  export { fuseBlueprints, cutBlueprints, intersectBlueprints, } from './2d/blueprints/booleanOperations.js';
18
18
  export { fuse2D, cut2D, intersect2D, type Shape2D } from './2d/blueprints/boolean2D.js';
19
19
  export { reverseCurve, curve2dBoundingBox, curve2dFirstPoint, curve2dLastPoint, curve2dSplitAt, curve2dParameter, curve2dTangentAt, curve2dIsOnCurve, curve2dDistanceFrom, } from './2d/lib/curve2dFns.js';
20
- export { line2d, circle2d, arc2d, arc2dTangent, ellipse2d, ellipseArc2d, bezier2d, bspline2d, translateCurve2d, rotateCurve2d, scaleCurve2d, mirrorCurve2d, mirrorCurve2dAcrossAxis, offsetCurve2d, evaluateCurve2d, tangentCurve2d, boundsCurve2d, typeCurve2d, intersectCurves2d, projectPointOnCurve2d, distanceBetweenCurves2d, liftCurve2dToPlane, extractCurve2dFromEdge, type Ellipse2dOptions, type BSpline2dOptions, } from './2d/curve2dGeometryFns.js';
20
+ export { line2d, circle2d, arc2d, arc2dTangent, ellipse2d, ellipseArc2d, bezier2d, bspline2d, translateCurve2d, rotateCurve2d, scaleCurve2d, mirrorCurve2d, mirrorCurve2dAcrossAxis, offsetCurve2d, evaluateCurve2d, tangentCurve2d, boundsCurve2d, typeCurve2d, intersectCurves2d, projectPointOnCurve2d, distanceBetweenCurves2d, liftCurve2dToPlane, extractCurve2dFromEdge, trimCurve2d, copyCurve2d, splitCurve2d, type Ellipse2dOptions, type BSpline2dOptions, } from './2d/curve2dGeometryFns.js';
21
21
  export { type Point2D, BoundingBox2d, Curve2D } from './2d/lib/index.js';
22
22
  export { type Curve2DHandle, createCurve2DHandle } from './core/curve2dHandle.js';
23
23
  export { organiseBlueprints } from './2d/blueprints/lib.js';
package/dist/2d.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"2d.d.ts","sourceRoot":"","sources":["../src/2d.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,EACL,eAAe,EAEf,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,cAAc,GACf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAIxF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,KAAK,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACpG,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"2d.d.ts","sourceRoot":"","sources":["../src/2d.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,EACL,eAAe,EAEf,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,cAAc,GACf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAIxF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,KAAK,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACpG,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/2d.js CHANGED
@@ -1,9 +1,9 @@
1
- import { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-Ct7hPC-B.js";
1
+ import { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-Qh4ErtGx.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
3
- import { B as kernelCallRaw } from "./faceFns-B0abunWd.js";
4
- import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-rza7Dzie.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-BOICL-YA.js";
6
- 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-DIDr-6k3.js";
3
+ import { B as kernelCallRaw } from "./faceFns-wSgaAQrJ.js";
4
+ import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CpSRx5_U.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-DD20bL3n.js";
6
+ 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-DLDx4XFc.js";
7
7
  //#region src/core/curve2dHandle.ts
8
8
  /**
9
9
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -203,5 +203,19 @@ function liftCurve2dToPlane(curve, plane) {
203
203
  function extractCurve2dFromEdge(edge, face) {
204
204
  return curveCall(() => getKernel2D().extractCurve2dFromEdge(edge.wrapped, face.wrapped), CURVE2D_BRIDGE_FAILED, "Failed to extract 2D curve from edge");
205
205
  }
206
+ /** Trim a 2D curve to a sub-range of its parameter domain. */
207
+ function trimCurve2d(curve, start, end) {
208
+ return curveCall(() => getKernel2D().trimCurve2d(curve.raw, start, end), CURVE2D_CONSTRUCTION_FAILED, "Failed to trim 2D curve");
209
+ }
210
+ /** Create an independent deep copy of a 2D curve. */
211
+ function copyCurve2d(curve) {
212
+ return curveCall(() => getKernel2D().copyCurve2d(curve.raw), CURVE2D_CONSTRUCTION_FAILED, "Failed to copy 2D curve");
213
+ }
214
+ /** Split a 2D curve at the given parameter values. */
215
+ function splitCurve2d(curve, params) {
216
+ return kernelCallRaw(() => {
217
+ return getKernel2D().splitCurve2d(curve.raw, params).map((h) => wrapRawHandle(h));
218
+ }, CURVE2D_CONSTRUCTION_FAILED, "Failed to split 2D curve");
219
+ }
206
220
  //#endregion
207
- export { Blueprint, Blueprints, BoundingBox2d, CompoundBlueprint, Curve2D, arc2d, arc2dTangent, bezier2d, boundsCurve2d, bspline2d, circle2d, createBlueprint, createCurve2DHandle, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, cut2D, cutBlueprints, distanceBetweenCurves2d, ellipse2d, ellipseArc2d, evaluateCurve2d, extractCurve2dFromEdge, fuse2D, fuseBlueprints, getBounds2D, getOrientation2D, intersect2D, intersectBlueprints, intersectCurves2d, isInside2D, liftCurve2dToPlane, line2d, mirror2D, mirrorCurve2d, mirrorCurve2dAcrossAxis, offsetCurve2d, organiseBlueprints, polysidesBlueprint, projectPointOnCurve2d, reverseCurve, rotate2D, rotateCurve2d, roundedRectangleBlueprint, scale2D, scaleCurve2d, sketchOnFace2D, sketchOnPlane2D, stretch2D, tangentCurve2d, toSVGPathD, translate2D, translateCurve2d, typeCurve2d };
221
+ export { Blueprint, Blueprints, BoundingBox2d, CompoundBlueprint, Curve2D, arc2d, arc2dTangent, bezier2d, boundsCurve2d, bspline2d, circle2d, copyCurve2d, createBlueprint, createCurve2DHandle, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, cut2D, cutBlueprints, distanceBetweenCurves2d, ellipse2d, ellipseArc2d, evaluateCurve2d, extractCurve2dFromEdge, fuse2D, fuseBlueprints, getBounds2D, getOrientation2D, intersect2D, intersectBlueprints, intersectCurves2d, isInside2D, liftCurve2dToPlane, line2d, mirror2D, mirrorCurve2d, mirrorCurve2dAcrossAxis, offsetCurve2d, organiseBlueprints, polysidesBlueprint, projectPointOnCurve2d, reverseCurve, rotate2D, rotateCurve2d, roundedRectangleBlueprint, scale2D, scaleCurve2d, sketchOnFace2D, sketchOnPlane2D, splitCurve2d, stretch2D, tangentCurve2d, toSVGPathD, translate2D, translateCurve2d, trimCurve2d, typeCurve2d };
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-DhdxzErV.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Cs7uihz8.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-D3Ge4FIP.cjs");
3
+ const require_faceFns = require("./faceFns-B8y0xqpK.cjs");
4
4
  const require_types = require("./types-hXSlplF3.cjs");
5
5
  const require_planeOps = require("./planeOps-DoTESDTM.cjs");
6
- const require_curveFns = require("./curveFns-BAYdU9o3.cjs");
6
+ const require_curveFns = require("./curveFns-BErRtKDj.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-CmulMesb.cjs");
8
- const require_surfaceBuilders = require("./surfaceBuilders-Bret7wF4.cjs");
9
- const require_helpers = require("./helpers-BKiwf-pE.cjs");
8
+ const require_surfaceBuilders = require("./surfaceBuilders-Bgc5TlIe.cjs");
9
+ const require_helpers = require("./helpers-CpCe09zS.cjs");
10
10
  //#region src/2d/lib/definitions.ts
11
11
  /** Type guard that checks whether a value is a `Point2D`. */
12
12
  function isPoint2D(point) {
@@ -152,6 +152,8 @@ var Curve2D = class Curve2D {
152
152
  _boundingBox;
153
153
  _firstPoint = null;
154
154
  _lastPoint = null;
155
+ _firstParameter = null;
156
+ _lastParameter = null;
155
157
  constructor(handle) {
156
158
  this._wrapped = require_shapeTypes.getKernel().wrapCurve2dHandle(handle);
157
159
  this._boundingBox = null;
@@ -202,13 +204,15 @@ var Curve2D = class Curve2D {
202
204
  if (this._lastPoint === null) this._lastPoint = this.value(this.lastParameter);
203
205
  return this._lastPoint;
204
206
  }
205
- /** Return the parameter value at the start of the curve. */
207
+ /** Return the parameter value at the start of the curve (cached after first access). */
206
208
  get firstParameter() {
207
- return require_shapeTypes.getKernel().getCurve2dBounds(this.wrapped).first;
209
+ if (this._firstParameter === null) this._firstParameter = require_shapeTypes.getKernel().getCurve2dBounds(this.wrapped).first;
210
+ return this._firstParameter;
208
211
  }
209
- /** Return the parameter value at the end of the curve. */
212
+ /** Return the parameter value at the end of the curve (cached after first access). */
210
213
  get lastParameter() {
211
- return require_shapeTypes.getKernel().getCurve2dBounds(this.wrapped).last;
214
+ if (this._lastParameter === null) this._lastParameter = require_shapeTypes.getKernel().getCurve2dBounds(this.wrapped).last;
215
+ return this._lastParameter;
212
216
  }
213
217
  /** Return the geometric type of this curve (e.g. `LINE`, `CIRCLE`, `BSPLINE_CURVE`). */
214
218
  get geomType() {
@@ -219,14 +223,19 @@ var Curve2D = class Curve2D {
219
223
  const cloned = new Curve2D(require_shapeTypes.getKernel().copyCurve2d(this.wrapped));
220
224
  cloned._firstPoint = this._firstPoint;
221
225
  cloned._lastPoint = this._lastPoint;
226
+ cloned._firstParameter = this._firstParameter;
227
+ cloned._lastParameter = this._lastParameter;
222
228
  return cloned;
223
229
  }
224
230
  /** Reverse the orientation of this curve in place. */
225
231
  reverse() {
226
232
  require_shapeTypes.getKernel().reverseCurve2d(this.wrapped);
227
- const tmp = this._firstPoint;
233
+ const tmpPt = this._firstPoint;
228
234
  this._firstPoint = this._lastPoint;
229
- this._lastPoint = tmp;
235
+ this._lastPoint = tmpPt;
236
+ const tmpParam = this._firstParameter;
237
+ this._firstParameter = this._lastParameter;
238
+ this._lastParameter = tmpParam;
230
239
  }
231
240
  distanceFromPoint(point) {
232
241
  const proj = require_shapeTypes.getKernel().projectPointOnCurve2d(this.wrapped, point[0], point[1]);
@@ -616,30 +625,31 @@ function curvesAsEdgesOnFace(curves, face, scale = "original") {
616
625
  transformation = stretchTransform2d(1 / cylData.radius, [0, 1]);
617
626
  }
618
627
  if (scale === "bounds") {
619
- const uAxis = kernel.createAxis2d(0, 0, 0, 1);
620
- const vAxis = kernel.createAxis2d(0, 0, 1, 0);
621
628
  transformation = kernel.createIdentityGTrsf2d();
622
- kernel.setGTrsf2dTranslationPart(transformation, 0, 0);
623
- const uAffinity = kernel.createAffinityGTrsf2d(0, 0, 0, 1, bounds.uMax - bounds.uMin);
624
- kernel.multiplyGTrsf2d(transformation, uAffinity);
625
- uAffinity.delete();
626
- if (bounds.uMin !== 0) {
627
- const trans = kernel.createIdentityGTrsf2d();
628
- kernel.setGTrsf2dTranslationPart(trans, 0, -bounds.uMin);
629
- kernel.multiplyGTrsf2d(transformation, trans);
630
- trans.delete();
631
- }
632
- const vAffinity = kernel.createAffinityGTrsf2d(0, 0, 1, 0, bounds.vMax - bounds.vMin);
633
- kernel.multiplyGTrsf2d(transformation, vAffinity);
634
- vAffinity.delete();
635
- if (bounds.vMin !== 0) {
636
- const trans = kernel.createIdentityGTrsf2d();
637
- kernel.setGTrsf2dTranslationPart(trans, 0, -bounds.vMin);
638
- kernel.multiplyGTrsf2d(transformation, trans);
639
- trans.delete();
629
+ try {
630
+ kernel.setGTrsf2dTranslationPart(transformation, 0, 0);
631
+ const uAffinity = kernel.createAffinityGTrsf2d(0, 0, 0, 1, bounds.uMax - bounds.uMin);
632
+ kernel.multiplyGTrsf2d(transformation, uAffinity);
633
+ uAffinity.delete();
634
+ if (bounds.uMin !== 0) {
635
+ const trans = kernel.createIdentityGTrsf2d();
636
+ kernel.setGTrsf2dTranslationPart(trans, -bounds.uMin, 0);
637
+ kernel.multiplyGTrsf2d(transformation, trans);
638
+ trans.delete();
639
+ }
640
+ const vAffinity = kernel.createAffinityGTrsf2d(0, 0, 1, 0, bounds.vMax - bounds.vMin);
641
+ kernel.multiplyGTrsf2d(transformation, vAffinity);
642
+ vAffinity.delete();
643
+ if (bounds.vMin !== 0) {
644
+ const trans = kernel.createIdentityGTrsf2d();
645
+ kernel.setGTrsf2dTranslationPart(trans, 0, -bounds.vMin);
646
+ kernel.multiplyGTrsf2d(transformation, trans);
647
+ trans.delete();
648
+ }
649
+ } catch (e) {
650
+ transformation.delete();
651
+ throw e;
640
652
  }
641
- uAxis.delete();
642
- vAxis.delete();
643
653
  }
644
654
  const edges = curvesAsEdgesOnSurface(transformCurves(curves, transformation), geomSurf);
645
655
  if (transformation) transformation.delete();
@@ -849,9 +859,10 @@ var Blueprint = class Blueprint {
849
859
  const kernel = require_shapeTypes.getKernel();
850
860
  const wire = assembleWire(require_errors.unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode)));
851
861
  kernel.buildCurves3d(wire.wrapped);
852
- kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
862
+ const fixedWire = kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
863
+ wire.delete();
853
864
  return {
854
- wire,
865
+ wire: require_shapeTypes.createWire(fixedWire),
855
866
  baseFace: face
856
867
  };
857
868
  }
@@ -936,14 +947,23 @@ var Blueprint = class Blueprint {
936
947
  if (!this.boundingBox.containsPoint(point)) return false;
937
948
  const kernel = require_shapeTypes.getKernel();
938
949
  const segment = make2dSegmentCurve(point, this.boundingBox.outsidePoint());
939
- let crossCounts = 0;
940
- if (this.curves.find((c) => c.isOnCurve(point))) return false;
941
- this.curves.forEach((c) => {
942
- if (c.boundingBox.isOut(segment.boundingBox)) return;
943
- const result = kernel.intersectCurves2d(segment.wrapped, c.wrapped, 1e-9);
944
- crossCounts += result.points.length;
945
- });
946
- return !!(crossCounts % 2);
950
+ try {
951
+ if (this.curves.find((c) => c.isOnCurve(point))) return false;
952
+ const seen = [];
953
+ let crossCounts = 0;
954
+ this.curves.forEach((c) => {
955
+ if (c.boundingBox.isOut(segment.boundingBox)) return;
956
+ const result = kernel.intersectCurves2d(segment.wrapped, c.wrapped, 1e-9);
957
+ for (const pt of result.points) if (!seen.some((s) => require_helpers.samePoint(s, pt, 1e-9))) {
958
+ seen.push(pt);
959
+ crossCounts++;
960
+ }
961
+ for (const seg of result.segments) seg.delete();
962
+ });
963
+ return !!(crossCounts % 2);
964
+ } finally {
965
+ segment.delete();
966
+ }
947
967
  }
948
968
  /** Check whether the first and last points coincide (the profile is closed). */
949
969
  isClosed() {
@@ -1,12 +1,12 @@
1
- import { G as unregisterFromCleanup, U as registerForCleanup, X as getKernel, Z as getKernel2D, a as createEdge, u as createWire } from "./shapeTypes-Ct7hPC-B.js";
1
+ import { G as unregisterFromCleanup, U as registerForCleanup, X as getKernel, Z as getKernel2D, a as createEdge, u as createWire } from "./shapeTypes-Qh4ErtGx.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, h as bug, n as computationError } from "./errors-DboJwVCf.js";
3
- import { N as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-B0abunWd.js";
3
+ import { N as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-wSgaAQrJ.js";
4
4
  import { i as DEG2RAD, o as RAD2DEG, r as toVec3 } from "./types-SLY3VwcI.js";
5
5
  import { r as makePlane } from "./planeOps-C94s53Ia.js";
6
- import { f as getOrientation } from "./curveFns-ZfTMJwOX.js";
6
+ import { f as getOrientation } from "./curveFns-DbIakl9J.js";
7
7
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-xxcB3YNq.js";
8
- import { r as makeFace } from "./surfaceBuilders-DyR1Pdu_.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-D4PQ7xhP.js";
8
+ import { r as makeFace } from "./surfaceBuilders-CL8MJABt.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-DsVYL2Ri.js";
10
10
  //#region src/2d/lib/definitions.ts
11
11
  /** Type guard that checks whether a value is a `Point2D`. */
12
12
  function isPoint2D(point) {
@@ -152,6 +152,8 @@ var Curve2D = class Curve2D {
152
152
  _boundingBox;
153
153
  _firstPoint = null;
154
154
  _lastPoint = null;
155
+ _firstParameter = null;
156
+ _lastParameter = null;
155
157
  constructor(handle) {
156
158
  this._wrapped = getKernel().wrapCurve2dHandle(handle);
157
159
  this._boundingBox = null;
@@ -202,13 +204,15 @@ var Curve2D = class Curve2D {
202
204
  if (this._lastPoint === null) this._lastPoint = this.value(this.lastParameter);
203
205
  return this._lastPoint;
204
206
  }
205
- /** Return the parameter value at the start of the curve. */
207
+ /** Return the parameter value at the start of the curve (cached after first access). */
206
208
  get firstParameter() {
207
- return getKernel().getCurve2dBounds(this.wrapped).first;
209
+ if (this._firstParameter === null) this._firstParameter = getKernel().getCurve2dBounds(this.wrapped).first;
210
+ return this._firstParameter;
208
211
  }
209
- /** Return the parameter value at the end of the curve. */
212
+ /** Return the parameter value at the end of the curve (cached after first access). */
210
213
  get lastParameter() {
211
- return getKernel().getCurve2dBounds(this.wrapped).last;
214
+ if (this._lastParameter === null) this._lastParameter = getKernel().getCurve2dBounds(this.wrapped).last;
215
+ return this._lastParameter;
212
216
  }
213
217
  /** Return the geometric type of this curve (e.g. `LINE`, `CIRCLE`, `BSPLINE_CURVE`). */
214
218
  get geomType() {
@@ -219,14 +223,19 @@ var Curve2D = class Curve2D {
219
223
  const cloned = new Curve2D(getKernel().copyCurve2d(this.wrapped));
220
224
  cloned._firstPoint = this._firstPoint;
221
225
  cloned._lastPoint = this._lastPoint;
226
+ cloned._firstParameter = this._firstParameter;
227
+ cloned._lastParameter = this._lastParameter;
222
228
  return cloned;
223
229
  }
224
230
  /** Reverse the orientation of this curve in place. */
225
231
  reverse() {
226
232
  getKernel().reverseCurve2d(this.wrapped);
227
- const tmp = this._firstPoint;
233
+ const tmpPt = this._firstPoint;
228
234
  this._firstPoint = this._lastPoint;
229
- this._lastPoint = tmp;
235
+ this._lastPoint = tmpPt;
236
+ const tmpParam = this._firstParameter;
237
+ this._firstParameter = this._lastParameter;
238
+ this._lastParameter = tmpParam;
230
239
  }
231
240
  distanceFromPoint(point) {
232
241
  const proj = getKernel().projectPointOnCurve2d(this.wrapped, point[0], point[1]);
@@ -616,30 +625,31 @@ function curvesAsEdgesOnFace(curves, face, scale = "original") {
616
625
  transformation = stretchTransform2d(1 / cylData.radius, [0, 1]);
617
626
  }
618
627
  if (scale === "bounds") {
619
- const uAxis = kernel.createAxis2d(0, 0, 0, 1);
620
- const vAxis = kernel.createAxis2d(0, 0, 1, 0);
621
628
  transformation = kernel.createIdentityGTrsf2d();
622
- kernel.setGTrsf2dTranslationPart(transformation, 0, 0);
623
- const uAffinity = kernel.createAffinityGTrsf2d(0, 0, 0, 1, bounds.uMax - bounds.uMin);
624
- kernel.multiplyGTrsf2d(transformation, uAffinity);
625
- uAffinity.delete();
626
- if (bounds.uMin !== 0) {
627
- const trans = kernel.createIdentityGTrsf2d();
628
- kernel.setGTrsf2dTranslationPart(trans, 0, -bounds.uMin);
629
- kernel.multiplyGTrsf2d(transformation, trans);
630
- trans.delete();
631
- }
632
- const vAffinity = kernel.createAffinityGTrsf2d(0, 0, 1, 0, bounds.vMax - bounds.vMin);
633
- kernel.multiplyGTrsf2d(transformation, vAffinity);
634
- vAffinity.delete();
635
- if (bounds.vMin !== 0) {
636
- const trans = kernel.createIdentityGTrsf2d();
637
- kernel.setGTrsf2dTranslationPart(trans, 0, -bounds.vMin);
638
- kernel.multiplyGTrsf2d(transformation, trans);
639
- trans.delete();
629
+ try {
630
+ kernel.setGTrsf2dTranslationPart(transformation, 0, 0);
631
+ const uAffinity = kernel.createAffinityGTrsf2d(0, 0, 0, 1, bounds.uMax - bounds.uMin);
632
+ kernel.multiplyGTrsf2d(transformation, uAffinity);
633
+ uAffinity.delete();
634
+ if (bounds.uMin !== 0) {
635
+ const trans = kernel.createIdentityGTrsf2d();
636
+ kernel.setGTrsf2dTranslationPart(trans, -bounds.uMin, 0);
637
+ kernel.multiplyGTrsf2d(transformation, trans);
638
+ trans.delete();
639
+ }
640
+ const vAffinity = kernel.createAffinityGTrsf2d(0, 0, 1, 0, bounds.vMax - bounds.vMin);
641
+ kernel.multiplyGTrsf2d(transformation, vAffinity);
642
+ vAffinity.delete();
643
+ if (bounds.vMin !== 0) {
644
+ const trans = kernel.createIdentityGTrsf2d();
645
+ kernel.setGTrsf2dTranslationPart(trans, 0, -bounds.vMin);
646
+ kernel.multiplyGTrsf2d(transformation, trans);
647
+ trans.delete();
648
+ }
649
+ } catch (e) {
650
+ transformation.delete();
651
+ throw e;
640
652
  }
641
- uAxis.delete();
642
- vAxis.delete();
643
653
  }
644
654
  const edges = curvesAsEdgesOnSurface(transformCurves(curves, transformation), geomSurf);
645
655
  if (transformation) transformation.delete();
@@ -849,9 +859,10 @@ var Blueprint = class Blueprint {
849
859
  const kernel = getKernel();
850
860
  const wire = assembleWire(unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode)));
851
861
  kernel.buildCurves3d(wire.wrapped);
852
- kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
862
+ const fixedWire = kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
863
+ wire.delete();
853
864
  return {
854
- wire,
865
+ wire: createWire(fixedWire),
855
866
  baseFace: face
856
867
  };
857
868
  }
@@ -936,14 +947,23 @@ var Blueprint = class Blueprint {
936
947
  if (!this.boundingBox.containsPoint(point)) return false;
937
948
  const kernel = getKernel();
938
949
  const segment = make2dSegmentCurve(point, this.boundingBox.outsidePoint());
939
- let crossCounts = 0;
940
- if (this.curves.find((c) => c.isOnCurve(point))) return false;
941
- this.curves.forEach((c) => {
942
- if (c.boundingBox.isOut(segment.boundingBox)) return;
943
- const result = kernel.intersectCurves2d(segment.wrapped, c.wrapped, 1e-9);
944
- crossCounts += result.points.length;
945
- });
946
- return !!(crossCounts % 2);
950
+ try {
951
+ if (this.curves.find((c) => c.isOnCurve(point))) return false;
952
+ const seen = [];
953
+ let crossCounts = 0;
954
+ this.curves.forEach((c) => {
955
+ if (c.boundingBox.isOut(segment.boundingBox)) return;
956
+ const result = kernel.intersectCurves2d(segment.wrapped, c.wrapped, 1e-9);
957
+ for (const pt of result.points) if (!seen.some((s) => samePoint(s, pt, 1e-9))) {
958
+ seen.push(pt);
959
+ crossCounts++;
960
+ }
961
+ for (const seg of result.segments) seg.delete();
962
+ });
963
+ return !!(crossCounts % 2);
964
+ } finally {
965
+ segment.delete();
966
+ }
947
967
  }
948
968
  /** Check whether the first and last points coincide (the profile is closed). */
949
969
  isClosed() {
@@ -1,6 +1,6 @@
1
1
  const require_errors = require("./errors-CXRNVCec.cjs");
2
- const require_boolean2D = require("./boolean2D-DIrXfRsK.cjs");
3
- const require_blueprint = require("./blueprint-CjWjaFBx.cjs");
2
+ const require_boolean2D = require("./boolean2D-CQE7rswO.cjs");
3
+ const require_blueprint = require("./blueprint-BvUKWbkE.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,6 +1,6 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
2
- import { g as CompoundBlueprint } from "./boolean2D-rza7Dzie.js";
3
- import { t as Blueprint } from "./blueprint-BOICL-YA.js";
2
+ import { g as CompoundBlueprint } from "./boolean2D-CpSRx5_U.js";
3
+ import { t as Blueprint } from "./blueprint-DD20bL3n.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).