brepjs 18.106.0 → 18.107.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.
package/dist/brepjs.cjs CHANGED
@@ -12,7 +12,7 @@ const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
12
12
  const require_faceFns = require("./faceFns-DKg2St8b.cjs");
13
13
  const require_shapeFns = require("./shapeFns-L4a8kH_A.cjs");
14
14
  const require_curveFns = require("./curveFns-Dx7_wMut.cjs");
15
- const require_meshFns = require("./meshFns-DNDsv2vH.cjs");
15
+ const require_meshFns = require("./meshFns-BgF4Xesg.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
17
  const require_surfaceBuilders = require("./surfaceBuilders-FLnYYA70.cjs");
18
18
  const require_solidBuilders = require("./solidBuilders-CgRmJEdn.cjs");
@@ -7098,6 +7098,7 @@ exports.mechanismDOF = require_threadFns.mechanismDOF;
7098
7098
  exports.mesh = mesh;
7099
7099
  exports.meshEdges = meshEdges;
7100
7100
  exports.meshLODs = require_meshFns.meshLODs;
7101
+ exports.meshLODsProgressive = require_meshFns.meshLODsProgressive;
7101
7102
  exports.meshMultiLOD = require_meshFns.meshMultiLOD;
7102
7103
  exports.minkowski = minkowski;
7103
7104
  exports.mirror = mirror;
package/dist/brepjs.js CHANGED
@@ -10,7 +10,7 @@ import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s
10
10
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, p as removeHolesFromFace, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-mo4ThIHz.js";
11
11
  import { C as findFacesByTag, D as tagFaces, E as setTagMetadata, O as getFaceOrigins, S as getShapeColor, T as getTagMetadata, a as isSameShape, b as colorShape, c as applyMatrix$1, d as resize, f as rotate$2, h as translate$2, i as isEqualShape, k as setShapeOrigin, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$3, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$2, w as getFaceTags, x as getFaceColor, y as colorFaces } from "./shapeFns-DyBbhU30.js";
12
12
  import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-CG05Jygr.js";
13
- import { a as meshEdges$1, c as clearMeshCache, i as mesh$1, l as createMeshCache, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshMultiLOD, t as exportIGES } from "./meshFns-DoVH8EPW.js";
13
+ import { a as meshEdges$1, c as meshMultiLOD, i as mesh$1, l as clearMeshCache, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as createMeshCache } from "./meshFns-BvP9Tm5Q.js";
14
14
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
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-Bww4jhBo.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-Biwv2cW3.js";
@@ -6702,4 +6702,4 @@ var csg_exports = /* @__PURE__ */ __exportAll({
6702
6702
  withEvaluator: () => withEvaluator
6703
6703
  });
6704
6704
  //#endregion
6705
- export { BaseSketcher2d, BlueprintSketcher, BrepBugError, BrepErrorCode, BrepWrapperError, BrepkitAdapter, CompoundSketch, DEFAULT_CAPABILITIES, DEG2RAD, DisposalScope, EXACT_BREP_CAPABILITIES, FaceSketcher, HASH_CODE_MAX, OK, OcctWasmAdapter, RAD2DEG, Sketch, Sketcher, Sketches, addChild, addHoles, addJoint, addMate, addStep, adjacentFaces, all, andThen, applyGlue, applyMatrix, approximateCurve, as2D, as3D, asTopo, assignRoles, autoHeal, bezier, blueprintToDXF, booleanPipeline, booleans_exports as booleans, boss, box, bsplineApprox, bug, cameraFromPlane, cameraLookAt, captureHint, cast, castShape, castShape3D, chamfer, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkAllInterferences, checkBoolean, checkInterference, circle, circularPattern, classifyPointOnFace, clearMeshCache, clone, closedWire, collect, collectShapes, colorFaces, colorShape, complexExtrude, composeTransforms, compound, compoundSketchExtrude, compoundSketchFace, compoundSketchLoft, compoundSketchRevolve, computationError, computeStraightSkeleton, cone, construction_exports as construction, convexHull, cornerFinder, countNodes, createAssembly, createAssemblyNode, createBlueprint, createCamera, createCompound, createCompoundBlueprint, createDistanceQuery, createEdge, createFace, createHandle, createHistory, createKernelHandle, createMeshCache, createNamedPlane, createOperationRegistry, createPlane, createRef, createRegistry, createShell, createSolid, createTaskQueue, createVertex, createWire, createWorkerClient, createWorkerHandler, createWorkerPool, csg_exports as csg, currentQuality, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cut, cut2D, cutAll, cutAllBisect, cutBlueprints, cutWithEvolution, cylinder, cylindricalJoint, defaultScorer, dequeueTask, describe, deserializeDrawing, deserializeHistory, fromBREP as deserializeShape, downcast, draft, draw, drawCircle, drawEllipse, drawFaceOutline, drawParametricFunction, drawPointsInterpolation, drawPolysides, drawProjection, drawRectangle, drawRoundedRectangle, drawSingleCircle, drawSingleEllipse, drawText, drawingChamfer, drawingCut, drawingFillet, drawingFuse, drawingIntersect, drawingToSketchOnPlane, drill, edgeFinder, edgesOfFace, ellipse, ellipseArc, ellipsoid, enqueueTask, err, exportAssemblySTEP, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, exportURDF, extrude, extrudeAll, face, faceAxis, faceCenter, faceFinder, faceGeomType, faceOrientation, facesOfEdge, fieldBoolean, fieldContour, fieldOffset, fieldReinit, fieldShell, fill, filledFace, fillet, filletWithEvolution, findFacesByTag, findNode, findStep, fixSelfIntersection, fixShape, flatMap, flatten, flipFaceOrientation, flipOrientation, fontMetrics, forwardKinematics, fromBREP$1 as fromBREP, fromKernelDir, fromKernelPnt, fromKernelVec, fromNullable, fuse, fuse2D, fuseAll, fuseAllBisect, fuseBlueprints, fuseWithEvolution, gearGeometry, getActiveVoxelId, getBounds, getBounds2D, getCompSolids, getCurveType, getDisposalStats, getEdges, getFaceColor, getFaceOrigins, getFaceTags, getFaces, getFont, getHashCode, getShape as getHistoryShape, getKernel, getKernelCapabilities, getKernelTier, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getOrientation2D, getPerformanceStats, getShapeColor, getShapeKind, getShells, getSingleFace, getSolids, getSurfaceType, getTagMetadata, getVertices, getVoxel, getWires, gridPattern, guidedSweep, heal, healFace, healSolid, healWire, helix, hull, importDXF, importGLB, importIGES, importOBJ, importSTEP, importSTL, importSVG, importSVGPathD, importThreeMF, importURDF, init, initFromManifold, initFromOC, initVoxel, innerWires, instance, instanceCount, instanceGrid, instancedMesh, interpolateCurve, intersect, intersect2D, intersectBlueprints, intersectWithEvolution, invalidateShapeCache, inverseKinematics, ioNs_exports as io, ioError, is2D, is3D, isBatchRequest, isChamferRadius, isClosedWire, isCompSolid, isCompound, isDisposeRequest, isEdge, isEmpty, isEqualShape, isErr, isErrorResponse, isFace, isFilletRadius, isInitRequest, isInside2D, isInstanced, isLive, isManifoldShell, isNumber, isOk, isOperationRequest, isOrientedFace, isPlanarFace, isPlanarWire, isProjectionPlane, isEmpty$1 as isQueueEmpty, isSameShape, isShape1D, isShape3D, isShell, isSolid, isSuccessResponse, isValid, isValidSolid, isVertex, isWire, iterCompSolids, iterEdges, iterFaces, iterShells, iterSolids, iterTopo, iterVertices, iterWires, jointTrajectory, jointTransform, jointsFromDH, kernelCall, kernelCallRaw, kernelCallScoped, kernelError, latticeInfill, latticeInfillShape, line, linearPattern, loadFont, loft, loftAll, makeBaseBox, makeExternalGear, makeInternalGear, makePlane, makePlanetaryGear, makeProjectedEdges, manifoldShell, map, mapBoth, mapErr, match, materialize, measureArea, measureCurvatureAt, measureCurvatureAtMid, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, measurement_exports as measurement, mechanismDOF, mesh, meshEdges, meshLODs, meshMultiLOD, minkowski, mirror, mirror2D, mirrorDrawing, mirrorJoin, modifiers_exports as modifiers, modifyStep, moduleInitError, multiSectionSweep, normalAt, offset, offsetFace, offsetMesh, offsetShape, offsetWire2D, ok, or, orElse, organiseBlueprints, orientedFace, outerWire, patterns_exports as patterns, pendingCount, pipeline, pivotPlane, planarFace, planarJoint, planarWire, planetPlacements, pocket, pointOnSurface, pointsInside, polygon, polyhedron, polysideInnerRadius, polysidesBlueprint, positionOnCurve, prewarm, primitives_exports as primitives, prismaticJoint, projectEdges, projectPointOnFace, query_exports as query, queryError, rectangularPattern, registerHandler, registerKernel, registerKernelTier, registerOperation, registerShape, registerVoxel, rejectAll, removeChild, removeHolesFromFace, repairMesh, replayFrom, replayHistory, resetDisposalStats, resetPerformanceStats, resize, resolve, resolve3D, resolveDirection, resolvePlane, resolveRef, reverseCurve, revoluteJoint, revolve, roof, rotate, rotate2D, rotateDrawing, roundedRectangleBlueprint, scale, scale2D, scaleDrawing, box$1 as sdfBox, capsule as sdfCapsule, cone$1 as sdfCone, cylinder$1 as sdfCylinder, fieldAxialRamp as sdfFieldAxialRamp, fieldClamp as sdfFieldClamp, fieldConst as sdfFieldConst, fieldFromSdf as sdfFieldFromSdf, fieldRadialRamp as sdfFieldRadialRamp, lattice as sdfLattice, plane as sdfPlane, roundedBox as sdfRoundedBox, sphere as sdfSphere, strutLattice as sdfStrutLattice, sweep as sdfSweep, torus as sdfTorus, section, sectionToFace, serializeHistory, setJointValue, setJointValues, setShapeOrigin, setTagMetadata, sewShells, shape, shapeToMeshInput, shapeType, sharedEdges, shell, shellMesh, shellShape, shellWithEvolution, simplify, sketchCircle, sketchEllipse, sketchExtrude, sketchFace, sketchFaceOffset, sketchHelix, sketchLoft, sketchOnFace2D, sketchOnPlane2D, sketchParametricFunction, sketchPolysides, sketchRectangle, sketchRevolve, sketchRoundedRectangle, sketchSweep, sketchText, sketchWires, sketcherStateError, slice, solid, solidFromShell, solveAssembly, sphere$1 as sphere, sphericalJoint, split, stepCount, stepsFrom, stretch2D, subFace, supportExtrude, supportsConstraintSketch, supportsProjection, surfaceFromGrid, surfaceFromImage, sweep$1 as sweep, tagFaces, tangentArc, tap, tapErr, textBlueprints, textMetrics, thicken, thread, threePointArc, toBREP, toBufferGeometryData, toGroupedBufferGeometryData, toKernelVec, toLODGeometryData, toLODGeometryLevels, toLineGeometryData, toSVGPathD, toVec2, toVec3, torus$1 as torus, tpmsLattice, transformCopy, transforms_exports as transforms, translate, translate2D, translateDrawing, translatePlane, tryCatch, tryCatchAsync, twistExtrude, typeCastError, undoLast, unsupportedError, unwrap, unwrapErr, unwrapOr, unwrapOrElse, updateNode, updateRoles, uvBounds, uvCoordinates, validSolid, validatePlanetary, validationError, variableFillet, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub, vertex, vertexFinder, vertexPosition, verticesOfEdge, voxelBoolean, voxelBooleanField, voxelBooleanFieldShapes, voxelBooleanShapes, voxelField, voxelFieldFromShape, walkAssembly, windingNumbers, wire, wireFinder, wireLoop, wiresOfFace, withKernel, withKernelDir, withKernelPnt, withKernelVec, withQuality, withScope, withScopeResult, withScopeResultAsync, withTier, zip as zipResults };
6705
+ export { BaseSketcher2d, BlueprintSketcher, BrepBugError, BrepErrorCode, BrepWrapperError, BrepkitAdapter, CompoundSketch, DEFAULT_CAPABILITIES, DEG2RAD, DisposalScope, EXACT_BREP_CAPABILITIES, FaceSketcher, HASH_CODE_MAX, OK, OcctWasmAdapter, RAD2DEG, Sketch, Sketcher, Sketches, addChild, addHoles, addJoint, addMate, addStep, adjacentFaces, all, andThen, applyGlue, applyMatrix, approximateCurve, as2D, as3D, asTopo, assignRoles, autoHeal, bezier, blueprintToDXF, booleanPipeline, booleans_exports as booleans, boss, box, bsplineApprox, bug, cameraFromPlane, cameraLookAt, captureHint, cast, castShape, castShape3D, chamfer, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkAllInterferences, checkBoolean, checkInterference, circle, circularPattern, classifyPointOnFace, clearMeshCache, clone, closedWire, collect, collectShapes, colorFaces, colorShape, complexExtrude, composeTransforms, compound, compoundSketchExtrude, compoundSketchFace, compoundSketchLoft, compoundSketchRevolve, computationError, computeStraightSkeleton, cone, construction_exports as construction, convexHull, cornerFinder, countNodes, createAssembly, createAssemblyNode, createBlueprint, createCamera, createCompound, createCompoundBlueprint, createDistanceQuery, createEdge, createFace, createHandle, createHistory, createKernelHandle, createMeshCache, createNamedPlane, createOperationRegistry, createPlane, createRef, createRegistry, createShell, createSolid, createTaskQueue, createVertex, createWire, createWorkerClient, createWorkerHandler, createWorkerPool, csg_exports as csg, currentQuality, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cut, cut2D, cutAll, cutAllBisect, cutBlueprints, cutWithEvolution, cylinder, cylindricalJoint, defaultScorer, dequeueTask, describe, deserializeDrawing, deserializeHistory, fromBREP as deserializeShape, downcast, draft, draw, drawCircle, drawEllipse, drawFaceOutline, drawParametricFunction, drawPointsInterpolation, drawPolysides, drawProjection, drawRectangle, drawRoundedRectangle, drawSingleCircle, drawSingleEllipse, drawText, drawingChamfer, drawingCut, drawingFillet, drawingFuse, drawingIntersect, drawingToSketchOnPlane, drill, edgeFinder, edgesOfFace, ellipse, ellipseArc, ellipsoid, enqueueTask, err, exportAssemblySTEP, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, exportURDF, extrude, extrudeAll, face, faceAxis, faceCenter, faceFinder, faceGeomType, faceOrientation, facesOfEdge, fieldBoolean, fieldContour, fieldOffset, fieldReinit, fieldShell, fill, filledFace, fillet, filletWithEvolution, findFacesByTag, findNode, findStep, fixSelfIntersection, fixShape, flatMap, flatten, flipFaceOrientation, flipOrientation, fontMetrics, forwardKinematics, fromBREP$1 as fromBREP, fromKernelDir, fromKernelPnt, fromKernelVec, fromNullable, fuse, fuse2D, fuseAll, fuseAllBisect, fuseBlueprints, fuseWithEvolution, gearGeometry, getActiveVoxelId, getBounds, getBounds2D, getCompSolids, getCurveType, getDisposalStats, getEdges, getFaceColor, getFaceOrigins, getFaceTags, getFaces, getFont, getHashCode, getShape as getHistoryShape, getKernel, getKernelCapabilities, getKernelTier, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getOrientation2D, getPerformanceStats, getShapeColor, getShapeKind, getShells, getSingleFace, getSolids, getSurfaceType, getTagMetadata, getVertices, getVoxel, getWires, gridPattern, guidedSweep, heal, healFace, healSolid, healWire, helix, hull, importDXF, importGLB, importIGES, importOBJ, importSTEP, importSTL, importSVG, importSVGPathD, importThreeMF, importURDF, init, initFromManifold, initFromOC, initVoxel, innerWires, instance, instanceCount, instanceGrid, instancedMesh, interpolateCurve, intersect, intersect2D, intersectBlueprints, intersectWithEvolution, invalidateShapeCache, inverseKinematics, ioNs_exports as io, ioError, is2D, is3D, isBatchRequest, isChamferRadius, isClosedWire, isCompSolid, isCompound, isDisposeRequest, isEdge, isEmpty, isEqualShape, isErr, isErrorResponse, isFace, isFilletRadius, isInitRequest, isInside2D, isInstanced, isLive, isManifoldShell, isNumber, isOk, isOperationRequest, isOrientedFace, isPlanarFace, isPlanarWire, isProjectionPlane, isEmpty$1 as isQueueEmpty, isSameShape, isShape1D, isShape3D, isShell, isSolid, isSuccessResponse, isValid, isValidSolid, isVertex, isWire, iterCompSolids, iterEdges, iterFaces, iterShells, iterSolids, iterTopo, iterVertices, iterWires, jointTrajectory, jointTransform, jointsFromDH, kernelCall, kernelCallRaw, kernelCallScoped, kernelError, latticeInfill, latticeInfillShape, line, linearPattern, loadFont, loft, loftAll, makeBaseBox, makeExternalGear, makeInternalGear, makePlane, makePlanetaryGear, makeProjectedEdges, manifoldShell, map, mapBoth, mapErr, match, materialize, measureArea, measureCurvatureAt, measureCurvatureAtMid, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, measurement_exports as measurement, mechanismDOF, mesh, meshEdges, meshLODs, meshLODsProgressive, meshMultiLOD, minkowski, mirror, mirror2D, mirrorDrawing, mirrorJoin, modifiers_exports as modifiers, modifyStep, moduleInitError, multiSectionSweep, normalAt, offset, offsetFace, offsetMesh, offsetShape, offsetWire2D, ok, or, orElse, organiseBlueprints, orientedFace, outerWire, patterns_exports as patterns, pendingCount, pipeline, pivotPlane, planarFace, planarJoint, planarWire, planetPlacements, pocket, pointOnSurface, pointsInside, polygon, polyhedron, polysideInnerRadius, polysidesBlueprint, positionOnCurve, prewarm, primitives_exports as primitives, prismaticJoint, projectEdges, projectPointOnFace, query_exports as query, queryError, rectangularPattern, registerHandler, registerKernel, registerKernelTier, registerOperation, registerShape, registerVoxel, rejectAll, removeChild, removeHolesFromFace, repairMesh, replayFrom, replayHistory, resetDisposalStats, resetPerformanceStats, resize, resolve, resolve3D, resolveDirection, resolvePlane, resolveRef, reverseCurve, revoluteJoint, revolve, roof, rotate, rotate2D, rotateDrawing, roundedRectangleBlueprint, scale, scale2D, scaleDrawing, box$1 as sdfBox, capsule as sdfCapsule, cone$1 as sdfCone, cylinder$1 as sdfCylinder, fieldAxialRamp as sdfFieldAxialRamp, fieldClamp as sdfFieldClamp, fieldConst as sdfFieldConst, fieldFromSdf as sdfFieldFromSdf, fieldRadialRamp as sdfFieldRadialRamp, lattice as sdfLattice, plane as sdfPlane, roundedBox as sdfRoundedBox, sphere as sdfSphere, strutLattice as sdfStrutLattice, sweep as sdfSweep, torus as sdfTorus, section, sectionToFace, serializeHistory, setJointValue, setJointValues, setShapeOrigin, setTagMetadata, sewShells, shape, shapeToMeshInput, shapeType, sharedEdges, shell, shellMesh, shellShape, shellWithEvolution, simplify, sketchCircle, sketchEllipse, sketchExtrude, sketchFace, sketchFaceOffset, sketchHelix, sketchLoft, sketchOnFace2D, sketchOnPlane2D, sketchParametricFunction, sketchPolysides, sketchRectangle, sketchRevolve, sketchRoundedRectangle, sketchSweep, sketchText, sketchWires, sketcherStateError, slice, solid, solidFromShell, solveAssembly, sphere$1 as sphere, sphericalJoint, split, stepCount, stepsFrom, stretch2D, subFace, supportExtrude, supportsConstraintSketch, supportsProjection, surfaceFromGrid, surfaceFromImage, sweep$1 as sweep, tagFaces, tangentArc, tap, tapErr, textBlueprints, textMetrics, thicken, thread, threePointArc, toBREP, toBufferGeometryData, toGroupedBufferGeometryData, toKernelVec, toLODGeometryData, toLODGeometryLevels, toLineGeometryData, toSVGPathD, toVec2, toVec3, torus$1 as torus, tpmsLattice, transformCopy, transforms_exports as transforms, translate, translate2D, translateDrawing, translatePlane, tryCatch, tryCatchAsync, twistExtrude, typeCastError, undoLast, unsupportedError, unwrap, unwrapErr, unwrapOr, unwrapOrElse, updateNode, updateRoles, uvBounds, uvCoordinates, validSolid, validatePlanetary, validationError, variableFillet, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub, vertex, vertexFinder, vertexPosition, verticesOfEdge, voxelBoolean, voxelBooleanField, voxelBooleanFieldShapes, voxelBooleanShapes, voxelField, voxelFieldFromShape, walkAssembly, windingNumbers, wire, wireFinder, wireLoop, wiresOfFace, withKernel, withKernelDir, withKernelPnt, withKernelVec, withQuality, withScope, withScopeResult, withScopeResultAsync, withTier, zip as zipResults };
package/dist/index.d.ts CHANGED
@@ -92,7 +92,7 @@ export { getCurveType, curveStartPoint, curveEndPoint, curvePointAt, curveTangen
92
92
  export { getNurbsCurveData, getNurbsSurfaceData } from './topology/nurbsFns.js';
93
93
  export type { NurbsCurveData, NurbsSurfaceData } from './kernel/types.js';
94
94
  export { getSurfaceType, faceGeomType, faceOrientation, flipFaceOrientation, uvBounds, pointOnSurface, uvCoordinates, normalAt, faceCenter, faceAxis, classifyPointOnFace, outerWire, innerWires, removeHolesFromFace, projectPointOnFace, type UVBounds, type PointProjectionResult, } from './topology/faceFns.js';
95
- export { exportSTEP, exportSTL, exportIGES, meshMultiLOD, meshLODs, type ShapeMesh, type EdgeMesh, type MeshOptions, type MultiLODMesh, type LODMesh, type MeshLODsOptions, } from './topology/meshFns.js';
95
+ export { exportSTEP, exportSTL, exportIGES, meshMultiLOD, meshLODs, meshLODsProgressive, type ShapeMesh, type EdgeMesh, type MeshOptions, type MultiLODMesh, type LODMesh, type MeshLODsOptions, type MeshLODsProgressiveOptions, type MeshLevelFn, } from './topology/meshFns.js';
96
96
  export { clearMeshCache, createMeshCache, type MeshCacheContext } from './topology/meshCache.js';
97
97
  export { toBufferGeometryData, toLineGeometryData, toGroupedBufferGeometryData, type BufferGeometryData, type LineGeometryData, type GroupedBufferGeometryData, type BufferGeometryGroup, toLODGeometryData, type LODGeometryData, toLODGeometryLevels, type LODGeometryLevel, } from './topology/threeHelpers.js';
98
98
  export { booleanPipeline, type BooleanOptions, type BooleanPipelineStep, } from './topology/booleanFns.js';
package/dist/io.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-DNDsv2vH.cjs");
2
+ const require_meshFns = require("./meshFns-BgF4Xesg.cjs");
3
3
  const require_importFns = require("./importFns-B6hw9Nhx.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-DoVH8EPW.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-BvP9Tm5Q.js";
2
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-CEczwPdN.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -321,6 +321,24 @@ function boundsDiagonal(shape) {
321
321
  const dz = b.zMax - b.zMin;
322
322
  return Math.sqrt(dx * dx + dy * dy + dz * dz) || 1;
323
323
  }
324
+ /** Per-level linear tolerances for a LOD ladder, coarse (large) → fine (small). */
325
+ function lodTolerances(shape, options) {
326
+ let tolerances;
327
+ if (options.tolerances && options.tolerances.length > 0) tolerances = [...options.tolerances];
328
+ else {
329
+ const levels = Math.max(1, Math.floor(options.levels ?? 3));
330
+ const spacing = options.spacing ?? 4;
331
+ const finest = (options.relativeTolerance ?? 5e-4) * boundsDiagonal(shape) || Number.EPSILON;
332
+ tolerances = [];
333
+ for (let i = levels - 1; i >= 0; i--) tolerances.push(finest * spacing ** i);
334
+ }
335
+ tolerances.sort((a, b) => b - a);
336
+ return tolerances;
337
+ }
338
+ /** A level's angular deflection scales with how much coarser it is than the finest (capped at 1 rad). */
339
+ function levelAngular(tolerance, finestTol, finestAngular) {
340
+ return Math.min(finestAngular * (tolerance / finestTol), 1);
341
+ }
324
342
  /**
325
343
  * Mesh a shape at several levels of detail, coarse → fine.
326
344
  *
@@ -334,22 +352,12 @@ function boundsDiagonal(shape) {
334
352
  * @see toLODGeometryLevels — convert to THREE.LOD geometry data
335
353
  */
336
354
  function meshLODs(shape, options = {}) {
337
- const quality = require_shapeTypes.qualityDeflection();
338
- const finestAngular = options.angularTolerance ?? quality.angularTolerance;
355
+ const finestAngular = options.angularTolerance ?? require_shapeTypes.qualityDeflection().angularTolerance;
339
356
  const cache = options.cache ?? true;
340
- let tolerances;
341
- if (options.tolerances && options.tolerances.length > 0) tolerances = [...options.tolerances];
342
- else {
343
- const levels = Math.max(1, Math.floor(options.levels ?? 3));
344
- const spacing = options.spacing ?? 4;
345
- const finest = (options.relativeTolerance ?? 5e-4) * boundsDiagonal(shape) || Number.EPSILON;
346
- tolerances = [];
347
- for (let i = levels - 1; i >= 0; i--) tolerances.push(finest * spacing ** i);
348
- }
349
- tolerances.sort((a, b) => b - a);
357
+ const tolerances = lodTolerances(shape, options);
350
358
  const finestTol = Math.min(...tolerances);
351
359
  return tolerances.map((tolerance) => {
352
- const angularTolerance = Math.min(finestAngular * (tolerance / finestTol), 1);
360
+ const angularTolerance = levelAngular(tolerance, finestTol, finestAngular);
353
361
  return {
354
362
  tolerance,
355
363
  angularTolerance,
@@ -362,6 +370,59 @@ function meshLODs(shape, options = {}) {
362
370
  };
363
371
  });
364
372
  }
373
+ function nextTick() {
374
+ return new Promise((resolve) => {
375
+ setTimeout(resolve, 0);
376
+ });
377
+ }
378
+ /**
379
+ * Mesh a shape at several levels of detail, delivering them over time coarse →
380
+ * fine instead of all at once — so a viewer paints the coarse preview first and
381
+ * refines as finer levels land.
382
+ *
383
+ * The coarsest level is meshed first and reported via `onLevel`; control then
384
+ * yields to the event loop before each finer (heavier) level so the UI stays
385
+ * responsive. Each level is meshed synchronously on the calling thread by
386
+ * default; pass `meshLevel` to offload finer levels (e.g. to a worker). An
387
+ * aborted `signal` stops refinement and resolves with the levels produced so far.
388
+ *
389
+ * @returns the delivered LOD levels, coarsest → finest.
390
+ * @see meshLODs — the synchronous, all-at-once variant
391
+ */
392
+ async function meshLODsProgressive(shape, options = {}) {
393
+ const finestAngular = options.angularTolerance ?? require_shapeTypes.qualityDeflection().angularTolerance;
394
+ const cache = options.cache ?? true;
395
+ const meshLevel = options.meshLevel ?? ((s, tolerance, angularTolerance) => mesh(s, {
396
+ tolerance,
397
+ angularTolerance,
398
+ cache,
399
+ ...options.signal ? { signal: options.signal } : {}
400
+ }));
401
+ const tolerances = lodTolerances(shape, options);
402
+ const finestTol = Math.min(...tolerances);
403
+ const results = [];
404
+ for (const [index, tolerance] of tolerances.entries()) {
405
+ if (options.signal?.aborted) break;
406
+ const angularTolerance = levelAngular(tolerance, finestTol, finestAngular);
407
+ let levelMesh;
408
+ try {
409
+ levelMesh = await meshLevel(shape, tolerance, angularTolerance);
410
+ } catch (e) {
411
+ if (options.signal?.aborted) break;
412
+ throw e;
413
+ }
414
+ const level = {
415
+ tolerance,
416
+ angularTolerance,
417
+ mesh: levelMesh
418
+ };
419
+ results.push(level);
420
+ options.onLevel?.(level, index);
421
+ if (options.signal?.aborted || index === tolerances.length - 1) break;
422
+ await nextTick();
423
+ }
424
+ return results;
425
+ }
365
426
  //#endregion
366
427
  Object.defineProperty(exports, "clearMeshCache", {
367
428
  enumerable: true,
@@ -411,6 +472,12 @@ Object.defineProperty(exports, "meshLODs", {
411
472
  return meshLODs;
412
473
  }
413
474
  });
475
+ Object.defineProperty(exports, "meshLODsProgressive", {
476
+ enumerable: true,
477
+ get: function() {
478
+ return meshLODsProgressive;
479
+ }
480
+ });
414
481
  Object.defineProperty(exports, "meshMultiLOD", {
415
482
  enumerable: true,
416
483
  get: function() {
@@ -321,6 +321,24 @@ function boundsDiagonal(shape) {
321
321
  const dz = b.zMax - b.zMin;
322
322
  return Math.sqrt(dx * dx + dy * dy + dz * dz) || 1;
323
323
  }
324
+ /** Per-level linear tolerances for a LOD ladder, coarse (large) → fine (small). */
325
+ function lodTolerances(shape, options) {
326
+ let tolerances;
327
+ if (options.tolerances && options.tolerances.length > 0) tolerances = [...options.tolerances];
328
+ else {
329
+ const levels = Math.max(1, Math.floor(options.levels ?? 3));
330
+ const spacing = options.spacing ?? 4;
331
+ const finest = (options.relativeTolerance ?? 5e-4) * boundsDiagonal(shape) || Number.EPSILON;
332
+ tolerances = [];
333
+ for (let i = levels - 1; i >= 0; i--) tolerances.push(finest * spacing ** i);
334
+ }
335
+ tolerances.sort((a, b) => b - a);
336
+ return tolerances;
337
+ }
338
+ /** A level's angular deflection scales with how much coarser it is than the finest (capped at 1 rad). */
339
+ function levelAngular(tolerance, finestTol, finestAngular) {
340
+ return Math.min(finestAngular * (tolerance / finestTol), 1);
341
+ }
324
342
  /**
325
343
  * Mesh a shape at several levels of detail, coarse → fine.
326
344
  *
@@ -334,22 +352,12 @@ function boundsDiagonal(shape) {
334
352
  * @see toLODGeometryLevels — convert to THREE.LOD geometry data
335
353
  */
336
354
  function meshLODs(shape, options = {}) {
337
- const quality = qualityDeflection();
338
- const finestAngular = options.angularTolerance ?? quality.angularTolerance;
355
+ const finestAngular = options.angularTolerance ?? qualityDeflection().angularTolerance;
339
356
  const cache = options.cache ?? true;
340
- let tolerances;
341
- if (options.tolerances && options.tolerances.length > 0) tolerances = [...options.tolerances];
342
- else {
343
- const levels = Math.max(1, Math.floor(options.levels ?? 3));
344
- const spacing = options.spacing ?? 4;
345
- const finest = (options.relativeTolerance ?? 5e-4) * boundsDiagonal(shape) || Number.EPSILON;
346
- tolerances = [];
347
- for (let i = levels - 1; i >= 0; i--) tolerances.push(finest * spacing ** i);
348
- }
349
- tolerances.sort((a, b) => b - a);
357
+ const tolerances = lodTolerances(shape, options);
350
358
  const finestTol = Math.min(...tolerances);
351
359
  return tolerances.map((tolerance) => {
352
- const angularTolerance = Math.min(finestAngular * (tolerance / finestTol), 1);
360
+ const angularTolerance = levelAngular(tolerance, finestTol, finestAngular);
353
361
  return {
354
362
  tolerance,
355
363
  angularTolerance,
@@ -362,5 +370,58 @@ function meshLODs(shape, options = {}) {
362
370
  };
363
371
  });
364
372
  }
373
+ function nextTick() {
374
+ return new Promise((resolve) => {
375
+ setTimeout(resolve, 0);
376
+ });
377
+ }
378
+ /**
379
+ * Mesh a shape at several levels of detail, delivering them over time coarse →
380
+ * fine instead of all at once — so a viewer paints the coarse preview first and
381
+ * refines as finer levels land.
382
+ *
383
+ * The coarsest level is meshed first and reported via `onLevel`; control then
384
+ * yields to the event loop before each finer (heavier) level so the UI stays
385
+ * responsive. Each level is meshed synchronously on the calling thread by
386
+ * default; pass `meshLevel` to offload finer levels (e.g. to a worker). An
387
+ * aborted `signal` stops refinement and resolves with the levels produced so far.
388
+ *
389
+ * @returns the delivered LOD levels, coarsest → finest.
390
+ * @see meshLODs — the synchronous, all-at-once variant
391
+ */
392
+ async function meshLODsProgressive(shape, options = {}) {
393
+ const finestAngular = options.angularTolerance ?? qualityDeflection().angularTolerance;
394
+ const cache = options.cache ?? true;
395
+ const meshLevel = options.meshLevel ?? ((s, tolerance, angularTolerance) => mesh(s, {
396
+ tolerance,
397
+ angularTolerance,
398
+ cache,
399
+ ...options.signal ? { signal: options.signal } : {}
400
+ }));
401
+ const tolerances = lodTolerances(shape, options);
402
+ const finestTol = Math.min(...tolerances);
403
+ const results = [];
404
+ for (const [index, tolerance] of tolerances.entries()) {
405
+ if (options.signal?.aborted) break;
406
+ const angularTolerance = levelAngular(tolerance, finestTol, finestAngular);
407
+ let levelMesh;
408
+ try {
409
+ levelMesh = await meshLevel(shape, tolerance, angularTolerance);
410
+ } catch (e) {
411
+ if (options.signal?.aborted) break;
412
+ throw e;
413
+ }
414
+ const level = {
415
+ tolerance,
416
+ angularTolerance,
417
+ mesh: levelMesh
418
+ };
419
+ results.push(level);
420
+ options.onLevel?.(level, index);
421
+ if (options.signal?.aborted || index === tolerances.length - 1) break;
422
+ await nextTick();
423
+ }
424
+ return results;
425
+ }
365
426
  //#endregion
366
- export { meshEdges as a, clearMeshCache as c, mesh as i, createMeshCache as l, exportSTEP as n, meshLODs as o, exportSTL as r, meshMultiLOD as s, exportIGES as t };
427
+ export { meshEdges as a, meshMultiLOD as c, mesh as i, clearMeshCache as l, exportSTEP as n, meshLODs as o, exportSTL as r, meshLODsProgressive as s, exportIGES as t, createMeshCache as u };
@@ -139,3 +139,34 @@ export interface MeshLODsOptions {
139
139
  * @see toLODGeometryLevels — convert to THREE.LOD geometry data
140
140
  */
141
141
  export declare function meshLODs(shape: AnyShape<Dimension>, options?: MeshLODsOptions): LODMesh[];
142
+ /**
143
+ * Mesh one LOD level. Defaults to the synchronous main-thread {@link mesh}; pass
144
+ * an async implementation (e.g. one that serializes the shape with `toBREP` and
145
+ * meshes it on a worker) to refine finer levels off the main thread.
146
+ */
147
+ export type MeshLevelFn = (shape: AnyShape<Dimension>, tolerance: number, angularTolerance: number) => ShapeMesh | Promise<ShapeMesh>;
148
+ /** Options for {@link meshLODsProgressive}. */
149
+ export interface MeshLODsProgressiveOptions extends MeshLODsOptions {
150
+ /**
151
+ * Called as each level finishes, coarsest first, so a viewer can show the
152
+ * coarse preview immediately and swap in finer meshes as they arrive.
153
+ */
154
+ readonly onLevel?: (level: LODMesh, index: number) => void;
155
+ /** How to mesh one level. Defaults to the synchronous main-thread {@link mesh}. */
156
+ readonly meshLevel?: MeshLevelFn;
157
+ }
158
+ /**
159
+ * Mesh a shape at several levels of detail, delivering them over time coarse →
160
+ * fine instead of all at once — so a viewer paints the coarse preview first and
161
+ * refines as finer levels land.
162
+ *
163
+ * The coarsest level is meshed first and reported via `onLevel`; control then
164
+ * yields to the event loop before each finer (heavier) level so the UI stays
165
+ * responsive. Each level is meshed synchronously on the calling thread by
166
+ * default; pass `meshLevel` to offload finer levels (e.g. to a worker). An
167
+ * aborted `signal` stops refinement and resolves with the levels produced so far.
168
+ *
169
+ * @returns the delivered LOD levels, coarsest → finest.
170
+ * @see meshLODs — the synchronous, all-at-once variant
171
+ */
172
+ export declare function meshLODsProgressive(shape: AnyShape<Dimension>, options?: MeshLODsProgressiveOptions): Promise<LODMesh[]>;
package/dist/topology.cjs CHANGED
@@ -3,7 +3,7 @@ const require_topologyQueryFns = require("./topologyQueryFns-ygBBXxnP.cjs");
3
3
  const require_faceFns = require("./faceFns-DKg2St8b.cjs");
4
4
  const require_shapeFns = require("./shapeFns-L4a8kH_A.cjs");
5
5
  const require_curveFns = require("./curveFns-Dx7_wMut.cjs");
6
- const require_meshFns = require("./meshFns-DNDsv2vH.cjs");
6
+ const require_meshFns = require("./meshFns-BgF4Xesg.cjs");
7
7
  const require_solidBuilders = require("./solidBuilders-CgRmJEdn.cjs");
8
8
  const require_healingFns = require("./healingFns-OL0bBSSY.cjs");
9
9
  const require_primitiveFns = require("./primitiveFns-BAWtMd9H.cjs");
package/dist/topology.js CHANGED
@@ -2,7 +2,7 @@ import { S as vertexPosition, _ as iterFaces, b as iterVertices, c as getFaces,
2
2
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-mo4ThIHz.js";
3
3
  import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-DyBbhU30.js";
4
4
  import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-CG05Jygr.js";
5
- import { c as clearMeshCache, l as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-DoVH8EPW.js";
5
+ import { l as clearMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES, u as createMeshCache } from "./meshFns-BvP9Tm5Q.js";
6
6
  import { h as fuseAll, p as cutAll } from "./solidBuilders-Biwv2cW3.js";
7
7
  import { A as edgesOfFace, B as toLineGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, F as chamferDistAngle, I as toBufferGeometryData, L as toGroupedBufferGeometryData, M as sharedEdges, N as verticesOfEdge, O as getNurbsSurfaceData, P as wiresOfFace, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, g as variableFillet, j as facesOfEdge, k as adjacentFaces, 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-C5AomW4j.js";
8
8
  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-62SO4ti5.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "18.106.0",
3
+ "version": "18.107.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",