brepjs 18.63.0 → 18.64.0

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 (77) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-DaRszQg-.js → blueprint-B-auug94.js} +5 -5
  4. package/dist/{blueprint-XEJiK6ON.cjs → blueprint-CnGsBG6y.cjs} +5 -5
  5. package/dist/{blueprintFns-C0ULkqGT.js → blueprintFns-Bpp0oBUG.js} +2 -2
  6. package/dist/{blueprintFns-CTJGTMYw.cjs → blueprintFns-CocKjMHz.cjs} +2 -2
  7. package/dist/{blueprintSketcher-DHWmjOmJ.js → blueprintSketcher-BmCyc7s1.js} +3 -3
  8. package/dist/{blueprintSketcher-r0uUFBZZ.cjs → blueprintSketcher-J9bAQDhD.cjs} +3 -3
  9. package/dist/{boolean2D-BfavHsXe.js → boolean2D-C-tW10ip.js} +4 -4
  10. package/dist/{boolean2D-BT3RGDXW.cjs → boolean2D-zhHdr4EG.cjs} +4 -4
  11. package/dist/{booleanFns-DNG6xxu8.js → booleanFns-4_KnvEil.js} +4 -4
  12. package/dist/{booleanFns-B3vIRhjz.cjs → booleanFns-9qTQX1iM.cjs} +4 -4
  13. package/dist/brepjs.cjs +24 -24
  14. package/dist/brepjs.js +24 -24
  15. package/dist/{cameraFns-CQkS1TSY.js → cameraFns-5FSJmH9r.js} +2 -2
  16. package/dist/{cameraFns-CqplcvtL.cjs → cameraFns-Bz11Ik2z.cjs} +2 -2
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-CE1b1IMu.js → cornerFinder-C10oNGL4.js} +1 -1
  20. package/dist/{cornerFinder-ByEss8KB.cjs → cornerFinder-mD9AqCfR.cjs} +1 -1
  21. package/dist/{curveFns-vZbW7CVb.js → curveFns-BcS0DZLj.js} +1 -1
  22. package/dist/{curveFns-Dx9ha0n_.cjs → curveFns-DOW3Rs1A.cjs} +1 -1
  23. package/dist/{drawFns-DiJFFH16.js → drawFns-0ojbwK2X.js} +12 -12
  24. package/dist/{drawFns-ZPhrUGWl.cjs → drawFns-B4BFzsPq.cjs} +12 -12
  25. package/dist/{extrudeFns-BamV4cSU.js → extrudeFns-CrTb7bjb.js} +1 -1
  26. package/dist/{extrudeFns-DsvQYfqd.cjs → extrudeFns-D0IrXWsB.cjs} +1 -1
  27. package/dist/{faceFns-LJ_lU5IE.js → faceFns-DFbEW9oz.js} +2 -2
  28. package/dist/{faceFns-DGmQI57P.cjs → faceFns-FVl-7nu7.cjs} +2 -2
  29. package/dist/{helpers-B6abm0X7.cjs → helpers-BqrszPEI.cjs} +6 -6
  30. package/dist/{helpers-CxZqc5vt.js → helpers-CIucvYwe.js} +6 -6
  31. package/dist/{historyFns-a2plj33G.cjs → historyFns-B-C4Cp9C.cjs} +4 -4
  32. package/dist/{historyFns-DpHCn1yw.js → historyFns-h6FtvY5t.js} +4 -4
  33. package/dist/{importFns-CEz6N0mP.js → importFns-8wNWf6zt.js} +2 -2
  34. package/dist/{importFns-iJZHFevB.cjs → importFns-Q9jZUGn_.cjs} +2 -2
  35. package/dist/io.cjs +2 -2
  36. package/dist/io.js +2 -2
  37. package/dist/kernel/manifold/curveDesc.d.ts +54 -0
  38. package/dist/kernel/manifold/profileOps.d.ts +1 -0
  39. package/dist/{measureFns-CvAOj_Io.cjs → measureFns-DSUJdWbH.cjs} +3 -3
  40. package/dist/{measureFns-1vEKylTt.js → measureFns-DXQSqDH0.js} +3 -3
  41. package/dist/measurement.cjs +1 -1
  42. package/dist/measurement.js +1 -1
  43. package/dist/{meshFns-D2rlqrTt.cjs → meshFns-D2rcmVr_.cjs} +3 -3
  44. package/dist/{meshFns-CoPoc7dh.js → meshFns-DZA-Hsya.js} +3 -3
  45. package/dist/operations.cjs +2 -2
  46. package/dist/operations.js +2 -2
  47. package/dist/{primitiveFns-Bi22B25-.cjs → primitiveFns-B7BJjuHU.cjs} +7 -7
  48. package/dist/{primitiveFns-OuEHerl6.js → primitiveFns-_A-uhxX7.js} +7 -7
  49. package/dist/projection.cjs +1 -1
  50. package/dist/projection.js +1 -1
  51. package/dist/query.cjs +2 -2
  52. package/dist/query.js +2 -2
  53. package/dist/{shapeFns-C3wVDhtn.js → shapeFns-Cu8myB5f.js} +2 -2
  54. package/dist/{shapeFns-n4A9y80v.cjs → shapeFns-Uplvk1Jx.cjs} +2 -2
  55. package/dist/shapeRef.cjs +1 -1
  56. package/dist/shapeRef.js +1 -1
  57. package/dist/{shapeRefFns-eqCfRF0P.cjs → shapeRefFns-DZS2Y-8H.cjs} +4 -4
  58. package/dist/{shapeRefFns-CUt56Cul.js → shapeRefFns-Drrf8qS4.js} +4 -4
  59. package/dist/{shapeTypes-C_liO43e.cjs → shapeTypes-0gU7DOBf.cjs} +344 -20
  60. package/dist/{shapeTypes-9yfC5Z8_.js → shapeTypes-B2tufXyI.js} +344 -20
  61. package/dist/sketching.cjs +3 -3
  62. package/dist/sketching.js +3 -3
  63. package/dist/{solidBuilders-DSAmLmHd.js → solidBuilders-3Is-YjEI.js} +2 -2
  64. package/dist/{solidBuilders-BtfspzpT.cjs → solidBuilders-CdWC9FZI.cjs} +2 -2
  65. package/dist/{surfaceBuilders-ChWLM9Io.js → surfaceBuilders-BZOjOk6T.js} +2 -2
  66. package/dist/{surfaceBuilders-6BfGn0MN.cjs → surfaceBuilders-BjiUI8f_.cjs} +2 -2
  67. package/dist/text.cjs +2 -2
  68. package/dist/text.js +2 -2
  69. package/dist/{textBlueprints-B_RYPM3J.js → textBlueprints-BPi0wGxq.js} +7 -7
  70. package/dist/{textBlueprints-DTaz774E.cjs → textBlueprints-Dl-qQ5Hm.cjs} +7 -7
  71. package/dist/{textMetrics-CEBrAzpE.cjs → textMetrics-CDEnxSK0.cjs} +1 -1
  72. package/dist/{textMetrics-RRDn50ym.js → textMetrics-yWTfUPqx.js} +1 -1
  73. package/dist/topology.cjs +7 -7
  74. package/dist/topology.js +7 -7
  75. package/dist/{topologyQueryFns-B6BTVGLX.cjs → topologyQueryFns-CI4gmFyi.cjs} +1 -1
  76. package/dist/{topologyQueryFns-nbhh_XJF.js → topologyQueryFns-CxPWWuGB.js} +1 -1
  77. package/package.json +1 -1
