brepjs 15.4.0 → 15.6.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 (67) hide show
  1. package/dist/2d.cjs +5 -5
  2. package/dist/2d.js +5 -5
  3. package/dist/{blueprint-BclTyi6P.js → blueprint-Dh833T1g.js} +5 -5
  4. package/dist/{blueprint-DNgxVr6m.cjs → blueprint-Dz1_VRla.cjs} +5 -5
  5. package/dist/{blueprintFns-CIkaJNgc.js → blueprintFns-0rZsLvDC.js} +2 -2
  6. package/dist/{blueprintFns-Dde9Shpd.cjs → blueprintFns-7qVxjcF6.cjs} +2 -2
  7. package/dist/{boolean2D-DpTDqjwd.cjs → boolean2D-CSrgrYdg.cjs} +7 -7
  8. package/dist/{boolean2D-CmhQeDjX.js → boolean2D-D_Us2fzA.js} +7 -7
  9. package/dist/{booleanFns-B_lGqp1b.cjs → booleanFns-C4-LINx9.cjs} +4 -4
  10. package/dist/{booleanFns-BNIU_4FJ.js → booleanFns-pPwvUlDY.js} +4 -4
  11. package/dist/brepjs.cjs +20 -20
  12. package/dist/brepjs.js +20 -20
  13. package/dist/core.cjs +1 -1
  14. package/dist/core.js +1 -1
  15. package/dist/{cornerFinder-BO8axYUc.cjs → cornerFinder-B3mgLQLu.cjs} +1 -1
  16. package/dist/{cornerFinder-BsICFAXk.js → cornerFinder-B8tVlEmh.js} +1 -1
  17. package/dist/{curveFns-nY460MxE.js → curveFns-C5KxcsgJ.js} +1 -1
  18. package/dist/{curveFns-B6p5Znzq.cjs → curveFns-Dcck2GK6.cjs} +1 -1
  19. package/dist/{drawFns-wtTFBzuN.cjs → drawFns-BJMsZiGz.cjs} +10 -10
  20. package/dist/{drawFns-CcN7fizR.js → drawFns-CRwsAcG9.js} +10 -10
  21. package/dist/{extrudeFns-Bod1_Yqs.js → extrudeFns-7QmLEOAX.js} +1 -1
  22. package/dist/{extrudeFns-CFlFeAUl.cjs → extrudeFns-CBmR1z_L.cjs} +1 -1
  23. package/dist/{faceFns-DeWxEtvd.cjs → faceFns-FGo-RIL5.cjs} +1 -1
  24. package/dist/{faceFns-DuiowTtK.js → faceFns-yS8vr-6M.js} +1 -1
  25. package/dist/{helpers-BKK4ahTs.js → helpers-P2nswPYK.js} +5 -5
  26. package/dist/{helpers-CxyHG4gW.cjs → helpers-SvSPoJlQ.cjs} +5 -5
  27. package/dist/{historyFns-cFxSpq53.js → historyFns-DYE_W8Bz.js} +4 -4
  28. package/dist/{historyFns-C9Ztq5Rl.cjs → historyFns-N-Tli9mz.cjs} +4 -4
  29. package/dist/{importFns-DgsxAJjW.cjs → importFns-DWA_o4Pv.cjs} +2 -2
  30. package/dist/{importFns-D9P_lIx4.js → importFns-XqzD1l4L.js} +2 -2
  31. package/dist/io.cjs +2 -2
  32. package/dist/io.js +2 -2
  33. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  34. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +5 -5
  35. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts.map +1 -1
  36. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  37. package/dist/{measureFns-CTz8I5QK.cjs → measureFns-C3SwiGvf.cjs} +2 -2
  38. package/dist/{measureFns-B5lyx1bQ.js → measureFns-C814EyvC.js} +2 -2
  39. package/dist/measurement.cjs +1 -1
  40. package/dist/measurement.js +1 -1
  41. package/dist/{meshFns-BA0cl30a.js → meshFns-2J2g5ifS.js} +2 -2
  42. package/dist/{meshFns-DQIhsfnl.cjs → meshFns-BzUj-hBU.cjs} +2 -2
  43. package/dist/{occtWasmAdapter-BZSHh6QX.cjs → occtWasmAdapter-B-sjp4gc.cjs} +204 -14
  44. package/dist/{occtWasmAdapter-Mr9Y6dPQ.js → occtWasmAdapter-BVzSCg8l.js} +204 -14
  45. package/dist/operations.cjs +2 -2
  46. package/dist/operations.js +2 -2
  47. package/dist/{primitiveFns-Cjt6qRm6.js → primitiveFns-C8sYdHUB.js} +5 -5
  48. package/dist/{primitiveFns-DysiKRBn.cjs → primitiveFns-CRTYjCYW.cjs} +5 -5
  49. package/dist/query.cjs +2 -2
  50. package/dist/query.js +2 -2
  51. package/dist/{shapeFns-C8J0RKAh.js → shapeFns-Chy4y7N-.js} +2 -2
  52. package/dist/{shapeFns-ROOaMV5d.cjs → shapeFns-DGNrbVtb.cjs} +2 -2
  53. package/dist/shapeRef.cjs +1 -1
  54. package/dist/shapeRef.js +1 -1
  55. package/dist/{shapeRefFns-DeUl4u6J.js → shapeRefFns-DzB5Eb1d.js} +3 -3
  56. package/dist/{shapeRefFns-Dy2PpuYw.cjs → shapeRefFns-dOJFUxFq.cjs} +3 -3
  57. package/dist/{shapeTypes-BQudvDUS.js → shapeTypes-BCsRNLmt.js} +1 -1
  58. package/dist/{shapeTypes-CZbZwb1B.cjs → shapeTypes-Bq29xKuL.cjs} +1 -1
  59. package/dist/sketching.cjs +2 -2
  60. package/dist/sketching.js +2 -2
  61. package/dist/{solidBuilders-DkYMjIIF.js → solidBuilders-BqvzB12d.js} +2 -2
  62. package/dist/{solidBuilders-B8CyjjdB.cjs → solidBuilders-akQiSUJ-.cjs} +2 -2
  63. package/dist/{surfaceBuilders-C4Am7v_W.cjs → surfaceBuilders-BNDDLcfN.cjs} +2 -2
  64. package/dist/{surfaceBuilders-Bw5ppWUU.js → surfaceBuilders-Bl83JUJp.js} +2 -2
  65. package/dist/topology.cjs +6 -6
  66. package/dist/topology.js +6 -6
  67. package/package.json +1 -1
