brepjs 18.118.19 → 18.118.20

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.
@@ -1,4 +1,4 @@
1
- import { r as castResultShapeWithKnownType, rt as getKernel, t as borrowShapeWithKnownType } from "./shapeTypes-B1YVA0wM.js";
1
+ import { nt as getActiveKernelId, r as castResultShapeWithKnownType, rt as getKernel, t as borrowShapeWithKnownType } from "./shapeTypes-B1YVA0wM.js";
2
2
  import { c as getFaces, f as getVertices, l as getOrCreateCache, s as getEdges } from "./topologyQueryFns-DQmiyVS8.js";
3
3
  import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
4
4
  //#region src/topology/adjacencyFns.ts
@@ -263,14 +263,42 @@ function adjacentFaces(parent, face) {
263
263
  for (const e of faceEdgeHandles) e[Symbol.dispose]();
264
264
  return wrapAll(neighborRaw, "face");
265
265
  }
266
+ var nativeSharedEdgesSupported = /* @__PURE__ */ new Map();
267
+ function isUnsupportedKernelError(e) {
268
+ const msg = e instanceof Error ? e.message : "";
269
+ return /is only available with the|is not yet implemented|requires a registered occt kernel/.test(msg);
270
+ }
266
271
  /**
267
272
  * Get all edges shared between two faces.
268
273
  *
274
+ * Prefers the kernel's native `sharedEdges` (computed from its internal
275
+ * edge-to-face adjacency) and falls back to {@link sharedEdgesJS} on kernels
276
+ * that don't implement it. Both return fresh, caller-owned edge handles.
277
+ *
269
278
  * @param face1 - The first face.
270
279
  * @param face2 - The second face.
271
280
  * @returns Array of edges present in both faces (via isSame comparison).
272
281
  */