@@ -10293,6 +10293,171 @@ function multiplyMatrix(a, b) {
10293
10293
  return out;
10294
10294
  }
10295
10295
  //#endregion
10296
+ //#region src/kernel/manifold/curveDesc.ts
10297
+ var TAU = 2 * Math.PI;
10298
+ var hypot3 = (a) => Math.hypot(a[0], a[1], a[2]);
10299
+ var sub3 = (a, b) => [
10300
+ a[0] - b[0],
10301
+ a[1] - b[1],
10302
+ a[2] - b[2]
10303
+ ];
10304
+ function lineLen(d) {
10305
+ return hypot3(sub3(d.p2, d.p1));
10306
+ }
10307
+ function bezierAt$1(points, t) {
10308
+ const tmp = points.map((p) => [
10309
+ p[0],
10310
+ p[1],
10311
+ p[2]
10312
+ ]);
10313
+ for (let k = 1; k < tmp.length; k++) for (let i = 0; i < tmp.length - k; i++) {
10314
+ const a = tmp[i] ?? [
10315
+ 0,
10316
+ 0,
10317
+ 0
10318
+ ];
10319
+ const b = tmp[i + 1] ?? [
10320
+ 0,
10321
+ 0,
10322
+ 0
10323
+ ];
10324
+ tmp[i] = [
10325
+ a[0] * (1 - t) + b[0] * t,
10326
+ a[1] * (1 - t) + b[1] * t,
10327
+ a[2] * (1 - t) + b[2] * t
10328
+ ];
10329
+ }
10330
+ return tmp[0] ?? [
10331
+ 0,
10332
+ 0,
10333
+ 0
10334
+ ];
10335
+ }
10336
+ function descType(d) {
10337
+ if (d.k === "line") return "LINE";
10338
+ if (d.k === "bezier") return "BEZIER";
10339
+ if (d.k === "helix") return "BSPLINE";
10340
+ return Math.abs(d.rx - d.ry) < 1e-9 * Math.max(1, d.rx) ? "CIRCLE" : "ELLIPSE";
10341
+ }
10342
+ /** Parameter bounds: line → [0, length]; conic → [a0, a1]; helix → [0, 2π·turns]; bezier → [0, 1]. */
10343
+ function descBounds(d) {
10344
+ if (d.k === "line") return {
10345
+ first: 0,
10346
+ last: lineLen(d)
10347
+ };
10348
+ if (d.k === "conic") return {
10349
+ first: d.a0,
10350
+ last: d.a1
10351
+ };
10352
+ if (d.k === "helix") return {
10353
+ first: 0,
10354
+ last: TAU * d.turns
10355
+ };
10356
+ return {
10357
+ first: 0,
10358
+ last: 1
10359
+ };
10360
+ }
10361
+ function descPointAt(d, param) {
10362
+ if (d.k === "line") {
10363
+ const t = param / (lineLen(d) || 1);
10364
+ return [
10365
+ d.p1[0] + (d.p2[0] - d.p1[0]) * t,
10366
+ d.p1[1] + (d.p2[1] - d.p1[1]) * t,
10367
+ d.p1[2] + (d.p2[2] - d.p1[2]) * t
10368
+ ];
10369
+ }
10370
+ if (d.k === "bezier") return bezierAt$1(d.points, param);
10371
+ if (d.k === "helix") {
10372
+ const ct = Math.cos(param);
10373
+ const st = Math.sin(param);
10374
+ const z = d.pitch * param / TAU;
10375
+ return [
10376
+ d.center[0] + d.radius * (ct * d.x[0] + st * d.y[0]) + z * d.axis[0],
10377
+ d.center[1] + d.radius * (ct * d.x[1] + st * d.y[1]) + z * d.axis[1],
10378
+ d.center[2] + d.radius * (ct * d.x[2] + st * d.y[2]) + z * d.axis[2]
10379
+ ];
10380
+ }
10381
+ const ct = Math.cos(param);
10382
+ const st = Math.sin(param);
10383
+ return [
10384
+ d.center[0] + d.rx * ct * d.x[0] + d.ry * st * d.y[0],
10385
+ d.center[1] + d.rx * ct * d.x[1] + d.ry * st * d.y[1],
10386
+ d.center[2] + d.rx * ct * d.x[2] + d.ry * st * d.y[2]
10387
+ ];
10388
+ }
10389
+ function descTangent(d, param) {
10390
+ let t;
10391
+ if (d.k === "line") t = sub3(d.p2, d.p1);
10392
+ else if (d.k === "bezier") {
10393
+ const a = bezierAt$1(d.points, Math.max(0, param - 1e-4));
10394
+ t = sub3(bezierAt$1(d.points, Math.min(1, param + 1e-4)), a);
10395
+ } else if (d.k === "helix") {
10396
+ const ct = Math.cos(param);
10397
+ const st = Math.sin(param);
10398
+ const k = d.pitch / TAU;
10399
+ t = [
10400
+ d.radius * (-st * d.x[0] + ct * d.y[0]) + k * d.axis[0],
10401
+ d.radius * (-st * d.x[1] + ct * d.y[1]) + k * d.axis[1],
10402
+ d.radius * (-st * d.x[2] + ct * d.y[2]) + k * d.axis[2]
10403
+ ];
10404
+ } else {
10405
+ const ct = Math.cos(param);
10406
+ const st = Math.sin(param);
10407
+ t = [
10408
+ -d.rx * st * d.x[0] + d.ry * ct * d.y[0],
10409
+ -d.rx * st * d.x[1] + d.ry * ct * d.y[1],
10410
+ -d.rx * st * d.x[2] + d.ry * ct * d.y[2]
10411
+ ];
10412
+ }
10413
+ const l = hypot3(t) || 1;
10414
+ return [
10415
+ t[0] / l,
10416
+ t[1] / l,
10417
+ t[2] / l
10418
+ ];
10419
+ }
10420
+ /** Exact length where closed-form exists; Ramanujan for full ellipses; numeric otherwise. */
10421
+ function descLength(d) {
10422
+ if (d.k === "line") return lineLen(d);
10423
+ if (d.k === "helix") {
10424
+ const c = TAU * d.radius;
10425
+ return d.turns * Math.sqrt(c * c + d.pitch * d.pitch);
10426
+ }
10427
+ if (d.k === "conic") {
10428
+ const span = Math.abs(d.a1 - d.a0);
10429
+ if (Math.abs(d.rx - d.ry) < 1e-9 * Math.max(1, d.rx)) return d.rx * span;
10430
+ if (Math.abs(span - TAU) < 1e-9) {
10431
+ const a = d.rx;
10432
+ const b = d.ry;
10433
+ const h = (a - b) * (a - b) / ((a + b) * (a + b));
10434
+ return Math.PI * (a + b) * (1 + 3 * h / (10 + Math.sqrt(4 - 3 * h)));
10435
+ }
10436
+ return numericLength((t) => descPointAt(d, t), d.a0, d.a1, 256);
10437
+ }
10438
+ return numericLength((t) => descPointAt(d, t), 0, 1, 128);
10439
+ }
10440
+ function descIsClosed(d) {
10441
+ if (d.k === "conic") return Math.abs(Math.abs(d.a1 - d.a0) - TAU) < 1e-9;
10442
+ return false;
10443
+ }
10444
+ function descIsPeriodic(d) {
10445
+ return descIsClosed(d);
10446
+ }
10447
+ function descPeriod(d) {
10448
+ return d.k === "conic" ? TAU : 0;
10449
+ }
10450
+ function numericLength(at, t0, t1, n) {
10451
+ let len = 0;
10452
+ let prev = at(t0);
10453
+ for (let i = 1; i <= n; i++) {
10454
+ const p = at(t0 + (t1 - t0) * i / n);
10455
+ len += hypot3(sub3(p, prev));
10456
+ prev = p;
10457
+ }
10458
+ return len;
10459
+ }
10460
+ //#endregion
10296
10461
  //#region src/kernel/manifold/approximations.ts
