brepjs 20.12.5 → 20.12.7

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 (96) hide show
  1. package/dist/2d/blueprints/booleanHelpers.d.ts +0 -5
  2. package/dist/2d/blueprints/intersectionSegments.d.ts +6 -5
  3. package/dist/2d/lib/offset.d.ts +1 -1
  4. package/dist/2d.cjs +6 -6
  5. package/dist/2d.js +6 -6
  6. package/dist/{adjacencyFns-B2Po1gPs.js → adjacencyFns-hMihivxC.js} +3 -3
  7. package/dist/{adjacencyFns-Cho9v3Q3.cjs → adjacencyFns-mMmTBUBY.cjs} +3 -3
  8. package/dist/{blueprint-ERmwk6zG.cjs → blueprint-17RUHsoP.cjs} +7 -8
  9. package/dist/{blueprint-Zmt5-07y.js → blueprint-BS50D3J_.js} +7 -8
  10. package/dist/{blueprintFns-B_sxtIo7.cjs → blueprintFns-Dw5_4_Bk.cjs} +2 -2
  11. package/dist/{blueprintFns-Dtm-XukP.js → blueprintFns-zy5lo2IF.js} +2 -2
  12. package/dist/{blueprintSketcher-CZyokLGJ.cjs → blueprintSketcher-BG--DxWB.cjs} +32 -14
  13. package/dist/{blueprintSketcher-CwTAtrkY.js → blueprintSketcher-C1WCI6E0.js} +32 -14
  14. package/dist/{boolean2D-CRuNKgXs.cjs → boolean2D-7SQ3B0pC.cjs} +42 -50
  15. package/dist/{boolean2D-yUpS8onH.js → boolean2D-CsdyfjFE.js} +42 -50
  16. package/dist/brepjs.cjs +30 -30
  17. package/dist/brepjs.js +30 -30
  18. package/dist/{cameraFns-DB1IyMmS.cjs → cameraFns-BAtzhCYM.cjs} +3 -3
  19. package/dist/{cameraFns-DRok4UxZ.js → cameraFns-BVWyAscu.js} +3 -3
  20. package/dist/core.cjs +2 -2
  21. package/dist/core.js +2 -2
  22. package/dist/{cornerFinder-D5qnDbtZ.js → cornerFinder-Dv_2rmaY.js} +1 -1
  23. package/dist/{cornerFinder-DfYBHHZG.cjs → cornerFinder-e4Wc7_yp.cjs} +1 -1
  24. package/dist/{curveFns-BKT4Sg8q.cjs → curveFns-BAM7QHrP.cjs} +1 -1
  25. package/dist/{curveFns-BGPSFUWB.js → curveFns-CEI-rouh.js} +1 -1
  26. package/dist/{drawFns-aGufr-pr.js → drawFns-Cl1i8B_B.js} +18 -13
  27. package/dist/{drawFns-D8e5RiRe.cjs → drawFns-d-RvC6u6.cjs} +18 -13
  28. package/dist/{faceFns-Cx7cwUMx.cjs → faceFns-C-2ttg8X.cjs} +2 -2
  29. package/dist/{faceFns-lE2OvBfq.js → faceFns-Q87HCJrp.js} +2 -2
  30. package/dist/{healingFns-B94zSk1-.js → healingFns-Cm4NkKD8.js} +5 -5
  31. package/dist/{healingFns-CcgyrL6h.cjs → healingFns-DZkO5okn.cjs} +5 -5
  32. package/dist/{helpers-C4f2MV-r.cjs → helpers-BdGGaLhF.cjs} +6 -6
  33. package/dist/{helpers-CNgipe6l.js → helpers-DpGcM2qZ.js} +6 -6
  34. package/dist/{importFns-gB1X3ti2.js → importFns-Bp-p0jiP.js} +2 -2
  35. package/dist/{importFns-fIdcaMqt.cjs → importFns-DLiP26NW.cjs} +2 -2
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/kernel/bspline2dFit.d.ts +42 -0
  39. package/dist/kernel/geometry2d.d.ts +45 -0
  40. package/dist/kernel/occt/kernel2dOps.d.ts +1 -1
  41. package/dist/kernel/occtWasm/kernel2dOps.d.ts +7 -4
  42. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  43. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +2 -2
  44. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  45. package/dist/kernel/occtWasm/occtWasmTypes.d.ts +2 -0
  46. package/dist/{loftFns-AHaYxJyS.cjs → loftFns-DGV1z2NJ.cjs} +1 -1
  47. package/dist/{loftFns-mbyBvJ8Y.js → loftFns-DQ7Z29n3.js} +1 -1
  48. package/dist/{measureFns-CuabRDRL.cjs → measureFns-BdSjw5fr.cjs} +3 -3
  49. package/dist/{measureFns-C94G0fH8.js → measureFns-BrdCH4cH.js} +3 -3
  50. package/dist/measurement.cjs +2 -2
  51. package/dist/measurement.js +2 -2
  52. package/dist/{meshFns-GXF5gPZL.cjs → meshFns-BeubBqEI.cjs} +3 -3
  53. package/dist/{meshFns-jarDZKw1.js → meshFns-UE8tByyw.js} +3 -3
  54. package/dist/{occtWasmAdapter-DeoeK2iJ.cjs → occtWasmAdapter-D3qerQTq.cjs} +1260 -291
  55. package/dist/{occtWasmAdapter-DlNmVNUn.js → occtWasmAdapter-DA7oMgcQ.js} +1249 -292
  56. package/dist/operations.cjs +2 -2
  57. package/dist/operations.js +2 -2
  58. package/dist/{originTrackingFns-BxeUD2NM.js → originTrackingFns-c2qgRZ_9.js} +2 -2
  59. package/dist/{originTrackingFns-C-yuMV3m.cjs → originTrackingFns-rEKOAP65.cjs} +2 -2
  60. package/dist/{primitiveFns-CualoFAk.js → primitiveFns-3-gs-FUX.js} +4 -4
  61. package/dist/{primitiveFns-BVAkYHVf.cjs → primitiveFns-CLGVLwG8.cjs} +4 -4
  62. package/dist/{principalBoxFns-DHh5_HCw.cjs → principalBoxFns-CiXzjOkr.cjs} +3 -3
  63. package/dist/{principalBoxFns-DtI7tVuS.js → principalBoxFns-RMZItjfR.js} +3 -3
  64. package/dist/projection.cjs +1 -1
  65. package/dist/projection.js +1 -1
  66. package/dist/query.cjs +2 -2
  67. package/dist/query.js +2 -2
  68. package/dist/{refResolveFns-CaAw-ya3.cjs → refResolveFns-DNX0bCrP.cjs} +6 -6
  69. package/dist/{refResolveFns--SRyN2qa.js → refResolveFns-kJg2iCad.js} +6 -6
  70. package/dist/{shapeFns-CdrDroOM.js → shapeFns-CZ6VF1yd.js} +2 -2
  71. package/dist/{shapeFns-CwjjUOr0.cjs → shapeFns-SgIrOjN4.cjs} +2 -2
  72. package/dist/shapeRef.cjs +1 -1
  73. package/dist/shapeRef.js +1 -1
  74. package/dist/{shapeTypes-PNVEv6ga.js → shapeTypes-BNGu103j.js} +10 -16
  75. package/dist/{shapeTypes-D938X2mg.cjs → shapeTypes-MUEH4XuH.cjs} +10 -16
  76. package/dist/sketching.cjs +3 -3
  77. package/dist/sketching.js +3 -3
  78. package/dist/{solidBuilders-Hft8Cr6a.js → solidBuilders-Bmr59cGp.js} +5 -5
  79. package/dist/{solidBuilders-CAkBQKWb.cjs → solidBuilders-DdG4NPHM.cjs} +5 -5
  80. package/dist/{surfaceBuilders-CrO_BBKM.js → surfaceBuilders-DI376ai0.js} +3 -3
  81. package/dist/{surfaceBuilders-BKCiVf7T.cjs → surfaceBuilders-DOmDVuMs.cjs} +3 -3
  82. package/dist/text.cjs +2 -2
  83. package/dist/text.js +2 -2
  84. package/dist/{textBlueprints-C9HeYc5a.cjs → textBlueprints-B7Vhr0xu.cjs} +7 -7
  85. package/dist/{textBlueprints-B8q2a-nN.js → textBlueprints-CE0oxB43.js} +7 -7
  86. package/dist/{textMetrics-1fhCSAGF.cjs → textMetrics-C6_kSht6.cjs} +1 -1
  87. package/dist/{textMetrics-DJfTSy6w.js → textMetrics-_VGqdewQ.js} +1 -1
  88. package/dist/{threadFns-CVIEbOW3.cjs → threadFns-1H60LrFX.cjs} +7 -7
  89. package/dist/{threadFns-f2KwibLR.js → threadFns-CHdY-4Cz.js} +7 -7
  90. package/dist/topology.cjs +9 -9
  91. package/dist/topology.js +9 -9
  92. package/dist/{topologyQueryFns-4WYqtSFF.cjs → topologyQueryFns-C_fXO6xL.cjs} +1 -1
  93. package/dist/{topologyQueryFns-BZUY10TD.js → topologyQueryFns-CltEv7Pi.js} +1 -1
  94. package/dist/{validityTypes-tWSx_zAH.cjs → validityTypes-CGX2ES81.cjs} +1 -1
  95. package/dist/{validityTypes-DAXIqwZM.js → validityTypes-GanLrmvY.js} +1 -1
  96. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes-D938X2mg.cjs");
