brepjs 18.82.6 → 18.82.8

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 (76) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-yJsyEFn_.js → blueprint-DmvnSTKs.js} +5 -5
  4. package/dist/{blueprint-C2gkyxYc.cjs → blueprint-lbpshPPC.cjs} +5 -5
  5. package/dist/{blueprintFns-DjpRmsbi.js → blueprintFns-Bhmqz0_E.js} +2 -2
  6. package/dist/{blueprintFns-CL4VZzCL.cjs → blueprintFns-Nl1hnrJX.cjs} +2 -2
  7. package/dist/{blueprintSketcher-BbYPEPMa.js → blueprintSketcher-DzCTWt_f.js} +3 -3
  8. package/dist/{blueprintSketcher-BLXntEIS.cjs → blueprintSketcher-NDZKJGYh.cjs} +3 -3
  9. package/dist/{boolean2D-C3k4iO92.js → boolean2D-DGtpfl2g.js} +4 -4
  10. package/dist/{boolean2D-BbvyYF-v.cjs → boolean2D-Dzs9Vkjv.cjs} +4 -4
  11. package/dist/brepjs.cjs +24 -24
  12. package/dist/brepjs.js +24 -24
  13. package/dist/{cameraFns-BiQGAnPd.js → cameraFns-B2WR42Tm.js} +2 -2
  14. package/dist/{cameraFns-BkSHm_Vo.cjs → cameraFns-p4G3cFuC.cjs} +2 -2
  15. package/dist/core.cjs +1 -1
  16. package/dist/core.js +1 -1
  17. package/dist/{cornerFinder-D3lGL_Td.cjs → cornerFinder-B_SuHSBj.cjs} +1 -1
  18. package/dist/{cornerFinder-C9zvdkpK.js → cornerFinder-KoakXQze.js} +1 -1
  19. package/dist/{curveFns-Dlbfncal.cjs → curveFns-CJWxgcHu.cjs} +1 -1
  20. package/dist/{curveFns-B4_om-yp.js → curveFns-XRM_FMU4.js} +1 -1
  21. package/dist/{drawFns-lls9IuPY.cjs → drawFns-7qn35uWm.cjs} +12 -12
  22. package/dist/{drawFns-DaTn2p7M.js → drawFns-D7q8qpEI.js} +12 -12
  23. package/dist/{faceFns-Obtamglc.cjs → faceFns-B3bYfnGX.cjs} +2 -2
  24. package/dist/{faceFns-4JEna8n9.js → faceFns-hGTQhRXB.js} +2 -2
  25. package/dist/{healingFns-gHxvhsbJ.cjs → healingFns-BpFs-Puf.cjs} +5 -5
  26. package/dist/{healingFns-uXLI1vJ7.js → healingFns-CUn6v5p4.js} +5 -5
  27. package/dist/{helpers-rAK5qEBu.cjs → helpers-D6yNdVOO.cjs} +6 -6
  28. package/dist/{helpers-CJV31xig.js → helpers-DOE4GlZ0.js} +6 -6
  29. package/dist/{importFns-BJVEly-l.cjs → importFns-BQTQKGbi.cjs} +2 -2
  30. package/dist/{importFns-Dcc2KviL.js → importFns-CPZWa8WK.js} +2 -2
  31. package/dist/io.cjs +2 -2
  32. package/dist/io.js +2 -2
  33. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts +28 -7
  34. package/dist/{loftFns-BAM49XJy.cjs → loftFns-B8UzGtwS.cjs} +1 -1
  35. package/dist/{loftFns-DF3KNz9-.js → loftFns-DusJd7Qq.js} +1 -1
  36. package/dist/{measureFns-xpevHRLG.js → measureFns-Bka10mrS.js} +3 -3
  37. package/dist/{measureFns-Ym_I522s.cjs → measureFns-DwHd423H.cjs} +3 -3
  38. package/dist/measurement.cjs +1 -1
  39. package/dist/measurement.js +1 -1
  40. package/dist/{meshFns-DDhKhVK0.cjs → meshFns-B2k02WJJ.cjs} +3 -3
  41. package/dist/{meshFns-soCHj3jp.js → meshFns-CNfOU3D1.js} +3 -3
  42. package/dist/operations.cjs +2 -2
  43. package/dist/operations.js +2 -2
  44. package/dist/{primitiveFns-BmUIWDC7.js → primitiveFns-C-kQixz1.js} +4 -4
  45. package/dist/{primitiveFns-SEyCwNra.cjs → primitiveFns-D3y2t4FS.cjs} +4 -4
  46. package/dist/projection.cjs +1 -1
  47. package/dist/projection.js +1 -1
  48. package/dist/query.cjs +2 -2
  49. package/dist/query.js +2 -2
  50. package/dist/{shapeFns-CE6c_4D4.cjs → shapeFns-BPvq4QYa.cjs} +2 -2
  51. package/dist/{shapeFns-B8REDWBf.js → shapeFns-kVgikxkG.js} +2 -2
  52. package/dist/shapeRef.cjs +1 -1
  53. package/dist/shapeRef.js +1 -1
  54. package/dist/{shapeRefFns-O5h8bOr9.js → shapeRefFns-CXWVzhbm.js} +4 -4
  55. package/dist/{shapeRefFns-C3tglb5A.cjs → shapeRefFns-CxB7OXOc.cjs} +4 -4
  56. package/dist/{shapeTypes-B8d_6R0X.js → shapeTypes-Caa9T1VR.js} +52 -0
  57. package/dist/{shapeTypes-nFeOa7gQ.cjs → shapeTypes-DpDcMU0a.cjs} +52 -0
  58. package/dist/sketching.cjs +3 -3
  59. package/dist/sketching.js +3 -3
  60. package/dist/{solidBuilders-BSnsqitN.js → solidBuilders-BHRL7010.js} +5 -5
  61. package/dist/{solidBuilders-DfGIPlQ2.cjs → solidBuilders-Cve7yf13.cjs} +5 -5
  62. package/dist/{surfaceBuilders-CDX6sDZz.cjs → surfaceBuilders-5hLC_QeE.cjs} +2 -2
  63. package/dist/{surfaceBuilders-D5sQZ6ah.js → surfaceBuilders-BDEc8WSE.js} +2 -2
  64. package/dist/text.cjs +2 -2
  65. package/dist/text.js +2 -2
  66. package/dist/{textBlueprints-Cqu-mcRD.js → textBlueprints-Cl5P2MkE.js} +7 -7
  67. package/dist/{textBlueprints-BwRqV98S.cjs → textBlueprints-bMa5164s.cjs} +7 -7
  68. package/dist/{textMetrics-DpCTYcE2.cjs → textMetrics-BDr82S48.cjs} +1 -1
  69. package/dist/{textMetrics-Cikow3vH.js → textMetrics-DBEv2A2N.js} +1 -1
  70. package/dist/{threadFns-BQHEnI7a.js → threadFns-74sXf2tN.js} +6 -6
  71. package/dist/{threadFns-BzFhh87N.cjs → threadFns-Cw1TzGd2.cjs} +6 -6
  72. package/dist/topology.cjs +8 -8
  73. package/dist/topology.js +8 -8
  74. package/dist/{topologyQueryFns-BcGLEMvc.js → topologyQueryFns-CR7zQvDK.js} +1 -1
  75. package/dist/{topologyQueryFns-Bhey0q1G.cjs → topologyQueryFns-imRz9gK2.cjs} +1 -1
  76. package/package.json +3 -2