10297
10462
  function asShape$2(shape) {
10298
10463
  return shape;
@@ -10868,8 +11033,51 @@ function discretizeOcctWire(occt, wire) {
10868
11033
  return chainEdges(occt.iterShapes(wire, "edge").map((e) => sampleOcctEdge(occt, e)));
10869
11034
  }
10870
11035
  function makeProfileBuilders(_module) {
10871
- function edge(pts) {
10872
- return wrap(PLACEHOLDER, makeNode("profileEdge", { pts }, []));
11036
+ function edge(pts, curve) {
11037
+ return wrap(PLACEHOLDER, makeNode("profileEdge", curve ? {
11038
+ pts,
11039
+ curve
11040
+ } : { pts }, []));
11041
+ }
11042
+ /** In-plane orthonormal frame (x, y) for a conic on a plane with the given normal. */
11043
+ function conicFrame(normal, xDir) {
11044
+ const n = normalize3(normal);
11045
+ const x = xDir ? normalize3(xDir) : pickPerp(n);
11046
+ return {
11047
+ x,
11048
+ y: normalize3(cross(n, x))
11049
+ };
11050
+ }
11051
+ /** Analytic conic descriptor for the circle through three points (or null if collinear). */
11052
+ function conicDescFrom3(p1, p2, p3) {
11053
+ const v1 = sub(p2, p1);
11054
+ const v2 = sub(p3, p1);
11055
+ const n = cross(v1, v2);
11056
+ if (length3(n) < 1e-12) return void 0;
11057
+ const nn = normalize3(n);
11058
+ const b = dot(v1, v1);
11059
+ const c = dot(v2, v2);
11060
+ const dd = dot(v1, v2);
11061
+ const denom = 2 * (b * c - dd * dd);
11062
+ if (Math.abs(denom) < 1e-18) return void 0;
11063
+ const s = c * (b - dd) / denom;
11064
+ const t = b * (c - dd) / denom;
11065
+ const center = add(p1, add(scaleVec(v1, s), scaleVec(v2, t)));
11066
+ const radius = length3(sub(p1, center));
11067
+ const x = normalize3(sub(p1, center));
11068
+ const y = normalize3(cross(nn, x));
11069
+ let a1 = Math.atan2(dot(sub(p3, center), y), dot(sub(p3, center), x));
11070
+ if (a1 < 0) a1 += 2 * Math.PI;
11071
+ return {
11072
+ k: "conic",
11073
+ center,
11074
+ x,
11075
+ y,
11076
+ rx: radius,
11077
+ ry: radius,
11078
+ a0: 0,
11079
+ a1
11080
+ };
10873
11081
  }
10874
11082
  function ringOrPts(shape) {
10875
11083
  const ms = asManifoldShape(shape);
@@ -10969,13 +11177,89 @@ function makeProfileBuilders(_module) {
10969
11177
  y,
10970
11178
  z
10971
11179
  ]]),
10972
- makeLineEdge: (p1, p2) => edge([p1, p2]),
10973
- makeCircleEdge: (center, normal, radius) => edge(sampleArc(center, normal, radius, 0, 2 * Math.PI)),
10974
- makeCircleArc: (center, normal, radius, startAngle, endAngle) => edge(sampleArc(center, normal, radius, startAngle, endAngle)),
10975
- makeArcEdge: (p1, p2, p3) => edge(circleFrom3(p1, p2, p3)),
10976
- makeEllipseEdge: (center, normal, majorRadius, minorRadius, xDir) => edge(ellipsePts(center, normal, majorRadius, minorRadius, xDir)),
10977
- makeBezierEdge: (points) => edge(sampleBezier(points)),
10978
- makeTangentArc: (startPoint, _startTangent, endPoint) => edge([startPoint, endPoint]),
11180
+ makeLineEdge: (p1, p2) => edge([p1, p2], {
11181
+ k: "line",
11182
+ p1,
11183
+ p2
11184
+ }),
11185
+ makeCircleEdge: (center, normal, radius) => {
11186
+ const { x, y } = conicFrame(normal);
11187
+ return edge(sampleArc(center, normal, radius, 0, 2 * Math.PI), {
11188
+ k: "conic",
11189
+ center,
11190
+ x,
11191
+ y,
11192
+ rx: radius,
11193
+ ry: radius,
11194
+ a0: 0,
11195
+ a1: 2 * Math.PI
11196
+ });
11197
+ },
11198
+ makeCircleArc: (center, normal, radius, startAngle, endAngle) => {
11199
+ const { x, y } = conicFrame(normal);
11200
+ return edge(sampleArc(center, normal, radius, startAngle, endAngle), {
11201
+ k: "conic",
11202
+ center,
11203
+ x,
11204
+ y,
11205
+ rx: radius,
11206
+ ry: radius,
11207
+ a0: startAngle,
11208
+ a1: endAngle
11209
+ });
11210
+ },
11211
+ makeArcEdge: (p1, p2, p3) => edge(circleFrom3(p1, p2, p3), conicDescFrom3(p1, p2, p3)),
11212
+ makeEllipseEdge: (center, normal, majorRadius, minorRadius, xDir) => {
11213
+ const { x, y } = conicFrame(normal, xDir);
11214
+ return edge(ellipsePts(center, normal, majorRadius, minorRadius, xDir), {
11215
+ k: "conic",
11216
+ center,
11217
+ x,
11218
+ y,
11219
+ rx: majorRadius,
11220
+ ry: minorRadius,
11221
+ a0: 0,
11222
+ a1: 2 * Math.PI
11223
+ });
11224
+ },
11225
+ makeBezierEdge: (points) => edge(sampleBezier(points), {
11226
+ k: "bezier",
11227
+ points: points.map((p) => [...p])
11228
+ }),
11229
+ makeTangentArc: (startPoint, _startTangent, endPoint) => edge([startPoint, endPoint], {
11230
+ k: "line",
11231
+ p1: startPoint,
11232
+ p2: endPoint
11233
+ }),
11234
+ makeHelixWire: (pitch, height, radius, center = [
11235
+ 0,
11236
+ 0,
11237
+ 0
11238
+ ], direction = [
11239
+ 0,
11240
+ 0,
11241
+ 1
11242
+ ], leftHanded = false) => {
11243
+ const axis = normalize3(direction);
11244
+ const x = pickPerp(axis);
11245
+ const y0 = normalize3(cross(axis, x));
11246
+ const y = leftHanded ? scaleVec(y0, -1) : y0;
11247
+ const turns = pitch !== 0 ? height / pitch : 0;
11248
+ const desc = {
11249
+ k: "helix",
11250
+ center,
11251
+ axis,
11252
+ x,
11253
+ y,
11254
+ radius,
11255
+ pitch,
11256
+ turns
11257
+ };
11258
+ const segs = Math.max(8, Math.ceil(turns * FULL_CIRCLE_SEGMENTS));
11259
+ const pts = [];
11260
+ for (let i = 0; i <= segs; i++) pts.push(descPointAt(desc, 2 * Math.PI * turns * i / segs));
11261
+ return edge(pts, desc);
11262
+ },
10979
11263
  makeWire: (edges) => wireFrom(edges),
10980
11264
  makeWireFromMixed: (items) => wireFrom(items),
10981
11265
  makeFace,
@@ -11021,7 +11305,7 @@ function makeBuilderOps(module) {
11021
11305
  makeEllipseArc: () => notImplemented("makeEllipseArc"),
11022
11306
  makeBezierEdge: (points) => profile.makeBezierEdge(points),
11023
11307
  makeTangentArc: (startPoint, startTangent, endPoint) => profile.makeTangentArc(startPoint, startTangent, endPoint),
11024
- makeHelixWire: () => notImplemented("makeHelixWire"),
11308
+ makeHelixWire: (pitch, height, radius, center, direction, leftHanded) => profile.makeHelixWire(pitch, height, radius, center, direction, leftHanded),
11025
11309
  makeWireFromMixed: (items) => profile.makeWireFromMixed(items),
11026
11310
  makeCompound: () => notImplemented("makeCompound"),
11027
11311
  solidFromShell: () => notImplemented("solidFromShell"),
@@ -12613,6 +12897,8 @@ function makeMeasureOps(_module) {
12613
12897
  length: (shape) => {
12614
12898
  const e = shape;
12615
12899
  if (e && e.__nativeEdge && typeof e.length === "number") return e.length;
12900
+ const node = asManifoldShape(shape)?.node;
12901
+ if (node?.op === "profileEdge" && node.params?.curve) return descLength(node.params.curve);
12616
12902
  return notImplemented("length");
12617
12903
  },
12618
12904
  centerOfMass: (shape) => centerOfMass(shape),
@@ -13777,18 +14063,56 @@ function viaOcct(shape, query) {
13777
14063
  }
13778
14064
  return query(occtShape, occt);
13779
14065
  }
14066
+ /** The analytic curve descriptor of a standalone profile edge, if it has one. */
14067
+ function descOf(shape) {
14068
+ const ms = asManifoldShape(shape);
14069
+ if (!ms) return void 0;
14070
+ const node = ms.node;
14071
+ return node.op === "profileEdge" ? node.params?.curve : void 0;
14072
+ }
13780
14073
  function makeGeometryOps(_module) {
13781
14074
  return {
13782
- curveType: (shape) => isNativeEdge(shape) ? shape.curveType : viaOcct(shape, (s, occt) => occt.curveType(s)),
13783
- curveParameters: (shape) => isNativeEdge(shape) ? [0, shape.length] : viaOcct(shape, (s, occt) => occt.curveParameters(s)),
13784
- curvePointAtParam: (shape, param) => isNativeEdge(shape) ? edgePointAt(shape, param) : viaOcct(shape, (s, occt) => occt.curvePointAtParam(s, param)),
13785
- curveTangent: (shape, param) => isNativeEdge(shape) ? {
13786
- point: edgePointAt(shape, param),
13787
- tangent: edgeTangentAt(shape, param)
13788
- } : viaOcct(shape, (s, occt) => occt.curveTangent(s, param)),
13789
- curveIsClosed: (shape) => viaOcct(shape, (s, occt) => occt.curveIsClosed(s)),
13790
- curveIsPeriodic: (shape) => viaOcct(shape, (s, occt) => occt.curveIsPeriodic(s)),
13791
- curvePeriod: (shape) => viaOcct(shape, (s, occt) => occt.curvePeriod(s)),
14075
+ curveType: (shape) => {
14076
+ const d = descOf(shape);
14077
+ if (d) return descType(d);
14078
+ return isNativeEdge(shape) ? shape.curveType : viaOcct(shape, (s, occt) => occt.curveType(s));
14079
+ },
14080
+ curveParameters: (shape) => {
14081
+ const d = descOf(shape);
14082
+ if (d) {
14083
+ const b = descBounds(d);
14084
+ return [b.first, b.last];
14085
+ }
14086
+ return isNativeEdge(shape) ? [0, shape.length] : viaOcct(shape, (s, occt) => occt.curveParameters(s));
14087
+ },
14088
+ curvePointAtParam: (shape, param) => {
14089
+ const d = descOf(shape);
14090
+ if (d) return descPointAt(d, param);
14091
+ return isNativeEdge(shape) ? edgePointAt(shape, param) : viaOcct(shape, (s, occt) => occt.curvePointAtParam(s, param));
14092
+ },
14093
+ curveTangent: (shape, param) => {
14094
+ const d = descOf(shape);
14095
+ if (d) return {
14096
+ point: descPointAt(d, param),
14097
+ tangent: descTangent(d, param)
14098
+ };
14099
+ return isNativeEdge(shape) ? {
14100
+ point: edgePointAt(shape, param),
14101
+ tangent: edgeTangentAt(shape, param)
14102
+ } : viaOcct(shape, (s, occt) => occt.curveTangent(s, param));
14103
+ },
14104
+ curveIsClosed: (shape) => {
14105
+ const d = descOf(shape);
14106
+ return d ? descIsClosed(d) : viaOcct(shape, (s, occt) => occt.curveIsClosed(s));
14107
+ },
14108
+ curveIsPeriodic: (shape) => {
14109
+ const d = descOf(shape);
14110
+ return d ? descIsPeriodic(d) : viaOcct(shape, (s, occt) => occt.curveIsPeriodic(s));
14111
+ },
14112
+ curvePeriod: (shape) => {
14113
+ const d = descOf(shape);
14114
+ return d ? descPeriod(d) : viaOcct(shape, (s, occt) => occt.curvePeriod(s));
14115
+ },
13792
14116
  interpolatePoints: (points, options) => occtOrThrow("interpolatePoints").interpolatePoints(points, options),
13793
14117
  approximatePoints: (points, options) => occtOrThrow("approximatePoints").approximatePoints(points, options),
13794
14118
  curveDegreeElevate: (edge, elevateBy) => viaOcct(edge, (s, occt) => occt.curveDegreeElevate(s, elevateBy)),
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-DTaz774E.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-r0uUFBZZ.cjs");
4
- const require_drawFns = require("./drawFns-ZPhrUGWl.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-Dl-qQ5Hm.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-J9bAQDhD.cjs");
4
+ const require_drawFns = require("./drawFns-B4BFzsPq.cjs");
5
5
  //#region src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-DHWmjOmJ.js";
2
- import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-DiJFFH16.js";
3
- import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-B_RYPM3J.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-BmCyc7s1.js";
2
+ import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-0ojbwK2X.js";
3
+ import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-BPi0wGxq.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-9yfC5Z8_.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-B2tufXyI.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { _ as downcast, g as cast } from "./faceFns-LJ_lU5IE.js";
3
+ import { _ as downcast, g as cast } from "./faceFns-DFbEW9oz.js";
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-C_liO43e.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-0gU7DOBf.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-DGmQI57P.cjs");
3
+ const require_faceFns = require("./faceFns-FVl-7nu7.cjs");
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-9yfC5Z8_.js";
1
+ import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-B2tufXyI.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { g as cast, l as outerWire } from "./faceFns-LJ_lU5IE.js";
3
+ import { g as cast, l as outerWire } from "./faceFns-DFbEW9oz.js";
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-C_liO43e.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-0gU7DOBf.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-DGmQI57P.cjs");
3
+ const require_faceFns = require("./faceFns-FVl-7nu7.cjs");
4
4
  //#region src/utils/range.ts
5
5
  /** Generate an array of integers `[0, 1, …, len - 1]`. */
6
6
  function range(len) {
package/dist/text.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-DTaz774E.cjs");
3
- const require_textMetrics = require("./textMetrics-CEBrAzpE.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-Dl-qQ5Hm.cjs");
3
+ const require_textMetrics = require("./textMetrics-CDEnxSK0.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-B_RYPM3J.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-RRDn50ym.js";
1
+ import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-BPi0wGxq.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-yWTfUPqx.js";
3
3
  export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
@@ -1,15 +1,15 @@
1
- import { Z as getKernel, h as isShape3D, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-9yfC5Z8_.js";
1
+ import { Z as getKernel, h as isShape3D, o as createFace, p as isFace, t as castShape, u as createWire } from "./shapeTypes-B2tufXyI.js";
2
2
  import { A as ok, R as unwrap, T as isOk, b as err, d as validationError, h as bug, i as kernelError, l as typeCastError, r as ioError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
3
  import { r as toVec3 } from "./types-D24Y27N0.js";
4
4
  import { d as vecNormalize, h as vecScale, r as vecCross } from "./vecOps-SKPRvPH-.js";
5
5
  import { n as createPlane } from "./planeOps-DSjjtrjg.js";
6
- import { _ as downcast, g as cast } from "./faceFns-LJ_lU5IE.js";
7
- import { c as curveStartPoint, l as curveTangentAt } from "./curveFns-vZbW7CVb.js";
6
+ import { _ as downcast, g as cast } from "./faceFns-DFbEW9oz.js";
7
+ import { c as curveStartPoint, l as curveTangentAt } from "./curveFns-BcS0DZLj.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
9
- import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-ChWLM9Io.js";
10
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-DHWmjOmJ.js";
11
- import { o as makeSolid, t as makeCompound } from "./solidBuilders-DSAmLmHd.js";
12
- import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-BamV4cSU.js";
9
+ import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-BZOjOk6T.js";
10
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-BmCyc7s1.js";
11
+ import { o as makeSolid, t as makeCompound } from "./solidBuilders-3Is-YjEI.js";
12
+ import { c as sweep, i as complexExtrude, l as twistExtrude, r as revolve, t as extrude } from "./extrudeFns-CrTb7bjb.js";
13
13
  import opentype from "opentype.js";
14
14
  //#region src/operations/loftFns.ts
15
15
  /**
@@ -29,18 +29,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  enumerable: true
30
30
  }) : target, mod));
31
31
  //#endregion
32
- const require_shapeTypes = require("./shapeTypes-C_liO43e.cjs");
32
+ const require_shapeTypes = require("./shapeTypes-0gU7DOBf.cjs");
33
33
  const require_errors = require("./errors-CXJtc4I7.cjs");
34
34
  const require_types = require("./types-KjA8tY4Y.cjs");
35
35
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
36
36
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
37
- const require_faceFns = require("./faceFns-DGmQI57P.cjs");
38
- const require_curveFns = require("./curveFns-Dx9ha0n_.cjs");
37
+ const require_faceFns = require("./faceFns-FVl-7nu7.cjs");
38
+ const require_curveFns = require("./curveFns-DOW3Rs1A.cjs");
39
39
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
40
- const require_surfaceBuilders = require("./surfaceBuilders-6BfGn0MN.cjs");
41
- const require_blueprintSketcher = require("./blueprintSketcher-r0uUFBZZ.cjs");
42
- const require_solidBuilders = require("./solidBuilders-BtfspzpT.cjs");
43
- const require_extrudeFns = require("./extrudeFns-DsvQYfqd.cjs");
40
+ const require_surfaceBuilders = require("./surfaceBuilders-BjiUI8f_.cjs");
41
+ const require_blueprintSketcher = require("./blueprintSketcher-J9bAQDhD.cjs");
42
+ const require_solidBuilders = require("./solidBuilders-CdWC9FZI.cjs");
43
+ const require_extrudeFns = require("./extrudeFns-D0IrXWsB.cjs");
44
44
  let opentype_js = require("opentype.js");
45
45
  opentype_js = __toESM(opentype_js, 1);
46
46
  //#region src/operations/loftFns.ts
@@ -1,4 +1,4 @@
1
- const require_textBlueprints = require("./textBlueprints-DTaz774E.cjs");
1
+ const require_textBlueprints = require("./textBlueprints-Dl-qQ5Hm.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  //#region src/text/sketchText.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
2
- import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-B_RYPM3J.js";
2
+ import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-BPi0wGxq.js";
3
3
  //#region src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
package/dist/topology.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_topologyQueryFns = require("./topologyQueryFns-B6BTVGLX.cjs");
3
- const require_faceFns = require("./faceFns-DGmQI57P.cjs");
4
- const require_shapeFns = require("./shapeFns-n4A9y80v.cjs");
5
- const require_curveFns = require("./curveFns-Dx9ha0n_.cjs");
6
- const require_meshFns = require("./meshFns-D2rlqrTt.cjs");
7
- const require_booleanFns = require("./booleanFns-B3vIRhjz.cjs");
8
- const require_primitiveFns = require("./primitiveFns-Bi22B25-.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-CI4gmFyi.cjs");
3
+ const require_faceFns = require("./faceFns-FVl-7nu7.cjs");
4
+ const require_shapeFns = require("./shapeFns-Uplvk1Jx.cjs");
5
+ const require_curveFns = require("./curveFns-DOW3Rs1A.cjs");
6
+ const require_meshFns = require("./meshFns-D2rcmVr_.cjs");
7
+ const require_booleanFns = require("./booleanFns-9qTQX1iM.cjs");
8
+ const require_primitiveFns = require("./primitiveFns-B7BJjuHU.cjs");
9
9
  exports.addHoles = require_primitiveFns.addHoles;
10
10
  exports.adjacentFaces = require_primitiveFns.adjacentFaces;
11
11
  exports.approximateCurve = require_curveFns.approximateCurve;
package/dist/topology.js CHANGED
@@ -1,8 +1,8 @@
1
- import { S as vertexPosition, _ as iterFaces, b as iterVertices, c as getFaces, f as getVertices, g as iterEdges, m as invalidateShapeCache, n as getBounds, p as getWires, s as getEdges, x as iterWires } from "./topologyQueryFns-nbhh_XJF.js";
2
- import { _ as downcast, a as flipFaceOrientation, b as iterTopo, c as normalAt, d as projectPointOnFace, g as cast, h as asTopo, i as faceOrientation, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, v as fromBREP, x as shapeType, y as isCompSolid } from "./faceFns-LJ_lU5IE.js";
3
- import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-C3wVDhtn.js";
4
- import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-vZbW7CVb.js";
5
- import { c as createMeshCache, n as exportSTEP, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-CoPoc7dh.js";
6
- import { a as fuseAll, r as cutAll } from "./booleanFns-DNG6xxu8.js";
7
- import { $ as fuseAllBisect, A as fixShape, C as threePointArc, D as wireLoop, E as wire, G as chamferWithEvolution, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as cutAllBisect, S as tangentArc, T as vertex, U as variableFillet, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as sharedEdges, b as sphere, c as cylinder, ct as chamferDistAngle, d as ellipsoid, et as getNurbsCurveData, f as face, ft as toLineGeometryData, g as offsetFace, h as line, i as bsplineApprox, it as facesOfEdge, k as fixSelfIntersection, l as ellipse, lt as toBufferGeometryData, m as helix, n as bezier, nt as adjacentFaces, o as compound, ot as verticesOfEdge, p as filledFace, q as filletWithEvolution, r as box, rt as edgesOfFace, s as cone, st as wiresOfFace, t as addHoles, tt as getNurbsSurfaceData, u as ellipseArc, ut as toGroupedBufferGeometryData, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-OuEHerl6.js";
1
+ import { S as vertexPosition, _ as iterFaces, b as iterVertices, c as getFaces, f as getVertices, g as iterEdges, m as invalidateShapeCache, n as getBounds, p as getWires, s as getEdges, x as iterWires } from "./topologyQueryFns-CxPWWuGB.js";
2
+ import { _ as downcast, a as flipFaceOrientation, b as iterTopo, c as normalAt, d as projectPointOnFace, g as cast, h as asTopo, i as faceOrientation, l as outerWire, m as uvCoordinates, n as faceCenter, o as getSurfaceType, p as uvBounds, r as faceGeomType, s as innerWires, t as classifyPointOnFace, u as pointOnSurface, v as fromBREP, x as shapeType, y as isCompSolid } from "./faceFns-DFbEW9oz.js";
3
+ import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-Cu8myB5f.js";
4
+ import { a as curveLength, c as curveStartPoint, d as getCurveType, f as getOrientation, i as curveIsPeriodic, l as curveTangentAt, m as offsetWire2D, n as curveEndPoint, o as curvePeriod, p as interpolateCurve, r as curveIsClosed, s as curvePointAt, t as approximateCurve, u as flipOrientation } from "./curveFns-BcS0DZLj.js";
5
+ import { c as createMeshCache, n as exportSTEP, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-DZA-Hsya.js";
6
+ import { a as fuseAll, r as cutAll } from "./booleanFns-4_KnvEil.js";
7
+ import { $ as fuseAllBisect, A as fixShape, C as threePointArc, D as wireLoop, E as wire, G as chamferWithEvolution, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as cutAllBisect, S as tangentArc, T as vertex, U as variableFillet, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as sharedEdges, b as sphere, c as cylinder, ct as chamferDistAngle, d as ellipsoid, et as getNurbsCurveData, f as face, ft as toLineGeometryData, g as offsetFace, h as line, i as bsplineApprox, it as facesOfEdge, k as fixSelfIntersection, l as ellipse, lt as toBufferGeometryData, m as helix, n as bezier, nt as adjacentFaces, o as compound, ot as verticesOfEdge, p as filledFace, q as filletWithEvolution, r as box, rt as edgesOfFace, s as cone, st as wiresOfFace, t as addHoles, tt as getNurbsSurfaceData, u as ellipseArc, ut as toGroupedBufferGeometryData, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-_A-uhxX7.js";
8
8
  export { addHoles, adjacentFaces, approximateCurve, asTopo, autoHeal, bezier, box, bsplineApprox, cast, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkBoolean, circle, classifyPointOnFace, clearMeshCache, compound, cone, createMeshCache, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cutAll, cutAllBisect, cutWithEvolution, cylinder, fromBREP as deserializeShape, downcast, edgesOfFace, ellipse, ellipseArc, ellipsoid, exportIGES, exportSTEP, exportSTL, face, faceCenter, faceGeomType, faceOrientation, facesOfEdge, filledFace, filletWithEvolution, fixSelfIntersection, fixShape, flipFaceOrientation, flipOrientation, fuseAll, fuseAllBisect, fuseWithEvolution, getBounds, getCurveType, getEdges, getFaces, getHashCode, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getSurfaceType, getVertices, getWires, healFace, healSolid, healWire, helix, innerWires, interpolateCurve, intersectWithEvolution, invalidateShapeCache, isCompSolid, isEqualShape, isSameShape, iterEdges, iterFaces, iterTopo, iterVertices, iterWires, line, normalAt, offsetFace, offsetWire2D, outerWire, pointOnSurface, polygon, positionOnCurve, projectPointOnFace, sewShells, shapeType, sharedEdges, shellWithEvolution, solid, solidFromShell, sphere, subFace, tangentArc, threePointArc, toBufferGeometryData, toGroupedBufferGeometryData, toLineGeometryData, torus, uvBounds, uvCoordinates, variableFillet, vertex, vertexPosition, verticesOfEdge, wire, wireLoop, wiresOfFace };
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-C_liO43e.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-0gU7DOBf.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  //#region src/core/kernelCall.ts
4
4
  function buildError(kind, code, message, cause, suggestion) {
@@ -1,4 +1,4 @@
1
- import { N as getOrQueryType, R as DisposalScope, Y as _usingCtx, Z as getKernel, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-9yfC5Z8_.js";
1
+ import { N as getOrQueryType, R as DisposalScope, Y as _usingCtx, Z as getKernel, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-B2tufXyI.js";
2
2
  import { A as ok, b as err, f as getSuggestionForCode, p as translateKernelError } from "./errors-DNWJsfVU.js";
3
3
  //#region src/core/kernelCall.ts
4
4
  function buildError(kind, code, message, cause, suggestion) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "18.63.0",
3
+ "version": "18.64.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",