273
282
  function sharedEdges(face1, face2) {
283
+ const kernel = getKernel();
284
+ const kernelId = getActiveKernelId() ?? "";
285
+ if (nativeSharedEdgesSupported.get(kernelId) !== false) {
286
+ let raw;
287
+ try {
288
+ raw = kernel.sharedEdges(face1.wrapped, face2.wrapped);
289
+ const result = raw.map((e) => castResultShapeWithKnownType(e, "edge"));
290
+ nativeSharedEdgesSupported.set(kernelId, true);
291
+ return result;
292
+ } catch (e) {
293
+ if (raw) for (const r of raw) kernel.dispose(r);
294
+ if (!isUnsupportedKernelError(e)) throw e;
295
+ nativeSharedEdgesSupported.set(kernelId, false);
296
+ }
297
+ }
298
+ return sharedEdgesJS(face1, face2);
299
+ }
300
+ /** JS fallback for {@link sharedEdges}: match edges of both faces by hash + isSame. */
301
+ function sharedEdgesJS(face1, face2) {
274
302
  const kernel = getKernel();
275
303
  const edges1 = kernel.iterShapes(face1.wrapped, "edge");
276
304
  const edges2 = kernel.iterShapes(face2.wrapped, "edge");
@@ -263,14 +263,42 @@ function adjacentFaces(parent, face) {
263
263
  for (const e of faceEdgeHandles) e[Symbol.dispose]();
264
264
  return wrapAll(neighborRaw, "face");
265
265
  }
266
+ var nativeSharedEdgesSupported = /* @__PURE__ */ new Map();
267
+ function isUnsupportedKernelError(e) {
268
+ const msg = e instanceof Error ? e.message : "";
269
+ return /is only available with the|is not yet implemented|requires a registered occt kernel/.test(msg);
270
+ }
266
271
  /**
267
272
  * Get all edges shared between two faces.
268
273
  *
274
+ * Prefers the kernel's native `sharedEdges` (computed from its internal
275
+ * edge-to-face adjacency) and falls back to {@link sharedEdgesJS} on kernels
276
+ * that don't implement it. Both return fresh, caller-owned edge handles.
277
+ *
269
278
  * @param face1 - The first face.
270
279
  * @param face2 - The second face.
271
280
  * @returns Array of edges present in both faces (via isSame comparison).
272
281
  */
273
282
  function sharedEdges(face1, face2) {
283
+ const kernel = require_shapeTypes.getKernel();
284
+ const kernelId = require_shapeTypes.getActiveKernelId() ?? "";
285
+ if (nativeSharedEdgesSupported.get(kernelId) !== false) {
286
+ let raw;
287
+ try {
288
+ raw = kernel.sharedEdges(face1.wrapped, face2.wrapped);
289
+ const result = raw.map((e) => require_shapeTypes.castResultShapeWithKnownType(e, "edge"));
290
+ nativeSharedEdgesSupported.set(kernelId, true);
291
+ return result;
292
+ } catch (e) {
293
+ if (raw) for (const r of raw) kernel.dispose(r);
294
+ if (!isUnsupportedKernelError(e)) throw e;
295
+ nativeSharedEdgesSupported.set(kernelId, false);
296
+ }
297
+ }
298
+ return sharedEdgesJS(face1, face2);
299
+ }
300
+ /** JS fallback for {@link sharedEdges}: match edges of both faces by hash + isSame. */
301
+ function sharedEdgesJS(face1, face2) {
274
302
  const kernel = require_shapeTypes.getKernel();
275
303
  const edges1 = kernel.iterShapes(face1.wrapped, "edge");
276
304
  const edges2 = kernel.iterShapes(face2.wrapped, "edge");
package/dist/brepjs.cjs CHANGED
@@ -17,7 +17,7 @@ const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
17
  const require_surfaceBuilders = require("./surfaceBuilders-M_S5pGJi.cjs");
18
18
  const require_solidBuilders = require("./solidBuilders-CbdRC65U.cjs");
19
19
  const require_healingFns = require("./healingFns-8zD9gHRr.cjs");
20
- const require_threadFns = require("./threadFns-VuImNUwV.cjs");
20
+ const require_threadFns = require("./threadFns-BqgtbWI6.cjs");
21
21
  const require_blueprintSketcher = require("./blueprintSketcher-DKbyT3MJ.cjs");
22
22
  const require_helpers = require("./helpers-DARRNSnZ.cjs");
23
23
  const require_drawFns = require("./drawFns-BL6RRjT0.cjs");
@@ -29,8 +29,8 @@ const require_importFns = require("./importFns-B8VrggoW.cjs");
29
29
  const require_loftFns = require("./loftFns-DTJrpzK7.cjs");
30
30
  const require_cameraFns = require("./cameraFns-DIPrieGu.cjs");
31
31
  const require_textMetrics = require("./textMetrics-kUZVQtvY.cjs");
32
- const require_adjacencyFns = require("./adjacencyFns-Ds3HCvKX.cjs");
33
- const require_refResolveFns = require("./refResolveFns-BF9Ag5ch.cjs");
32
+ const require_adjacencyFns = require("./adjacencyFns-D7-C7dNZ.cjs");
33
+ const require_refResolveFns = require("./refResolveFns-Bba2xcFb.cjs");
34
34
  const require_workerPool = require("./workerPool-D30NsiIW.cjs");
35
35
  const require_primitiveFns = require("./primitiveFns-BhfCCIWH.cjs");
36
36
  //#region src/topology/shapeBooleans.ts
package/dist/brepjs.js CHANGED
@@ -15,7 +15,7 @@ import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayA
15
15
  import { _ as makeThreePointArc, d as makeCircle, h as makeLine, l as makeBSplineInterpolation, n as fill, r as makeFace, s as assembleWire } from "./surfaceBuilders-DISUSNgU.js";
16
16
  import { _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-Dzd09AEk.js";
17
17
  import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, M as toLODGeometryData, N as toLODGeometryLevels, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, c as isValid$1, d as draft$1, f as fillet$1, g as variableFillet, h as thicken$1, i as heal$1, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, m as shell$1, n as fixSelfIntersection, o as healSolid, p as offset$1, r as fixShape, s as healWire, t as autoHeal, u as chamfer$1, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-Bp8ixSdr.js";
18
- import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as quatMultiply, G as circularPattern, H as removeChild, I as quatRotate, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, N as quatFromAxisAngle, O as prismaticJoint, P as quatFromTo, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, a as deserializeHistory, 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, p as serializeHistory, q as linearPattern, 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 countNodes } from "./threadFns-CU9bwc38.js";
18
+ import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as quatMultiply, G as circularPattern, H as removeChild, I as quatRotate, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, N as quatFromAxisAngle, O as prismaticJoint, P as quatFromTo, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, a as deserializeHistory, 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, p as serializeHistory, q as linearPattern, 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 countNodes } from "./threadFns-Dpvzqt7o.js";
19
19
  import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-Cgz3qJx2.js";
20
20
  import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-DGAx5Y2e.js";
21
21
  import { A as sketchEllipse, 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, _ 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-DrrUmioW.js";
@@ -28,8 +28,8 @@ import { a as revolve$1, c as multiSectionSweep, d as twistExtrude, i as extrude
28
28
  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, n as getFont, o as compoundSketchExtrude, p as sketchRevolve, r as loadFont, s as compoundSketchFace, t as textBlueprints, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-BlN1vCZ2.js";
29
29
  import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-DdyBVRGK.js";
30
30
  import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-BcgFzxJW.js";
31
- import { a as sharedEdges, c as wiresOfFace, i as facesOfVertex, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-CA3Etyxq.js";
32
- import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-B7ixHjFn.js";
31
+ import { a as sharedEdges, c as wiresOfFace, i as facesOfVertex, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-BQ8Jvizf.js";
32
+ import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-wBnT_73R.js";
33
33
  import { _ as isSuccessResponse, a as createWorkerClient, c as enqueueTask, d as rejectAll, f as isBatchRequest, g as isOperationRequest, h as isInitRequest, i as registerHandler, l as isEmpty$1, m as isErrorResponse, n as createOperationRegistry, o as createTaskQueue, p as isDisposeRequest, r as createWorkerHandler, s as dequeueTask, t as createWorkerPool, u as pendingCount } from "./workerPool-XcYX2UZ0.js";
34
34
  import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere$1, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus$1, x as subFace, y as solid } from "./primitiveFns-cAodLWtw.js";
35
35
  //#region \0rolldown/runtime.js
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_threadFns = require("./threadFns-VuImNUwV.cjs");
2
+ const require_threadFns = require("./threadFns-BqgtbWI6.cjs");
3
3
  const require_loftFns = require("./loftFns-DTJrpzK7.cjs");
4
4
  exports.addChild = require_threadFns.addChild;
5
5
  exports.addJoint = require_threadFns.addJoint;
@@ -1,3 +1,3 @@
1
- import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as circularPattern, H as removeChild, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, O as prismaticJoint, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ 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 linearPattern, 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 countNodes } from "./threadFns-CU9bwc38.js";
1
+ import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as circularPattern, H as removeChild, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, O as prismaticJoint, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ 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 linearPattern, 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 countNodes } from "./threadFns-Dpvzqt7o.js";
2
2
  import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-CSdcxPhe.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 };
@@ -3,7 +3,7 @@ const require_topologyQueryFns = require("./topologyQueryFns-WesEKd3r.cjs");
3
3
  const require_faceFns = require("./faceFns-BapYNAxj.cjs");
4
4
  const require_shapeFns = require("./shapeFns-DGEpliyN.cjs");
5
5
  const require_measureFns = require("./measureFns-DBBUqf_V.cjs");
6
- const require_adjacencyFns = require("./adjacencyFns-Ds3HCvKX.cjs");
6
+ const require_adjacencyFns = require("./adjacencyFns-D7-C7dNZ.cjs");
7
7
  //#region src/topology/shapeRef/scoring.ts
8
8
  /**
9
9
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -3,7 +3,7 @@ import { S as vertexPosition, c as getFaces } from "./topologyQueryFns-DQmiyVS8.
3
3
  import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-CgTNP9kU.js";
4
4
  import { n as getHashCode } from "./shapeFns-ey7LN7Bu.js";
5
5
  import { n as measureArea, s as measureLength } from "./measureFns-Pv782Tb2.js";
6
- import { a as sharedEdges, i as facesOfVertex, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-CA3Etyxq.js";
6
+ import { a as sharedEdges, i as facesOfVertex, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-BQ8Jvizf.js";
7
7
  //#region src/topology/shapeRef/scoring.ts
8
8
  /**
9
9
  * Default face scorer combining surface type, normal alignment, centroid proximity,
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_refResolveFns = require("./refResolveFns-BF9Ag5ch.cjs");
2
+ const require_refResolveFns = require("./refResolveFns-Bba2xcFb.cjs");
3
3
  exports.assignRoles = require_refResolveFns.assignRoles;
4
4
  exports.captureHint = require_refResolveFns.captureHint;
5
5
  exports.createDerivedFaceRef = require_refResolveFns.createDerivedFaceRef;
package/dist/shapeRef.js CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-B7ixHjFn.js";
1
+ import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-wBnT_73R.js";
2
2
  export { assignRoles, captureHint, createDerivedFaceRef, createEdgeRef, createRef, createVertexRef, defaultScorer, isDerivedFaceRef, isEdgeRef, isFaceRef, isLineageRef, isVertexRef, resolveDerivedFaceRef, resolveEdgeRef, resolveLineageRef, resolveRef, resolveRefIn, resolveRefParams, resolveVertexRef, updateRoles };
@@ -5,7 +5,7 @@ const require_faceFns = require("./faceFns-BapYNAxj.cjs");
5
5
  const require_shapeFns = require("./shapeFns-DGEpliyN.cjs");
6
6
  const require_solidBuilders = require("./solidBuilders-CbdRC65U.cjs");
7
7
  const require_loftFns = require("./loftFns-DTJrpzK7.cjs");
8
- const require_refResolveFns = require("./refResolveFns-BF9Ag5ch.cjs");
8
+ const require_refResolveFns = require("./refResolveFns-Bba2xcFb.cjs");
9
9
  const require_primitiveFns = require("./primitiveFns-BhfCCIWH.cjs");
10
10
  //#region src/utils/uuid.ts
11
11
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
@@ -5,7 +5,7 @@ import { b as fromBREP } from "./faceFns-CgTNP9kU.js";
5
5
  import { s as toBREP } from "./shapeFns-ey7LN7Bu.js";
6
6
  import { h as fuseAll } from "./solidBuilders-Dzd09AEk.js";
7
7
  import { t as loft } from "./loftFns-CSdcxPhe.js";
8
- import { c as resolveRefParams } from "./refResolveFns-B7ixHjFn.js";
8
+ import { c as resolveRefParams } from "./refResolveFns-wBnT_73R.js";
9
9
  import { E as wire, h as line } from "./primitiveFns-cAodLWtw.js";
10
10
  //#region src/utils/uuid.ts
11
11
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
@@ -60,6 +60,10 @@ export declare function adjacentFaces<D extends Dimension>(parent: AnyShape<D>,
60
60
  /**
61
61
  * Get all edges shared between two faces.
62
62
  *
63
+ * Prefers the kernel's native `sharedEdges` (computed from its internal
64
+ * edge-to-face adjacency) and falls back to {@link sharedEdgesJS} on kernels
65
+ * that don't implement it. Both return fresh, caller-owned edge handles.
66
+ *
63
67
  * @param face1 - The first face.
64
68
  * @param face2 - The second face.
65
69
  * @returns Array of edges present in both faces (via isSame comparison).
package/dist/topology.cjs CHANGED
@@ -6,7 +6,7 @@ const require_curveFns = require("./curveFns-_f5x9L6D.cjs");
6
6
  const require_meshFns = require("./meshFns-CP_Gg9j9.cjs");
7
7
  const require_solidBuilders = require("./solidBuilders-CbdRC65U.cjs");
8
8
  const require_healingFns = require("./healingFns-8zD9gHRr.cjs");
9
- const require_adjacencyFns = require("./adjacencyFns-Ds3HCvKX.cjs");
9
+ const require_adjacencyFns = require("./adjacencyFns-D7-C7dNZ.cjs");
10
10
  const require_primitiveFns = require("./primitiveFns-BhfCCIWH.cjs");
11
11
  exports.addHoles = require_primitiveFns.addHoles;
12
12
  exports.adjacentFaces = require_adjacencyFns.adjacentFaces;
package/dist/topology.js CHANGED
@@ -5,6 +5,6 @@ import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as get
5
5
  import { d as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES, u as clearMeshCache } from "./meshFns-CYFz0R29.js";
6
6
  import { h as fuseAll, p as cutAll } from "./solidBuilders-Dzd09AEk.js";
7
7
  import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, g as variableFillet, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, n as fixSelfIntersection, o as healSolid, r as fixShape, s as healWire, t as autoHeal, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-Bp8ixSdr.js";
8
- import { a as sharedEdges, c as wiresOfFace, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, t as adjacentFaces } from "./adjacencyFns-CA3Etyxq.js";
8
+ import { a as sharedEdges, c as wiresOfFace, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, t as adjacentFaces } from "./adjacencyFns-BQ8Jvizf.js";
9
9
  import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-cAodLWtw.js";
10
10
  export { addHoles, adjacentFaces, approximateCurve, asTopo, autoHeal, bezier, box, bsplineApprox, cast, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkBoolean, circle, classifyPointOnFace, clearMeshCache, compound, cone, createMeshCache, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cutAll, cutAllBisect, cutWithEvolution, cylinder, fromBREP as deserializeShape, downcast, edgesOfFace, ellipse, ellipseArc, ellipsoid, exportIGES, exportSTEP, exportSTL, face, faceAxis, 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "18.118.19",
3
+ "version": "18.118.20",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",