@@ -1,8 +1,8 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { n as wasmIndex, t as vec3At$1 } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, b as err, r as ioError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
4
4
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
5
- import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-yJsyEFn_.js";
5
+ import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-DmvnSTKs.js";
6
6
  //#region 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-DDhKhVK0.cjs");
3
- const require_importFns = require("./importFns-BJVEly-l.cjs");
2
+ const require_meshFns = require("./meshFns-B2k02WJJ.cjs");
3
+ const require_importFns = require("./importFns-BQTQKGbi.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-soCHj3jp.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-Dcc2KviL.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-CNfOU3D1.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-CPZWa8WK.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -2,7 +2,7 @@
2
2
  * Type-safe interface for the brepkit WASM kernel (`BrepKernel`).
3
3
  *
4
4
  * AUTO-GENERATED by `npm run sync:brepkit-types`.
5
- * Synced against `brepkit-wasm@2.104.1`.
5
+ * Synced against `brepkit-wasm@2.111.1`.
6
6
  *
7
7
  * Methods not yet referenced in the adapter layer are tagged `@unwired`.
8
8
  *
@@ -32,6 +32,17 @@ export interface BrepkitEdgeLines {
32
32
  /** Number of edges. */
33
33
  readonly edgeCount: number;
34
34
  }
35
+ /** Per-face-grouped mesh returned by `tessellateSolidGroupedBinary` (packed typed arrays). */
36
+ export interface BrepkitGroupedMesh {
37
+ /** Flattened vertex positions `[x, y, z, ...]`. */
38
+ readonly positions: Float32Array;
39
+ /** Flattened per-vertex normals `[nx, ny, nz, ...]`. */
40
+ readonly normals: Float32Array;
41
+ /** Triangle indices (groups of 3). */
42
+ readonly indices: Uint32Array;
43
+ /** Per-face start offsets into `indices`; last element equals `indices.length`. */
44
+ readonly faceOffsets: Uint32Array;
45
+ }
35
46
  /**
36
47
  * Type-safe view of brepkit's WASM `BrepKernel` class.
37
48
  *
@@ -207,6 +218,7 @@ export interface BrepkitKernel {
207
218
  /** @unwired */
208
219
  tessellateSolid(solid: number, deflection: number, angularTolerance?: number | null): BrepkitMesh;
209
220
  tessellateSolidGrouped(solid: number, deflection: number, angularTolerance?: number | null): string;
221
+ tessellateSolidGroupedBinary(solid: number, deflection: number, angularTolerance?: number | null): BrepkitGroupedMesh;
210
222
  tessellateSolidUV(solid: number, deflection: number, angularTolerance?: number | null): string;
211
223
  /** @unwired */
212
224
  tessellateEdge(edge: number, numPoints: number): Float64Array;
@@ -284,33 +296,42 @@ export interface BrepkitKernel {
284
296
  copyFace(face: number): number;
285
297
  /** @unwired */
286
298
  detectCoincidentFaces(a: number, b: number): string;
299
+ /** @unwired */
300
+ filletWithEvolution(solid: number, edgeHandles: Uint32Array | number[], radius: number): string;
287
301
  getNurbsCurveData(edge: number): string;
288
302
  /** @unwired */
289
303
  getNurbsSurfaceData(face: number): string;
290
304
  getNurbsSurfaceDataParity(face: number): string;
291
- /** @unwired */
292
305
  getSolidShells(solid: number): Uint32Array;
306
+ /** @unwired */
307
+ guidedSweep(face: number, spineDegree: number, spineKnots: Float64Array | number[], spineControlPoints: Float64Array | number[], spineWeights: Float64Array | number[], auxDegree: number, auxKnots: Float64Array | number[], auxControlPoints: Float64Array | number[], auxWeights: Float64Array | number[]): number;
293
308
  makeCircleEdge(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, radius: number): number;
294
309
  /** @unwired */
295
310
  makeCircleEdgeWithRef(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, radius: number, rx: number, ry: number, rz: number): number;
296
311
  makeEllipseEdge(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, semiMajor: number, semiMinor: number): number;
297
312
  makeEllipseEdgeWithRef(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, semiMajor: number, semiMinor: number, rx: number, ry: number, rz: number): number;
298
313
  makePlanarFaceFromWire(wire: number): number;
314
+ /** @unwired */
315
+ minkowskiSum(solidA: number, solidB: number): number;
316
+ /** @unwired */
317
+ multiSectionSweep(faceHandles: Uint32Array | number[], params: Float64Array | number[], spineDegree: number, spineKnots: Float64Array | number[], spineControlPoints: Float64Array | number[], spineWeights: Float64Array | number[], ruled: boolean): number;
299
318
  offsetWire2DWithJoin(wire: number, distance: number, joinType: string): number;
300
319
  /** @unwired */
320
+ projectEdges(solid: number, originX: number, originY: number, originZ: number, dirX: number, dirY: number, dirZ: number, xAxisX: number, xAxisY: number, xAxisZ: number, hiddenLines: boolean, deflection: number): string;
321
+ /** @unwired */
301
322
  sketchAddCircle(sketch: number, centerIdx: number, radius: number): number;
302
323
  /** @unwired */
303
324
  toBrepJson(solid: number): string;
304
325
  transformFace(face: number, matrix: Float64Array | number[]): void;
305
- /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
326
+ /** @future Not in brepkit-wasm 2.111.1. Referenced with feature detection in adapter. */
306
327
  chamferAsymmetric?(solid: number, edgeHandles: Uint32Array | number[], d1: number, d2: number): number;
307
- /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
328
+ /** @future Not in brepkit-wasm 2.111.1. Referenced with feature detection in adapter. */
308
329
  compoundFuse?(solidIds: Uint32Array | number[]): number;
309
- /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
330
+ /** @future Not in brepkit-wasm 2.111.1. Referenced with feature detection in adapter. */
310
331
  copyEdge?(edge: number): number;
311
- /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
332
+ /** @future Not in brepkit-wasm 2.111.1. Referenced with feature detection in adapter. */
312
333
  transformEdge?(edge: number, matrix: Float64Array | number[]): void;
313
- /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
334
+ /** @future Not in brepkit-wasm 2.111.1. Referenced with feature detection in adapter. */
314
335
  validateSolidDetails?(solid: number): string;
315
336
  /** Release the entire arena. */
316
337
  free(): void;
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_types = require("./types-KjA8tY4Y.cjs");
4
4
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
@@ -1,4 +1,4 @@
1
- import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DNWJsfVU.js";
3
3
  import { r as toVec3 } from "./types-D24Y27N0.js";
4
4
  import { c as vecLength, d as vecNormalize, t as vecAdd } from "./vecOps-SKPRvPH-.js";
@@ -1,7 +1,7 @@
1
- import { Z as getKernel } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { w as kernelCallRaw } from "./topologyQueryFns-BcGLEMvc.js";
4
- import { m as uvBounds } from "./faceFns-4JEna8n9.js";
3
+ import { w as kernelCallRaw } from "./topologyQueryFns-CR7zQvDK.js";
4
+ import { m as uvBounds } from "./faceFns-hGTQhRXB.js";
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Bhey0q1G.cjs");
4
- const require_faceFns = require("./faceFns-Obtamglc.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-Ym_I522s.cjs");
2
+ const require_measureFns = require("./measureFns-DwHd423H.cjs");
3
3
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
4
4
  exports.measureArea = require_measureFns.measureArea;
5
5
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,2 +1,2 @@
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-xpevHRLG.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-Bka10mrS.js";
2
2
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Bhey0q1G.cjs");
4
- const require_shapeFns = require("./shapeFns-CE6c_4D4.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
5
5
  //#region 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 { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, r as ioError } from "./errors-DNWJsfVU.js";
3
- import { d as getSolids, n as getBounds } from "./topologyQueryFns-BcGLEMvc.js";
4
- import { O as getFaceOrigins } from "./shapeFns-B8REDWBf.js";
3
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-CR7zQvDK.js";
4
+ import { O as getFaceOrigins } from "./shapeFns-kVgikxkG.js";
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_threadFns = require("./threadFns-BzFhh87N.cjs");
3
- const require_loftFns = require("./loftFns-BAM49XJy.cjs");
2
+ const require_threadFns = require("./threadFns-Cw1TzGd2.cjs");
3
+ const require_loftFns = require("./loftFns-B8UzGtwS.cjs");
4
4
  exports.addChild = require_threadFns.addChild;
5
5
  exports.addJoint = require_threadFns.addJoint;
6
6
  exports.addStep = require_threadFns.addStep;
@@ -1,3 +1,3 @@
1
- import { A as setJointValue, B as findNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as gridPattern, H as updateNode, I as addChild, J as createAssembly, K as linearPattern, L as collectShapes, M as sphericalJoint, O as prismaticJoint, R as countNodes, S as addJoint, T as jointTransform, U as walkAssembly, V as removeChild, W as circularPattern, _ as exportURDF, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, q as exportAssemblySTEP, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as createAssemblyNode } from "./threadFns-BQHEnI7a.js";
2
- import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-DF3KNz9-.js";
1
+ import { A as setJointValue, B as findNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as gridPattern, H as updateNode, I as addChild, J as createAssembly, K as linearPattern, L as collectShapes, M as sphericalJoint, O as prismaticJoint, R as countNodes, S as addJoint, T as jointTransform, U as walkAssembly, V as removeChild, W as circularPattern, _ as exportURDF, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, q as exportAssemblySTEP, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as createAssemblyNode } from "./threadFns-74sXf2tN.js";
2
+ import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-DusJd7Qq.js";
3
3
  export { addChild, addJoint, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, cylindricalJoint, exportAssemblySTEP, exportURDF, findNode, findStep, forwardKinematics, getShape as getHistoryShape, gridPattern, importURDF, inverseKinematics, jointTrajectory, jointTransform, jointsFromDH, linearPattern, mechanismDOF, modifyStep, planarJoint, prismaticJoint, registerOperation, registerShape, removeChild, replayFrom, replayHistory, revoluteJoint, setJointValue, setJointValues, sphericalJoint, stepCount, stepsFrom, supportExtrude, sweep, thread, twistExtrude, undoLast, updateNode, walkAssembly };
@@ -1,9 +1,9 @@
1
- import { Z as getKernel, c as createSolid, x as isClosedWire } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, c as createSolid, x as isClosedWire } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, d as validationError, v as andThen } from "./errors-DNWJsfVU.js";
3
3
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
4
- import { h as translate } from "./shapeFns-B8REDWBf.js";
5
- import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-D5sQZ6ah.js";
6
- import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-BSnsqitN.js";
4
+ import { h as translate } from "./shapeFns-kVgikxkG.js";
5
+ import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-BDEc8WSE.js";
6
+ import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-BHRL7010.js";
7
7
  //#region src/topology/primitiveFns.ts
8
8
  /**
9
9
  * Create a box with the given dimensions.
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_constants = require("./constants-BOVyEYGH.cjs");
4
- const require_shapeFns = require("./shapeFns-CE6c_4D4.cjs");
5
- const require_surfaceBuilders = require("./surfaceBuilders-CDX6sDZz.cjs");
6
- const require_solidBuilders = require("./solidBuilders-DfGIPlQ2.cjs");
4
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
5
+ const require_surfaceBuilders = require("./surfaceBuilders-5hLC_QeE.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-Cve7yf13.cjs");
7
7
  //#region src/topology/primitiveFns.ts
8
8
  /**
9
9
  * Create a box with the given dimensions.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cameraFns = require("./cameraFns-BkSHm_Vo.cjs");
2
+ const require_cameraFns = require("./cameraFns-p4G3cFuC.cjs");
3
3
  exports.PROJECTION_PLANES = require_cameraFns.PROJECTION_PLANES;
4
4
  exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
5
5
  exports.cameraLookAt = require_cameraFns.cameraLookAt;
@@ -1,2 +1,2 @@
1
- import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-BiQGAnPd.js";
1
+ import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-B2WR42Tm.js";
2
2
  export { PROJECTION_PLANES, cameraFromPlane, cameraLookAt, createCamera, isProjectionPlane, makeProjectedEdges, projectEdges };
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-rAK5qEBu.cjs");
3
- const require_cornerFinder = require("./cornerFinder-D3lGL_Td.cjs");
2
+ const require_helpers = require("./helpers-D6yNdVOO.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-B_SuHSBj.cjs");
4
4
  exports.cornerFinder = require_cornerFinder.cornerFinder;
5
5
  exports.edgeFinder = require_helpers.edgeFinder;
6
6
  exports.faceFinder = require_helpers.faceFinder;
package/dist/query.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-CJV31xig.js";
2
- import { t as cornerFinder } from "./cornerFinder-C9zvdkpK.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-DOE4GlZ0.js";
2
+ import { t as cornerFinder } from "./cornerFinder-KoakXQze.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Bhey0q1G.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-BcGLEMvc.js";
3
+ import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-CR7zQvDK.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeRefFns = require("./shapeRefFns-C3tglb5A.cjs");
2
+ const require_shapeRefFns = require("./shapeRefFns-CxB7OXOc.cjs");
3
3
  exports.assignRoles = require_shapeRefFns.assignRoles;
4
4
  exports.captureHint = require_shapeRefFns.captureHint;
5
5
  exports.createRef = require_shapeRefFns.createRef;
package/dist/shapeRef.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-O5h8bOr9.js";
1
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-CXWVzhbm.js";
2
2
  export { assignRoles, captureHint, createRef, defaultScorer, resolveRef, updateRoles };
@@ -1,8 +1,8 @@
1
1
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
- import { c as getFaces } from "./topologyQueryFns-BcGLEMvc.js";
3
- import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-4JEna8n9.js";
4
- import { n as getHashCode } from "./shapeFns-B8REDWBf.js";
5
- import { n as measureArea } from "./measureFns-xpevHRLG.js";
2
+ import { c as getFaces } from "./topologyQueryFns-CR7zQvDK.js";
3
+ import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-hGTQhRXB.js";
4
+ import { n as getHashCode } from "./shapeFns-kVgikxkG.js";
5
+ import { n as measureArea } from "./measureFns-Bka10mrS.js";
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,8 +1,8 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns-Bhey0q1G.cjs");
3
- const require_faceFns = require("./faceFns-Obtamglc.cjs");
4
- const require_shapeFns = require("./shapeFns-CE6c_4D4.cjs");
5
- const require_measureFns = require("./measureFns-Ym_I522s.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
3
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
4
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
5
+ const require_measureFns = require("./measureFns-DwHd423H.cjs");
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -8054,10 +8054,62 @@ function meshSolid(bk, solidId, deflection, includeUVs, angularTolerance) {
8054
8054
  * Batch tessellation via `tessellateSolidGrouped` -- single WASM call for
8055
8055
  * all faces. Falls back to `meshSolidPerFace` on error.
8056
8056
  *
8057
+ * Prefers the binary `tessellateSolidGroupedBinary` (packed typed arrays) when
8058
+ * the kernel exposes it; the mesh then crosses the WASM boundary as bulk memory
8059
+ * copies instead of a multi-megabyte JSON string round-trip (the JSON variant
8060
+ * was ~2x slower on large meshes). Falls back to the JSON path on older kernels.
8061
+ *
8057
8062
  * When `includeUVs` is true, makes an additional `tessellateSolidUV` call
8058
8063
  * to populate real surface parametrization coordinates.
8059
8064
  */
8060
8065
  function meshSolidGrouped(bk, solidId, deflection, includeUVs, angularTolerance) {
8066
+ if (typeof bk.tessellateSolidGroupedBinary === "function") return meshSolidGroupedBinary(bk, solidId, deflection, includeUVs, angularTolerance, bk.tessellateSolidGroupedBinary(solidId, deflection, angularTolerance));
8067
+ return meshSolidGroupedJson(bk, solidId, deflection, includeUVs, angularTolerance);
8068
+ }
8069
+ /**
8070
+ * Binary grouped tessellation: positions/normals are packed `Float32Array`s and
8071
+ * indices/`faceOffsets` are `Uint32Array`s straight from the kernel — no JSON.
8072
+ */
8073
+ function meshSolidGroupedBinary(bk, solidId, deflection, includeUVs, angularTolerance, m) {
8074
+ const positions = m.positions;
8075
+ const normals = m.normals;
8076
+ const indices = m.indices;
8077
+ const faceOffsets = m.faceOffsets;
8078
+ const faceIds = toArray(bk.getSolidFaces(solidId));
8079
+ const groupCount = faceOffsets.length - 1;
8080
+ if (groupCount !== faceIds.length) throw new Error(`faceOffsets/faceIds length mismatch: ${groupCount} groups vs ${faceIds.length} faces`);
8081
+ const faceGroups = [];
8082
+ for (let i = 0; i < faceOffsets.length - 1; i++) {
8083
+ const start = wasmIndex(faceOffsets, i);
8084
+ const count = wasmIndex(faceOffsets, i + 1) - start;
8085
+ if (count === 0) continue;
8086
+ faceGroups.push({
8087
+ start,
8088
+ count,
8089
+ faceHash: faceIds[i] ?? 0
8090
+ });
8091
+ }
8092
+ let uvs = new Float32Array(0);
8093
+ if (includeUVs) {
8094
+ const expectedUvLen = positions.length / 3 * 2;
8095
+ try {
8096
+ const uvJson = bk.tessellateSolidUV(solidId, deflection, angularTolerance);
8097
+ const uvData = JSON.parse(uvJson);
8098
+ uvs = uvData.uvs.length === expectedUvLen ? new Float32Array(uvData.uvs) : new Float32Array(expectedUvLen);
8099
+ } catch {
8100
+ uvs = new Float32Array(expectedUvLen);
8101
+ }
8102
+ }
8103
+ return {
8104
+ vertices: positions,
8105
+ normals,
8106
+ triangles: indices,
8107
+ uvs,
8108
+ faceGroups
8109
+ };
8110
+ }
8111
+ /** JSON grouped tessellation (fallback for kernels without the binary API). */
8112
+ function meshSolidGroupedJson(bk, solidId, deflection, includeUVs, angularTolerance) {
8061
8113
  const json = bk.tessellateSolidGrouped(solidId, deflection, angularTolerance);
8062
8114
  const data = JSON.parse(json);
8063
8115
  const faceIds = toArray(bk.getSolidFaces(solidId));
@@ -8058,10 +8058,62 @@ function meshSolid(bk, solidId, deflection, includeUVs, angularTolerance) {
8058
8058
  * Batch tessellation via `tessellateSolidGrouped` -- single WASM call for
8059
8059
  * all faces. Falls back to `meshSolidPerFace` on error.
8060
8060
  *
8061
+ * Prefers the binary `tessellateSolidGroupedBinary` (packed typed arrays) when
8062
+ * the kernel exposes it; the mesh then crosses the WASM boundary as bulk memory
8063
+ * copies instead of a multi-megabyte JSON string round-trip (the JSON variant
8064
+ * was ~2x slower on large meshes). Falls back to the JSON path on older kernels.
8065
+ *
8061
8066
  * When `includeUVs` is true, makes an additional `tessellateSolidUV` call
8062
8067
  * to populate real surface parametrization coordinates.
8063
8068
  */
8064
8069
  function meshSolidGrouped(bk, solidId, deflection, includeUVs, angularTolerance) {
8070
+ if (typeof bk.tessellateSolidGroupedBinary === "function") return meshSolidGroupedBinary(bk, solidId, deflection, includeUVs, angularTolerance, bk.tessellateSolidGroupedBinary(solidId, deflection, angularTolerance));
8071
+ return meshSolidGroupedJson(bk, solidId, deflection, includeUVs, angularTolerance);
8072
+ }
8073
+ /**
8074
+ * Binary grouped tessellation: positions/normals are packed `Float32Array`s and
8075
+ * indices/`faceOffsets` are `Uint32Array`s straight from the kernel — no JSON.
8076
+ */
8077
+ function meshSolidGroupedBinary(bk, solidId, deflection, includeUVs, angularTolerance, m) {
8078
+ const positions = m.positions;
8079
+ const normals = m.normals;
8080
+ const indices = m.indices;
8081
+ const faceOffsets = m.faceOffsets;
8082
+ const faceIds = toArray(bk.getSolidFaces(solidId));
8083
+ const groupCount = faceOffsets.length - 1;
8084
+ if (groupCount !== faceIds.length) throw new Error(`faceOffsets/faceIds length mismatch: ${groupCount} groups vs ${faceIds.length} faces`);
8085
+ const faceGroups = [];
8086
+ for (let i = 0; i < faceOffsets.length - 1; i++) {
8087
+ const start = require_vec3.wasmIndex(faceOffsets, i);
8088
+ const count = require_vec3.wasmIndex(faceOffsets, i + 1) - start;
8089
+ if (count === 0) continue;
8090
+ faceGroups.push({
8091
+ start,
8092
+ count,
8093
+ faceHash: faceIds[i] ?? 0
8094
+ });
8095
+ }
8096
+ let uvs = new Float32Array(0);
8097
+ if (includeUVs) {
8098
+ const expectedUvLen = positions.length / 3 * 2;
8099
+ try {
8100
+ const uvJson = bk.tessellateSolidUV(solidId, deflection, angularTolerance);
8101
+ const uvData = JSON.parse(uvJson);
8102
+ uvs = uvData.uvs.length === expectedUvLen ? new Float32Array(uvData.uvs) : new Float32Array(expectedUvLen);
8103
+ } catch {
8104
+ uvs = new Float32Array(expectedUvLen);
8105
+ }
8106
+ }
8107
+ return {
8108
+ vertices: positions,
8109
+ normals,
8110
+ triangles: indices,
8111
+ uvs,
8112
+ faceGroups
8113
+ };
8114
+ }
8115
+ /** JSON grouped tessellation (fallback for kernels without the binary API). */
8116
+ function meshSolidGroupedJson(bk, solidId, deflection, includeUVs, angularTolerance) {
8065
8117
  const json = bk.tessellateSolidGrouped(solidId, deflection, angularTolerance);
8066
8118
  const data = JSON.parse(json);
8067
8119
  const faceIds = toArray(bk.getSolidFaces(solidId));
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-BwRqV98S.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-BLXntEIS.cjs");
4
- const require_drawFns = require("./drawFns-lls9IuPY.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-bMa5164s.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-NDZKJGYh.cjs");
4
+ const require_drawFns = require("./drawFns-7qn35uWm.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-BbYPEPMa.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-DaTn2p7M.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-Cqu-mcRD.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-DzCTWt_f.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-D7q8qpEI.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-Cl5P2MkE.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,13 +1,13 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex, t as castShape } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex, t as castShape } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, v as andThen, w as isErr } from "./errors-DNWJsfVU.js";
3
- import { f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BcGLEMvc.js";
3
+ import { f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-CR7zQvDK.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
5
5
  import { h as vecScale, t as vecAdd } from "./vecOps-SKPRvPH-.js";
6
6
  import { o as resolvePlane } from "./planeOps-DSjjtrjg.js";
7
- import { _ as cast, v as downcast } from "./faceFns-4JEna8n9.js";
8
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-B8REDWBf.js";
7
+ import { _ as cast, v as downcast } from "./faceFns-hGTQhRXB.js";
8
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-kVgikxkG.js";
9
9
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
10
- import { r as makeFace } from "./surfaceBuilders-D5sQZ6ah.js";
10
+ import { r as makeFace } from "./surfaceBuilders-BDEc8WSE.js";
11
11
  //#region src/topology/booleanFns.ts
12
12
  /**
13
13
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,13 +1,13 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Bhey0q1G.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
6
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
7
- const require_faceFns = require("./faceFns-Obtamglc.cjs");
8
- const require_shapeFns = require("./shapeFns-CE6c_4D4.cjs");
7
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
8
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
10
- const require_surfaceBuilders = require("./surfaceBuilders-CDX6sDZz.cjs");
10
+ const require_surfaceBuilders = require("./surfaceBuilders-5hLC_QeE.cjs");
11
11
  //#region src/topology/booleanFns.ts
12
12
  /**
13
13
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-nFeOa7gQ.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-Obtamglc.cjs");
3
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
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
- import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-B8d_6R0X.js";
1
+ import { Z as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-Caa9T1VR.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 { _ as cast, u as outerWire } from "./faceFns-4JEna8n9.js";
3
+ import { _ as cast, u as outerWire } from "./faceFns-hGTQhRXB.js";
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-BwRqV98S.cjs");
3
- const require_textMetrics = require("./textMetrics-DpCTYcE2.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-bMa5164s.cjs");
3
+ const require_textMetrics = require("./textMetrics-BDr82S48.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-Cqu-mcRD.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-Cikow3vH.js";
1
+ import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-Cl5P2MkE.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-DBEv2A2N.js";
3
3
  export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
@@ -1,15 +1,15 @@
1
- import { o as createFace, u as createWire } from "./shapeTypes-B8d_6R0X.js";
1
+ import { o as createFace, u as createWire } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, R as unwrap, b as err, h as bug, 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 { v as downcast } from "./faceFns-4JEna8n9.js";
7
- import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-B4_om-yp.js";
6
+ import { v as downcast } from "./faceFns-hGTQhRXB.js";
7
+ import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-XRM_FMU4.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-D5sQZ6ah.js";
10
- import { o as makeSolid, p as cutAll, t as makeCompound } from "./solidBuilders-BSnsqitN.js";
11
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-BbYPEPMa.js";
12
- import { a as revolve, d as twistExtrude, o as complexExtrude, r as extrude, t as loft, u as sweep } from "./loftFns-DF3KNz9-.js";
9
+ import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-BDEc8WSE.js";
10
+ import { o as makeSolid, p as cutAll, t as makeCompound } from "./solidBuilders-BHRL7010.js";
11
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-DzCTWt_f.js";
12
+ import { a as revolve, d as twistExtrude, o as complexExtrude, r as extrude, t as loft, u as sweep } from "./loftFns-DusJd7Qq.js";
13
13
  import opentype from "opentype.js";
14
14
  //#region src/sketching/compoundSketch.ts
15
15
  /**