@@ -831,6 +831,108 @@ function parseEvolution(evo) {
831
831
  function notImplemented(method) {
832
832
  throw new Error(`occt-wasm: ${method} is not yet implemented`);
833
833
  }
834
+ function computePositionBounds(positions, vCount) {
835
+ if (vCount === 0) return {
836
+ min: [
837
+ 0,
838
+ 0,
839
+ 0
840
+ ],
841
+ max: [
842
+ 0,
843
+ 0,
844
+ 0
845
+ ]
846
+ };
847
+ let minX = Infinity, minY = Infinity, minZ = Infinity;
848
+ let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;
849
+ for (let i = 0; i < vCount; i++) {
850
+ const o = i * 3;
851
+ const x = positions[o] ?? 0;
852
+ const y = positions[o + 1] ?? 0;
853
+ const z = positions[o + 2] ?? 0;
854
+ if (x < minX) minX = x;
855
+ if (y < minY) minY = y;
856
+ if (z < minZ) minZ = z;
857
+ if (x > maxX) maxX = x;
858
+ if (y > maxY) maxY = y;
859
+ if (z > maxZ) maxZ = z;
860
+ }
861
+ return {
862
+ min: [
863
+ minX,
864
+ minY,
865
+ minZ
866
+ ],
867
+ max: [
868
+ maxX,
869
+ maxY,
870
+ maxZ
871
+ ]
872
+ };
873
+ }
874
+ function buildGltfManifest(vCount, nCount, iCount, posBytes, nrmBytes, idxBytes, bufferLength, bounds) {
875
+ return {
876
+ asset: {
877
+ version: "2.0",
878
+ generator: "brepjs occt-wasm"
879
+ },
880
+ scene: 0,
881
+ scenes: [{ nodes: [0] }],
882
+ nodes: [{ mesh: 0 }],
883
+ meshes: [{ primitives: [{
884
+ attributes: {
885
+ POSITION: 0,
886
+ NORMAL: 1
887
+ },
888
+ indices: 2,
889
+ mode: 4
890
+ }] }],
891
+ buffers: [{ byteLength: bufferLength }],
892
+ bufferViews: [
893
+ {
894
+ buffer: 0,
895
+ byteOffset: 0,
896
+ byteLength: posBytes,
897
+ target: 34962
898
+ },
899
+ {
900
+ buffer: 0,
901
+ byteOffset: posBytes,
902
+ byteLength: nrmBytes,
903
+ target: 34962
904
+ },
905
+ {
906
+ buffer: 0,
907
+ byteOffset: posBytes + nrmBytes,
908
+ byteLength: idxBytes,
909
+ target: 34963
910
+ }
911
+ ],
912
+ accessors: [
913
+ {
914
+ bufferView: 0,
915
+ componentType: 5126,
916
+ count: vCount,
917
+ type: "VEC3",
918
+ min: bounds.min,
919
+ max: bounds.max
920
+ },
921
+ {
922
+ bufferView: 1,
923
+ componentType: 5126,
924
+ count: nCount,
925
+ type: "VEC3"
926
+ },
927
+ {
928
+ bufferView: 2,
929
+ componentType: 5125,
930
+ count: iCount,
931
+ type: "SCALAR"
932
+ }
933
+ ]
934
+ };
935
+ }
834
936
  /**
835
937
  * Wrap an OcctKernelWasm instance so that every method call converts
836
938
  * C++ exceptions (WebAssembly.Exception) into readable JS Errors.
@@ -2071,10 +2173,47 @@ var OcctWasmAdapter = class {
2071
2173
  }
2072
2174
  }
2073
2175
  export3MF(_shape, _tolerance) {
2074
- notImplemented("export3MF");
2176
+ throw new Error("export3MF is only available with the brepkit kernel");
2075
2177
  }
2076
- exportGLB(_shape, _tolerance) {
2077
- notImplemented("exportGLB");
2178
+ exportGLB(shape, tolerance) {
2179
+ const result = this.mesh(shape, {
2180
+ tolerance,
2181
+ angularTolerance: .5,
2182
+ skipNormals: false
2183
+ });
2184
+ const positions = result.vertices;
2185
+ const normals = result.normals;
2186
+ const indices = result.triangles;
2187
+ const vCount = positions.length / 3;
2188
+ const nCount = normals.length / 3;
2189
+ const iCount = indices.length;
2190
+ const posBytes = positions.byteLength;
2191
+ const nrmBytes = normals.byteLength;
2192
+ const idxBytes = indices.byteLength;
2193
+ const binLength = posBytes + nrmBytes + idxBytes;
2194
+ const paddedBinLength = binLength + (4 - binLength % 4) % 4;
2195
+ const manifest = buildGltfManifest(vCount, nCount, iCount, posBytes, nrmBytes, idxBytes, paddedBinLength, computePositionBounds(positions, vCount));
2196
+ const jsonBytes = new TextEncoder().encode(JSON.stringify(manifest));
2197
+ const paddedJsonLength = jsonBytes.byteLength + (4 - jsonBytes.byteLength % 4) % 4;
2198
+ const totalLength = 20 + paddedJsonLength + 8 + paddedBinLength;
2199
+ const glb = new ArrayBuffer(totalLength);
2200
+ const view = new DataView(glb);
2201
+ view.setUint32(0, 1179937895, true);
2202
+ view.setUint32(4, 2, true);
2203
+ view.setUint32(8, totalLength, true);
2204
+ view.setUint32(12, paddedJsonLength, true);
2205
+ view.setUint32(16, 1313821514, true);
2206
+ const jsonDst = new Uint8Array(glb, 20, paddedJsonLength);
2207
+ jsonDst.set(jsonBytes);
2208
+ for (let i = jsonBytes.byteLength; i < paddedJsonLength; i++) jsonDst[i] = 32;
2209
+ const binHeaderOffset = 20 + paddedJsonLength;
2210
+ view.setUint32(binHeaderOffset, paddedBinLength, true);
2211
+ view.setUint32(binHeaderOffset + 4, 5130562, true);
2212
+ const binDataOffset = binHeaderOffset + 8;
2213
+ new Uint8Array(glb, binDataOffset, posBytes).set(new Uint8Array(positions.buffer, positions.byteOffset, posBytes));
2214
+ new Uint8Array(glb, binDataOffset + posBytes, nrmBytes).set(new Uint8Array(normals.buffer, normals.byteOffset, nrmBytes));
2215
+ new Uint8Array(glb, binDataOffset + posBytes + nrmBytes, idxBytes).set(new Uint8Array(indices.buffer, indices.byteOffset, idxBytes));
2216
+ return glb;
2078
2217
  }
2079
2218
  exportOBJ(shape, tolerance) {
2080
2219
  const result = this.mesh(shape, {
@@ -2113,17 +2252,57 @@ var OcctWasmAdapter = class {
2113
2252
  }
2114
2253
  return new TextEncoder().encode(lines.join("\n") + "\n").buffer;
2115
2254
  }
2116
- exportPLY(_shape, _tolerance) {
2117
- notImplemented("exportPLY");
2255
+ exportPLY(shape, tolerance) {
2256
+ const result = this.mesh(shape, {
2257
+ tolerance,
2258
+ angularTolerance: .5,
2259
+ skipNormals: false
2260
+ });
2261
+ const v = result.vertices;
2262
+ const n = result.normals;
2263
+ const t = result.triangles;
2264
+ const vCount = v.length / 3;
2265
+ const triCount = t.length / 3;
2266
+ const hasNormals = n.length === v.length;
2267
+ const lines = [
2268
+ "ply",
2269
+ "format ascii 1.0",
2270
+ "comment brepjs PLY export",
2271
+ `element vertex ${vCount}`,
2272
+ "property float x",
2273
+ "property float y",
2274
+ "property float z"
2275
+ ];
2276
+ if (hasNormals) lines.push("property float nx", "property float ny", "property float nz");
2277
+ lines.push(`element face ${triCount}`, "property list uchar int vertex_index", "end_header");
2278
+ for (let i = 0; i < vCount; i++) {
2279
+ const o = i * 3;
2280
+ const x = v[o] ?? 0;
2281
+ const y = v[o + 1] ?? 0;
2282
+ const z = v[o + 2] ?? 0;
2283
+ if (hasNormals) {
2284
+ const nx = n[o] ?? 0;
2285
+ const ny = n[o + 1] ?? 0;
2286
+ const nz = n[o + 2] ?? 0;
2287
+ lines.push(`${x} ${y} ${z} ${nx} ${ny} ${nz}`);
2288
+ } else lines.push(`${x} ${y} ${z}`);
2289
+ }
2290
+ for (let i = 0; i < triCount; i++) {
2291
+ const a = t[i * 3] ?? 0;
2292
+ const b = t[i * 3 + 1] ?? 0;
2293
+ const c = t[i * 3 + 2] ?? 0;
2294
+ lines.push(`3 ${a} ${b} ${c}`);
2295
+ }
2296
+ return new TextEncoder().encode(lines.join("\n") + "\n").buffer;
2118
2297
  }
2119
2298
  import3MF(_data) {
2120
- notImplemented("import3MF");
2299
+ throw new Error("import3MF is only available with the brepkit kernel");
2121
2300
  }
2122
2301
  importOBJ(_data) {
2123
- notImplemented("importOBJ");
2302
+ throw new Error("importOBJ is only available with the brepkit kernel");
2124
2303
  }
2125
2304
  importGLB(_data) {
2126
- notImplemented("importGLB");
2305
+ throw new Error("importGLB is only available with the brepkit kernel");
2127
2306
  }
2128
2307
  toBREP(shape) {
2129
2308
  return this.k.toBREP(unwrap(shape));
@@ -2653,14 +2832,25 @@ var OcctWasmAdapter = class {
2653
2832
  fixSelfIntersection(_wire) {
2654
2833
  notImplemented("fixSelfIntersection");
2655
2834
  }
2656
- createPoint2d(_x, _y) {
2657
- notImplemented("createPoint2d");
2835
+ createPoint2d(x, y) {
2836
+ return {
2837
+ x,
2838
+ y
2839
+ };
2658
2840
  }
2659
- createDirection2d(_x, _y) {
2660
- notImplemented("createDirection2d");
2841
+ createDirection2d(x, y) {
2842
+ const l = Math.sqrt(x * x + y * y);
2843
+ if (l < 1e-15) throw new Error("occt-wasm: createDirection2d called with zero-length vector");
2844
+ return {
2845
+ x: x / l,
2846
+ y: y / l
2847
+ };
2661
2848
  }
2662
- createVector2d(_x, _y) {
2663
- notImplemented("createVector2d");
2849
+ createVector2d(x, y) {
2850
+ return {
2851
+ x,
2852
+ y
2853
+ };
2664
2854
  }
2665
2855
  createAxis2d(px, py, dx, dy) {
2666
2856
  return {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_historyFns = require("./historyFns-C9Ztq5Rl.cjs");
3
- const require_extrudeFns = require("./extrudeFns-CFlFeAUl.cjs");
2
+ const require_historyFns = require("./historyFns-N-Tli9mz.cjs");
3
+ const require_extrudeFns = require("./extrudeFns-CBmR1z_L.cjs");
4
4
  exports.addChild = require_historyFns.addChild;
5
5
  exports.addStep = require_historyFns.addStep;
6
6
  exports.circularPattern = require_historyFns.circularPattern;
@@ -1,3 +1,3 @@
1
- import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-cFxSpq53.js";
2
- import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-Bod1_Yqs.js";
1
+ import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, T as gridPattern, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, g as addChild, h as undoLast, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-DYE_W8Bz.js";
2
+ import { c as sweep, i as complexExtrude, l as twistExtrude, s as supportExtrude } from "./extrudeFns-7QmLEOAX.js";
3
3
  export { addChild, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, exportAssemblySTEP, findNode, findStep, getShape as getHistoryShape, gridPattern, linearPattern, modifyStep, registerOperation, registerShape, removeChild, replayFrom, replayHistory, stepCount, stepsFrom, supportExtrude, sweep, twistExtrude, undoLast, updateNode, walkAssembly };
@@ -1,10 +1,10 @@
1
- import { X as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-BQudvDUS.js";
1
+ import { X as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-BCsRNLmt.js";
2
2
  import { A as ok, T as isOk, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, v as andThen, w as isErr } from "./errors-DboJwVCf.js";
3
- import { N as downcast, S as getOrCreateCache, T as invalidateShapeCache, b as getEdges, v as getCachedIsValid, w as getWires, x as getFaces } from "./faceFns-DuiowTtK.js";
3
+ import { N as downcast, S as getOrCreateCache, T as invalidateShapeCache, b as getEdges, v as getCachedIsValid, w as getWires, x as getFaces } from "./faceFns-yS8vr-6M.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-csSEYddm.js";
5
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-C8J0RKAh.js";
6
- import { a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeEllipse, f as makeEllipseArc, g as makeThreePointArc, h as makeTangentArc, i as makeNewFaceWithinFace, l as makeBezierCurve, m as makeLine, o as makePolygon, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-Bw5ppWUU.js";
7
- 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-DkYMjIIF.js";
5
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-Chy4y7N-.js";
6
+ import { a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeEllipse, f as makeEllipseArc, g as makeThreePointArc, h as makeTangentArc, i as makeNewFaceWithinFace, l as makeBezierCurve, m as makeLine, o as makePolygon, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-Bl83JUJp.js";
7
+ 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-BqvzB12d.js";
8
8
  //#region src/topology/threeHelpers.ts
9
9
  /**
10
10
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes-CZbZwb1B.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Bq29xKuL.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DeWxEtvd.cjs");
3
+ const require_faceFns = require("./faceFns-FGo-RIL5.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
5
- const require_shapeFns = require("./shapeFns-ROOaMV5d.cjs");
6
- const require_surfaceBuilders = require("./surfaceBuilders-C4Am7v_W.cjs");
7
- const require_solidBuilders = require("./solidBuilders-B8CyjjdB.cjs");
5
+ const require_shapeFns = require("./shapeFns-DGNrbVtb.cjs");
6
+ const require_surfaceBuilders = require("./surfaceBuilders-BNDDLcfN.cjs");
7
+ const require_solidBuilders = require("./solidBuilders-akQiSUJ-.cjs");
8
8
  //#region src/topology/threeHelpers.ts
9
9
  /**
10
10
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-CxyHG4gW.cjs");
3
- const require_cornerFinder = require("./cornerFinder-BO8axYUc.cjs");
2
+ const require_helpers = require("./helpers-SvSPoJlQ.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-B3mgLQLu.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-BKK4ahTs.js";
2
- import { t as cornerFinder } from "./cornerFinder-BsICFAXk.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-P2nswPYK.js";
2
+ import { t as cornerFinder } from "./cornerFinder-B8tVlEmh.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
- import { X as getKernel, t as castShape } from "./shapeTypes-BQudvDUS.js";
1
+ import { X as getKernel, t as castShape } from "./shapeTypes-BCsRNLmt.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DboJwVCf.js";
3
- import { R as kernelCall, S as getOrCreateCache, _ as getCacheEntry, x as getFaces, z as kernelCallRaw } from "./faceFns-DuiowTtK.js";
3
+ import { R as kernelCall, S as getOrCreateCache, _ as getCacheEntry, x as getFaces, z as kernelCallRaw } from "./faceFns-yS8vr-6M.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-csSEYddm.js";
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-CZbZwb1B.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Bq29xKuL.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DeWxEtvd.cjs");
3
+ const require_faceFns = require("./faceFns-FGo-RIL5.cjs");
4
4
  const require_constants = require("./constants-BNP_xnBN.cjs");
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-Dy2PpuYw.cjs");
2
+ const require_shapeRefFns = require("./shapeRefFns-dOJFUxFq.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-DeUl4u6J.js";
1
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-DzB5Eb1d.js";
2
2
  export { assignRoles, captureHint, createRef, defaultScorer, resolveRef, updateRoles };
@@ -1,6 +1,6 @@
1
- import { c as normalAt, n as faceCenter, r as faceGeomType, x as getFaces } from "./faceFns-DuiowTtK.js";
2
- import { n as getHashCode } from "./shapeFns-C8J0RKAh.js";
3
- import { n as measureArea } from "./measureFns-B5lyx1bQ.js";
1
+ import { c as normalAt, n as faceCenter, r as faceGeomType, x as getFaces } from "./faceFns-yS8vr-6M.js";
2
+ import { n as getHashCode } from "./shapeFns-Chy4y7N-.js";
3
+ import { n as measureArea } from "./measureFns-C814EyvC.js";
4
4
  //#region src/topology/shapeRef/scoring.ts
5
5
  /**
6
6
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,6 +1,6 @@
1
- const require_faceFns = require("./faceFns-DeWxEtvd.cjs");
2
- const require_shapeFns = require("./shapeFns-ROOaMV5d.cjs");
3
- const require_measureFns = require("./measureFns-CTz8I5QK.cjs");
1
+ const require_faceFns = require("./faceFns-FGo-RIL5.cjs");
2
+ const require_shapeFns = require("./shapeFns-DGNrbVtb.cjs");
3
+ const require_measureFns = require("./measureFns-C3SwiGvf.cjs");
4
4
  //#region src/topology/shapeRef/scoring.ts
5
5
  /**
6
6
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,4 +1,4 @@
1
- import { _ as serializeCurve2d$2, a as curveTypeName, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-Mr9Y6dPQ.js";
1
+ import { _ as serializeCurve2d$2, a as curveTypeName, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-BVzSCg8l.js";
2
2
  import { A as ok, b as err } from "./errors-DboJwVCf.js";
3
3
  //#region src/kernel/kernel2dTypes.ts
4
4
  /** Check if the kernel supports 2D geometry operations. */
@@ -1,4 +1,4 @@
1
- const require_occtWasmAdapter = require("./occtWasmAdapter-BZSHh6QX.cjs");
1
+ const require_occtWasmAdapter = require("./occtWasmAdapter-B-sjp4gc.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
3
  //#region src/kernel/kernel2dTypes.ts
4
4
  /** Check if the kernel supports 2D geometry operations. */
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-wtTFBzuN.cjs");
3
- const require_boolean2D = require("./boolean2D-DpTDqjwd.cjs");
2
+ const require_drawFns = require("./drawFns-BJMsZiGz.cjs");
3
+ const require_boolean2D = require("./boolean2D-CSrgrYdg.cjs");
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,5 +1,5 @@
1
- import { d as FaceSketcher, f as Sketch, l as BaseSketcher2d, u as BlueprintSketcher } from "./boolean2D-CmhQeDjX.js";
2
- import { $ as sketchFaceOffset, A as DrawingPen, B as drawSingleCircle, F as drawParametricFunction, H as drawText, I as drawPointsInterpolation, L as drawPolysides, M as draw, N as drawCircle, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, V as drawSingleEllipse, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, at as Sketcher, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, k as Drawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-CcN7fizR.js";
1
+ import { d as FaceSketcher, f as Sketch, l as BaseSketcher2d, u as BlueprintSketcher } from "./boolean2D-D_Us2fzA.js";
2
+ import { $ as sketchFaceOffset, A as DrawingPen, B as drawSingleCircle, F as drawParametricFunction, H as drawText, I as drawPointsInterpolation, L as drawPolysides, M as draw, N as drawCircle, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, V as drawSingleEllipse, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, at as Sketcher, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, k as Drawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-CRwsAcG9.js";
3
3
  //#region src/sketching.ts
4
4
  /**
5
5
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,6 +1,6 @@
1
- import { X as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-BQudvDUS.js";
1
+ import { X as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-BCsRNLmt.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-DboJwVCf.js";
3
- import { M as cast, N as downcast } from "./faceFns-DuiowTtK.js";
3
+ import { M as cast, N as downcast } from "./faceFns-yS8vr-6M.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-CZbZwb1B.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Bq29xKuL.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DeWxEtvd.cjs");
3
+ const require_faceFns = require("./faceFns-FGo-RIL5.cjs");
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-CZbZwb1B.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Bq29xKuL.cjs");
2
2
  const require_errors = require("./errors-CXRNVCec.cjs");
3
- const require_faceFns = require("./faceFns-DeWxEtvd.cjs");
3
+ const require_faceFns = require("./faceFns-FGo-RIL5.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 { X as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-BQudvDUS.js";
1
+ import { X as getKernel, a as createEdge, o as createFace, p as isFace, u as createWire, w as isPlanarFace } from "./shapeTypes-BCsRNLmt.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, v as andThen } from "./errors-DboJwVCf.js";
3
- import { M as cast, l as outerWire } from "./faceFns-DuiowTtK.js";
3
+ import { M as cast, l as outerWire } from "./faceFns-yS8vr-6M.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/topology.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_faceFns = require("./faceFns-DeWxEtvd.cjs");
3
- const require_shapeFns = require("./shapeFns-ROOaMV5d.cjs");
4
- const require_curveFns = require("./curveFns-B6p5Znzq.cjs");
5
- const require_meshFns = require("./meshFns-DQIhsfnl.cjs");
6
- const require_booleanFns = require("./booleanFns-B_lGqp1b.cjs");
7
- const require_primitiveFns = require("./primitiveFns-DysiKRBn.cjs");
2
+ const require_faceFns = require("./faceFns-FGo-RIL5.cjs");
3
+ const require_shapeFns = require("./shapeFns-DGNrbVtb.cjs");
4
+ const require_curveFns = require("./curveFns-Dcck2GK6.cjs");
5
+ const require_meshFns = require("./meshFns-BzUj-hBU.cjs");
6
+ const require_booleanFns = require("./booleanFns-C4-LINx9.cjs");
7
+ const require_primitiveFns = require("./primitiveFns-CRTYjCYW.cjs");
8
8
  exports.addHoles = require_primitiveFns.addHoles;
9
9
  exports.adjacentFaces = require_primitiveFns.adjacentFaces;
10
10
  exports.approximateCurve = require_curveFns.approximateCurve;
package/dist/topology.js CHANGED
@@ -1,7 +1,7 @@
1
- import { A as vertexPosition, C as getVertices, D as iterFaces, E as iterEdges, F as isCompSolid, I as iterTopo, L as shapeType, M as cast, N as downcast, O as iterVertices, P as fromBREP, T as invalidateShapeCache, a as flipFaceOrientation, b as getEdges, c as normalAt, d as projectPointOnFace, g as getBounds, i as faceOrientation, j as asTopo, k as iterWires, 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, w as getWires, x as getFaces } from "./faceFns-DuiowTtK.js";
2
- import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-C8J0RKAh.js";
3
- 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-nY460MxE.js";
4
- import { c as createMeshCache, n as exportSTEP, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-BA0cl30a.js";
5
- import { a as fuseAll, r as cutAll } from "./booleanFns-BNIU_4FJ.js";
6
- import { $ as getNurbsSurfaceData, 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 getNurbsCurveData, 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 wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, k as fixSelfIntersection, l as ellipse, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-Cjt6qRm6.js";
1
+ import { A as vertexPosition, C as getVertices, D as iterFaces, E as iterEdges, F as isCompSolid, I as iterTopo, L as shapeType, M as cast, N as downcast, O as iterVertices, P as fromBREP, T as invalidateShapeCache, a as flipFaceOrientation, b as getEdges, c as normalAt, d as projectPointOnFace, g as getBounds, i as faceOrientation, j as asTopo, k as iterWires, 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, w as getWires, x as getFaces } from "./faceFns-yS8vr-6M.js";
2
+ import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-Chy4y7N-.js";
3
+ 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-C5KxcsgJ.js";
4
+ import { c as createMeshCache, n as exportSTEP, r as exportSTL, s as clearMeshCache, t as exportIGES } from "./meshFns-2J2g5ifS.js";
5
+ import { a as fuseAll, r as cutAll } from "./booleanFns-pPwvUlDY.js";
6
+ import { $ as getNurbsSurfaceData, 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 getNurbsCurveData, 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 wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, k as fixSelfIntersection, l as ellipse, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-C8sYdHUB.js";
7
7
  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, 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, 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "15.4.0",
3
+ "version": "15.6.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",