2
- const require_occtWasmAdapter = require("./occtWasmAdapter-DeoeK2iJ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
2
+ const require_occtWasmAdapter = require("./occtWasmAdapter-D3qerQTq.cjs");
3
3
  const require_errors = require("./errors-O_blYTWT.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns-4WYqtSFF.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
5
5
  const require_constants = require("./constants-oee0S_x6.cjs");
6
- const require_faceFns = require("./faceFns-Cx7cwUMx.cjs");
7
- const require_solidBuilders = require("./solidBuilders-CAkBQKWb.cjs");
6
+ const require_faceFns = require("./faceFns-C-2ttg8X.cjs");
7
+ const require_solidBuilders = require("./solidBuilders-DdG4NPHM.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
9
9
  // src/topology/threeHelpers.ts
10
10
  /**
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-D938X2mg.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-4WYqtSFF.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
4
4
  const require_constants = require("./constants-oee0S_x6.cjs");
5
5
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
6
- const require_faceFns = require("./faceFns-Cx7cwUMx.cjs");
7
- const require_shapeFns = require("./shapeFns-CwjjUOr0.cjs");
8
- const require_curveFns = require("./curveFns-BKT4Sg8q.cjs");
9
- const require_measureFns = require("./measureFns-CuabRDRL.cjs");
6
+ const require_faceFns = require("./faceFns-C-2ttg8X.cjs");
7
+ const require_shapeFns = require("./shapeFns-SgIrOjN4.cjs");
8
+ const require_curveFns = require("./curveFns-BAM7QHrP.cjs");
9
+ const require_measureFns = require("./measureFns-BdSjw5fr.cjs");
10
10
  // src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- import { q as getKernel, y as isFace } from "./shapeTypes-PNVEv6ga.js";
1
+ import { q as getKernel, y as isFace } from "./shapeTypes-BNGu103j.js";
2
2
  import { E as ok, g as err, o as queryError, x as isOk } from "./errors-BTccWbtE.js";
3
- import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BZUY10TD.js";
3
+ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-CltEv7Pi.js";
4
4
  import { t as DEG2RAD } from "./constants-iraOnb2p.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-S-m9H_fe.js";
6
- import { l as normalAt, s as getSurfaceType } from "./faceFns-lE2OvBfq.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-CdrDroOM.js";
8
- import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-BGPSFUWB.js";
9
- import { n as measureArea } from "./measureFns-C94G0fH8.js";
6
+ import { l as normalAt, s as getSurfaceType } from "./faceFns-Q87HCJrp.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-CZ6VF1yd.js";
8
+ import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-CEI-rouh.js";
9
+ import { n as measureArea } from "./measureFns-BrdCH4cH.js";
10
10
  // src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,8 +1,8 @@
1
- import { n as castResultShape, q as getKernel } from "./shapeTypes-PNVEv6ga.js";
1
+ import { n as castResultShape, q as getKernel } from "./shapeTypes-BNGu103j.js";
2
2
  import { i as wasmIndex, r as vec3At$1 } from "./bug-ClMTAJhe.js";
3
3
  import { E as ok, g as err, r as ioError, t as BrepErrorCode } from "./errors-BTccWbtE.js";
4
4
  import { n as getAtOrThrow } from "./arrayAccess-BpgouNir.js";
5
- import { c as make2dBezierCurve, h as make2dThreePointArc, p as make2dSegmentCurve, t as Blueprint } from "./blueprint-Zmt5-07y.js";
5
+ import { c as make2dBezierCurve, h as make2dThreePointArc, p as make2dSegmentCurve, t as Blueprint } from "./blueprint-BS50D3J_.js";
6
6
  // src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-D938X2mg.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
2
2
  const require_bug = require("./bug-CBcpIPuf.cjs");
3
3
  const require_errors = require("./errors-O_blYTWT.cjs");
4
4
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
5
- const require_blueprint = require("./blueprint-ERmwk6zG.cjs");
5
+ const require_blueprint = require("./blueprint-17RUHsoP.cjs");
6
6
  // src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-GXF5gPZL.cjs");
3
- const require_importFns = require("./importFns-fIdcaMqt.cjs");
2
+ const require_meshFns = require("./meshFns-BeubBqEI.cjs");
3
+ const require_importFns = require("./importFns-DLiP26NW.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
6
6
  exports.exportGlb = require_importFns.exportGlb;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-jarDZKw1.js";
2
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-gB1X3ti2.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-UE8tByyw.js";
2
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-Bp-p0jiP.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -0,0 +1,42 @@
1
+ import { Bezier2d, BSpline2d } from './geometry2d.js';
2
+ type Pt = [number, number];
3
+ /**
4
+ * Interpolate `points` with a clamped B-spline of `degree` (capped at
5
+ * `points.length - 1`). `params` are the increasing curve parameters assigned to
6
+ * the points, normalised to [0, 1]; chord length when omitted.
7
+ */
8
+ export declare function interpolateBSpline2d(points: readonly Pt[], degree?: number, params?: readonly number[]): BSpline2d;
9
+ interface FitOptions {
10
+ readonly degree?: number;
11
+ readonly minSegments?: number;
12
+ readonly maxSegments?: number;
13
+ /**
14
+ * Parameters in (s0, s1) where the curve may change abruptly, such as a
15
+ * source B-spline's knots. Each piece between them is fitted on its own, so
16
+ * a feature narrower than the sample spacing cannot fall between samples.
17
+ */
18
+ readonly breaks?: readonly number[];
19
+ }
20
+ /**
21
+ * Approximate the parametric curve `evaluate` over [s0, s1] by interpolating
22
+ * uniformly spaced samples, doubling the sample count until the interpolant is
23
+ * within `tolerance` of the curve at every mid-sample parameter (or the
24
+ * segment cap is reached). With `breaks`, each piece between them is fitted
25
+ * separately and the pieces are joined. The B-spline runs over [0, 1] in step
26
+ * with s.
27
+ */
28
+ export declare function fitBSpline2d(evaluate: (s: number) => Pt, s0: number, s1: number, tolerance: number, options?: FitOptions): BSpline2d;
29
+ /** The B-spline form of a Bezier; a B-spline is returned as is. */
30
+ export declare function asBSpline2d(c: Bezier2d | BSpline2d): BSpline2d;
31
+ /**
32
+ * The part of a clamped B-spline over [lo, hi] (inside its knot range, lo < hi)
33
+ * as a clamped B-spline of its own, exact by knot insertion.
34
+ */
35
+ export declare function subBSpline2d(c: BSpline2d, lo: number, hi: number): BSpline2d;
36
+ /**
37
+ * Bezier poles of every non-empty knot span (The NURBS Book A5.6). A malformed
38
+ * knot vector yields the whole control polygon as one segment, which still
39
+ * bounds the curve.
40
+ */
41
+ export declare function bezierSegments2d(c: BSpline2d): Pt[][];
42
+ export {};
@@ -69,6 +69,18 @@ export declare function curveBounds(c: Curve2dObj): {
69
69
  last: number;
70
70
  };
71
71
  export declare function curveTypeName(c: Curve2dObj): string;
72
+ /**
73
+ * Collapse nested trimmed wrappers into a single trimmed curve over a
74
+ * non-trimmed basis (or return the curve itself when it is not trimmed).
75
+ * Evaluation is unchanged: both forms map t in [0, 1] to the same basis point.
76
+ */
77
+ export declare function flattenTrimmed(c: Curve2dObj): Curve2dObj;
78
+ /**
79
+ * The same geometry traversed in the opposite direction (OCCT `Geom2d_Curve::Reversed`).
80
+ * Trimmed curves keep an increasing trim range: the basis is reversed and the
81
+ * range is remapped onto it.
82
+ */
83
+ export declare function reverseCurve2d(c: Curve2dObj): Curve2dObj;
72
84
  export declare function makeLine2d(x1: number, y1: number, x2: number, y2: number): Line2d;
73
85
  export declare function makeCircle2d(cx: number, cy: number, radius: number, sense?: boolean): Circle2d;
74
86
  export declare function makeArc2dThreePoints(x1: number, y1: number, xm: number, ym: number, x2: number, y2: number): Curve2dObj;
@@ -80,6 +92,39 @@ export declare function rotateCurve2d(c: Curve2dObj, angle: number, cx: number,
80
92
  export declare function scaleCurve2d(c: Curve2dObj, factor: number, cx: number, cy: number): Curve2dObj;
81
93
  export declare function mirrorAtPoint(c: Curve2dObj, cx: number, cy: number): Curve2dObj;
82
94
  export declare function mirrorAcrossAxis(c: Curve2dObj, ox: number, oy: number, dx: number, dy: number): Curve2dObj;
95
+ /** The affine map x' = a*x + b*y + tx, y' = c*x + d*y + ty. */
96
+ export interface Affine2d {
97
+ readonly a: number;
98
+ readonly b: number;
99
+ readonly c: number;
100
+ readonly d: number;
101
+ readonly tx: number;
102
+ readonly ty: number;
103
+ }
104
+ /**
105
+ * Exact image of a curve under an affine map (OCCT `Geom2d_Curve::Transformed`
106
+ * with a `gp_GTrsf2d`): lines stay lines, circles and ellipses become ellipses
107
+ * (or circles), and pole-based curves map their poles.
108
+ */
109
+ export declare function affineCurve2d(c: Curve2dObj, m: Affine2d): Curve2dObj;
110
+ /**
111
+ * Parameters of `c`, in its own parameter range, at the interior knots of its
112
+ * B-spline basis: where a fit of the curve (or of its offset) must sample.
113
+ */
114
+ export declare function curveKnotParams(c: Curve2dObj): number[];
115
+ /**
116
+ * Offset `distance` to the right of the direction of travel (OCCT
117
+ * `Geom2d_OffsetCurve`: a counter-clockwise circle grows). Lines and circles
118
+ * are offset exactly; other curves are fitted within `tolerance` (by default
119
+ * relative to the curve's size).
120
+ */
121
+ export declare function offsetCurve2d(c: Curve2dObj, distance: number, tolerance?: number): Curve2dObj;
122
+ /**
123
+ * Minimum distance between c1 over [from1, to1] and c2 over [from2, to2]
124
+ * (OCCT `Geom2dAPI_ExtremaCurveCurve`): every local minimum of a sampled
125
+ * distance grid seeds a Gauss-Newton refinement.
126
+ */
127
+ export declare function distanceBetweenCurves2d(c1: Curve2dObj, c2: Curve2dObj, from1: number, to1: number, from2: number, to2: number): number;
83
128
  /**
84
129
  * Compute intersection points (and overlapping segments) between two 2D curves.
85
130
  * Handles analytic cases (line-line, line-circle, circle-circle) and falls back
@@ -24,7 +24,7 @@ export declare function getCurve2dBounds(curve: Curve2dHandle): {
24
24
  };
25
25
  export declare function getCurve2dType(curve: Curve2dHandle): string;
26
26
  export declare function trimCurve2d(curve: Curve2dHandle, start: number, end: number): Curve2dHandle;
27
- export declare function reverseCurve2d(_curve: Curve2dHandle): void;
27
+ export declare function reverseCurve2d(curve: Curve2dHandle): void;
28
28
  export declare function copyCurve2d(curve: Curve2dHandle): Curve2dHandle;
29
29
  export declare function offsetCurve2d(curve: Curve2dHandle, offset: number): Curve2dHandle;
30
30
  export declare function translateCurve2d(curve: Curve2dHandle, dx: number, dy: number): Curve2dHandle;
@@ -31,7 +31,7 @@ export declare function getCurve2dBounds(curve: Curve2dHandle): {
31
31
  };
32
32
  export declare function getCurve2dType(curve: Curve2dHandle): string;
33
33
  export declare function trimCurve2d(curve: Curve2dHandle, start: number, end: number): Curve2dHandle;
34
- export declare function reverseCurve2d(_curve: Curve2dHandle): void;
34
+ export declare function reverseCurve2d(curve: Curve2dHandle): void;
35
35
  export declare function copyCurve2d(curve: Curve2dHandle): Curve2dHandle;
36
36
  export declare function offsetCurve2d(curve: Curve2dHandle, offset: number): Curve2dHandle;
37
37
  export declare function translateCurve2d(curve: Curve2dHandle, dx: number, dy: number): Curve2dHandle;
@@ -42,8 +42,7 @@ export declare function mirrorCurve2dAcrossAxis(curve: Curve2dHandle, originX: n
42
42
  /**
43
43
  * Directional affinity matching OCCT `gp_GTrsf2d::SetAffinity`: scales the
44
44
  * component perpendicular to the axis `(dx, dy)` through `(ox, oy)` by `ratio`,
45
- * leaving the parallel component fixed. Applied by sampling and refitting as a
46
- * Bezier, since occt-wasm has no native Geom2d transform.
45
+ * leaving the parallel component fixed.
47
46
  */
48
47
  export declare function affinityCurve2d(curve: Curve2dHandle, ox: number, oy: number, dx: number, dy: number, ratio: number): Curve2dHandle;
49
48
  export declare function affinityTransform2d(curve: Curve2dHandle, ox: number, oy: number, dx: number, dy: number, ratio: number): Curve2dHandle;
@@ -65,7 +64,11 @@ export declare function projectPointOnCurve2d(curve: Curve2dHandle, x: number, y
65
64
  distance: number;
66
65
  } | null;
67
66
  export declare function distanceBetweenCurves2d(c1: Curve2dHandle, c2: Curve2dHandle, p1Start: number, p1End: number, p2Start: number, p2End: number): number;
68
- export declare function approximateCurve2dAsBSpline(curve: Curve2dHandle, maxSegments: number): Curve2dHandle;
67
+ /**
68
+ * Degree <= 3 B-spline within `tolerance` of the curve (Geom2dConvert_ApproxCurve
69
+ * with MaxDegree 3, as brepjs calls it); exact where the curve already is one.
70
+ */
71
+ export declare function approximateCurve2dAsBSpline(curve: Curve2dHandle, tolerance: number, maxSegments: number): Curve2dHandle;
69
72
  export declare function decomposeBSpline2dToBeziers(curve: Curve2dHandle): Curve2dHandle[];
70
73
  export declare function createBoundingBox2d(): BBox2dHandle;
71
74
  export declare function addCurveToBBox2d(bbox: BBox2dHandle, curve: Curve2dHandle, tolerance: number): void;
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_occtWasmAdapter = require("../../occtWasmAdapter-DeoeK2iJ.cjs");
2
+ const require_occtWasmAdapter = require("../../occtWasmAdapter-D3qerQTq.cjs");
3
3
  exports.OcctWasmAdapter = require_occtWasmAdapter.OcctWasmAdapter;
@@ -390,7 +390,7 @@ export declare class OcctWasmAdapter implements KernelAdapter {
390
390
  makeEllipse2d(cx: number, cy: number, majorRadius: number, minorRadius: number, xDirX?: number, xDirY?: number, sense?: boolean): Curve2dHandle;
391
391
  makeEllipseArc2d(cx: number, cy: number, majorRadius: number, minorRadius: number, startAngle: number, endAngle: number, xDirX?: number, xDirY?: number, sense?: boolean): Curve2dHandle;
392
392
  makeBezier2d(points: [number, number][]): Curve2dHandle;
393
- makeBSpline2d(points: [number, number][], _options?: {
393
+ makeBSpline2d(points: [number, number][], options?: {
394
394
  degMin?: number;
395
395
  degMax?: number;
396
396
  continuity?: 'C0' | 'C1' | 'C2' | 'C3';
@@ -435,7 +435,7 @@ export declare class OcctWasmAdapter implements KernelAdapter {
435
435
  distance: number;
436
436
  } | null;
437
437
  distanceBetweenCurves2d(c1: Curve2dHandle, c2: Curve2dHandle, p1Start: number, p1End: number, p2Start: number, p2End: number): number;
438
- approximateCurve2dAsBSpline(curve: Curve2dHandle, _tolerance: number, _continuity: 'C0' | 'C1' | 'C2' | 'C3', maxSegments: number): Curve2dHandle;
438
+ approximateCurve2dAsBSpline(curve: Curve2dHandle, tolerance: number, _continuity: 'C0' | 'C1' | 'C2' | 'C3', maxSegments: number): Curve2dHandle;
439
439
  decomposeBSpline2dToBeziers(curve: Curve2dHandle): Curve2dHandle[];
440
440
  createBoundingBox2d(): BBox2dHandle;
441
441
  addCurveToBBox2d(bbox: BBox2dHandle, curve: Curve2dHandle, tolerance: number): void;
@@ -1 +1 @@
1
- export { t as OcctWasmAdapter } from "../../occtWasmAdapter-DlNmVNUn.js";
1
+ export { t as OcctWasmAdapter } from "../../occtWasmAdapter-DA7oMgcQ.js";
@@ -170,6 +170,8 @@ export interface OcctKernelWasm {
170
170
  /** occt-wasm 5.8+: like makeEllipseArc with the major axis along (xx, xy, xz). */
171
171
  makeEllipseArcOriented?(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, xx: number, xy: number, xz: number, majorRadius: number, minorRadius: number, startAngle: number, endAngle: number): number;
172
172
  makeBezierEdge(flatPoints: EmVectorDouble): number;
173
+ /** occt-wasm 5.8+: non-rational when `weights` is empty; poles are flat xyz triples. */
174
+ makeBSplineEdge?(poles: EmVectorDouble, weights: EmVectorDouble, knots: EmVectorDouble, multiplicities: EmVectorInt, degree: number, periodic: boolean): number;
173
175
  makeTangentArc(x1: number, y1: number, z1: number, tx: number, ty: number, tz: number, x2: number, y2: number, z2: number): number;
174
176
  makeHelixWire(px: number, py: number, pz: number, dx: number, dy: number, dz: number, pitch: number, height: number, radius: number): number;
175
177
  /**
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-D938X2mg.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  const require_types = require("./types-CjF9Rofr.cjs");
4
4
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
@@ -1,4 +1,4 @@
1
- import { G as _usingCtx, T as isWire, h as disposeResultShape, n as castResultShape, q as getKernel, x as isShape3D } from "./shapeTypes-PNVEv6ga.js";
1
+ import { G as _usingCtx, T as isWire, h as disposeResultShape, n as castResultShape, q as getKernel, x as isShape3D } from "./shapeTypes-BNGu103j.js";
2
2
  import { E as ok, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, t as BrepErrorCode } from "./errors-BTccWbtE.js";
3
3
  import { r as toVec3 } from "./types-CKXsIm9-.js";
4
4
  import { c as vecLength, t as vecAdd } from "./vecOps-S-m9H_fe.js";
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-D938X2mg.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-4WYqtSFF.cjs");
4
- const require_faceFns = require("./faceFns-Cx7cwUMx.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
4
+ const require_faceFns = require("./faceFns-C-2ttg8X.cjs");
5
5
  // src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,7 +1,7 @@
1
- import { q as getKernel } from "./shapeTypes-PNVEv6ga.js";
1
+ import { q as getKernel } from "./shapeTypes-BNGu103j.js";
2
2
  import { E as ok, d as validationError, g as err, t as BrepErrorCode } from "./errors-BTccWbtE.js";
3
- import { E as kernelCallRaw } from "./topologyQueryFns-BZUY10TD.js";
4
- import { m as uvBounds } from "./faceFns-lE2OvBfq.js";
3
+ import { E as kernelCallRaw } from "./topologyQueryFns-CltEv7Pi.js";
4
+ import { m as uvBounds } from "./faceFns-Q87HCJrp.js";
5
5
  // src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-CuabRDRL.cjs");
3
- const require_principalBoxFns = require("./principalBoxFns-DHh5_HCw.cjs");
2
+ const require_measureFns = require("./measureFns-BdSjw5fr.cjs");
3
+ const require_principalBoxFns = require("./principalBoxFns-CiXzjOkr.cjs");
4
4
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
5
5
  exports.measureArea = require_measureFns.measureArea;
6
6
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,3 +1,3 @@
1
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-C94G0fH8.js";
2
- import { t as principalBoundingBox } from "./principalBoxFns-DtI7tVuS.js";
1
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-BrdCH4cH.js";
2
+ import { t as principalBoundingBox } from "./principalBoxFns-RMZItjfR.js";
3
3
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, principalBoundingBox };
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-D938X2mg.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-4WYqtSFF.cjs");
4
- const require_originTrackingFns = require("./originTrackingFns-C-yuMV3m.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
4
+ const require_originTrackingFns = require("./originTrackingFns-rEKOAP65.cjs");
5
5
  // src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,7 +1,7 @@
1
- import { q as getKernel, ut as qualityDeflection } from "./shapeTypes-PNVEv6ga.js";
1
+ import { q as getKernel, ut as qualityDeflection } from "./shapeTypes-BNGu103j.js";
2
2
  import { E as ok, g as err, r as ioError } from "./errors-BTccWbtE.js";
3
- import { d as getSolids, n as getBounds } from "./topologyQueryFns-BZUY10TD.js";
4
- import { t as getFaceOrigins } from "./originTrackingFns-BxeUD2NM.js";
3
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-CltEv7Pi.js";
4
+ import { t as getFaceOrigins } from "./originTrackingFns-c2qgRZ_9.js";
5
5
  // src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).