brepjs 18.150.0 → 18.150.2

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 (86) hide show
  1. package/dist/2d/lib/ellipseArcFlags.d.ts +20 -0
  2. package/dist/2d.cjs +6 -6
  3. package/dist/2d.js +6 -6
  4. package/dist/{adjacencyFns-Clu4DbkI.cjs → adjacencyFns-B1FEq-7P.cjs} +3 -3
  5. package/dist/{adjacencyFns-BMgFDWFO.js → adjacencyFns-ChpKOdJX.js} +3 -3
  6. package/dist/{blueprint-BzDq9Rfb.js → blueprint-Be2V1tdb.js} +66 -10
  7. package/dist/{blueprint-CdOcvuG4.cjs → blueprint-SQlROOFK.cjs} +71 -9
  8. package/dist/{blueprintFns-B6zG47o1.cjs → blueprintFns-BcWGUCk3.cjs} +2 -2
  9. package/dist/{blueprintFns-B0wbS9PN.js → blueprintFns-DpZo8T6u.js} +2 -2
  10. package/dist/{blueprintSketcher-DeQYScWX.cjs → blueprintSketcher-C9lVrRBr.cjs} +3 -3
  11. package/dist/{blueprintSketcher-DI_qQhBg.js → blueprintSketcher-HsSFy10k.js} +3 -3
  12. package/dist/{boolean2D-C-Azd06V.cjs → boolean2D-Bh07EPIS.cjs} +4 -4
  13. package/dist/{boolean2D-CdDn7AFp.js → boolean2D-CwFJsT_T.js} +4 -4
  14. package/dist/brepjs.cjs +36 -72
  15. package/dist/brepjs.js +36 -72
  16. package/dist/{cameraFns-CdPdw2Ma.cjs → cameraFns-BYBavyGz.cjs} +3 -3
  17. package/dist/{cameraFns-BqSTuHN2.js → cameraFns-CWS3e1p_.js} +3 -3
  18. package/dist/core.cjs +2 -2
  19. package/dist/core.js +2 -2
  20. package/dist/{cornerFinder-WICP_RPb.cjs → cornerFinder-B_6OVtcc.cjs} +1 -1
  21. package/dist/{cornerFinder-CBNgUcWy.js → cornerFinder-D5doC-g3.js} +1 -1
  22. package/dist/{curveFns-BtXR6kJ7.js → curveFns-CO0dlocY.js} +1 -1
  23. package/dist/{curveFns-BYcLLDAB.cjs → curveFns-dXPHWXhw.cjs} +1 -1
  24. package/dist/{drawFns-BAwR4uoC.js → drawFns-CVvt5Hmy.js} +12 -12
  25. package/dist/{drawFns-CYW65QTr.cjs → drawFns-C_dvmPvb.cjs} +12 -12
  26. package/dist/{faceFns-B5UiJH4H.cjs → faceFns-9lfp_6de.cjs} +2 -2
  27. package/dist/{faceFns-BfTHYEiw.js → faceFns-C-SjeGpG.js} +2 -2
  28. package/dist/{healingFns-DAVYFXVB.js → healingFns-BtrFRoK5.js} +4 -4
  29. package/dist/{healingFns-ChcvzVB8.cjs → healingFns-D4HAilgL.cjs} +4 -4
  30. package/dist/{helpers-CvwerZfP.js → helpers-BipNXMsi.js} +6 -6
  31. package/dist/{helpers-C9PIppuU.cjs → helpers-uUXFl5Pn.cjs} +6 -6
  32. package/dist/{importFns-Bt9YEImO.cjs → importFns-CCnECEQt.cjs} +2 -2
  33. package/dist/{importFns-DSY1pI70.js → importFns-lWFKWnCe.js} +2 -2
  34. package/dist/io.cjs +2 -2
  35. package/dist/io.js +2 -2
  36. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  37. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  38. package/dist/{loftFns-Bl8reWqk.js → loftFns-BNziMKOW.js} +1 -1
  39. package/dist/{loftFns-CdwKSxw1.cjs → loftFns-DUyKz3r7.cjs} +1 -1
  40. package/dist/{measureFns-DtiZvj_X.js → measureFns-D9lwC7kw.js} +3 -3
  41. package/dist/{measureFns-B-UbL3Rw.cjs → measureFns-K2jBIt9p.cjs} +3 -3
  42. package/dist/measurement.cjs +1 -1
  43. package/dist/measurement.js +1 -1
  44. package/dist/{meshFns-B461Ku2S.cjs → meshFns-D0JF9XF8.cjs} +3 -3
  45. package/dist/{meshFns-CqJScqWa.js → meshFns-D5_15Njg.js} +3 -3
  46. package/dist/{occtWasmAdapter-G8mkVxgw.cjs → occtWasmAdapter-BnMFWwNp.cjs} +18 -4
  47. package/dist/{occtWasmAdapter-Bzx2d8zN.js → occtWasmAdapter-Cu1SW10s.js} +18 -4
  48. package/dist/operations.cjs +2 -2
  49. package/dist/operations.js +2 -2
  50. package/dist/{originTrackingFns-BWA8gv5V.js → originTrackingFns-BZwAfjbF.js} +2 -2
  51. package/dist/{originTrackingFns-rh_FbN6R.cjs → originTrackingFns-BgWmLwox.cjs} +2 -2
  52. package/dist/{primitiveFns-BTxppy_Y.cjs → primitiveFns-B_09AGpd.cjs} +4 -4
  53. package/dist/{primitiveFns-C-p7jKZt.js → primitiveFns-p0NdUf-t.js} +4 -4
  54. package/dist/projection.cjs +1 -1
  55. package/dist/projection.js +1 -1
  56. package/dist/query.cjs +2 -2
  57. package/dist/query.js +2 -2
  58. package/dist/{refResolveFns-DEU2yvJU.cjs → refResolveFns-Cin3djM3.cjs} +6 -6
  59. package/dist/{refResolveFns-BPnjuRUW.js → refResolveFns-Dnc4_49q.js} +6 -6
  60. package/dist/{shapeFns-s6VgcNkU.js → shapeFns-BZnM8fRy.js} +2 -2
  61. package/dist/{shapeFns-xApQafn6.cjs → shapeFns-D65fk--y.cjs} +2 -2
  62. package/dist/shapeRef.cjs +1 -1
  63. package/dist/shapeRef.js +1 -1
  64. package/dist/{shapeTypes-Dz5JzlYx.cjs → shapeTypes-Dq5ylbmP.cjs} +1 -1
  65. package/dist/{shapeTypes-D3bntzog.js → shapeTypes-JD6SSVwZ.js} +1 -1
  66. package/dist/sketching.cjs +3 -3
  67. package/dist/sketching.js +3 -3
  68. package/dist/{solidBuilders-B3EZcVNw.cjs → solidBuilders-Bm4P-jGM.cjs} +5 -5
  69. package/dist/{solidBuilders-FOfRGZq0.js → solidBuilders-CIDWhMT6.js} +5 -5
  70. package/dist/{surfaceBuilders-Dcf7LRqM.js → surfaceBuilders-BC3swenJ.js} +3 -3
  71. package/dist/{surfaceBuilders-CVLhWPtB.cjs → surfaceBuilders-CxbTUaok.cjs} +3 -3
  72. package/dist/text.cjs +2 -2
  73. package/dist/text.js +2 -2
  74. package/dist/{textBlueprints-kwXeudLb.js → textBlueprints-75GTk1vk.js} +7 -7
  75. package/dist/{textBlueprints-hV1kO8tW.cjs → textBlueprints-D1OMdDIP.cjs} +7 -7
  76. package/dist/{textMetrics-BlhkYGHT.js → textMetrics-DCBkXf-H.js} +1 -1
  77. package/dist/{textMetrics-BmN3SBkI.cjs → textMetrics-J2bKijAB.cjs} +1 -1
  78. package/dist/{threadFns-Dd0C7WLp.cjs → threadFns-9Xvow5fk.cjs} +7 -7
  79. package/dist/{threadFns-CQErpnNd.js → threadFns-D55B4LJk.js} +7 -7
  80. package/dist/topology.cjs +9 -9
  81. package/dist/topology.js +9 -9
  82. package/dist/{topologyQueryFns-qvptbhqO.js → topologyQueryFns-G6xu8ExU.js} +1 -1
  83. package/dist/{topologyQueryFns-DzYSYw51.cjs → topologyQueryFns-nT3Ir1y-.cjs} +1 -1
  84. package/dist/{validityTypes-Beci6AC-.cjs → validityTypes-OvTu-S-y.cjs} +1 -1
  85. package/dist/{validityTypes-DF2h0WJo.js → validityTypes-seS7aZI9.js} +1 -1
  86. package/package.json +1 -1
package/dist/brepjs.js CHANGED
@@ -1,39 +1,39 @@
1
- import { $ as prewarm, A as is2D, B as withArenaCheckpoint, C as isSolid, E as getShapeKind, F as getDisposalStats, G as getActiveKernelId, H as withScopeResult, I as isLive, J as getKernelCapabilities, K as getKernel, M as DisposalScope, N as createHandle, O as as2D, P as createKernelHandle, Q as initFromOC, R as resetDisposalStats, S as isShell, T as isWire, U as withScopeResultAsync, V as withScope, W as _usingCtx, X as init, Y as getKernelTier, Z as initFromManifold, _ as isCompound, a as castShape3D, at as BrepkitAdapter, b as isShape1D, c as createEdge, ct as currentQuality, d as createSolid, et as registerKernel, f as createVertex, h as disposeResultShape, i as castShape, it as withTier, j as is3D, k as as3D, l as createFace, lt as qualityDeflection, n as castResultShape, nt as withKernel, ot as getPerformanceStats, p as createWire, q as getKernel2D, rt as withQuality, s as createCompound, st as resetPerformanceStats, tt as registerKernelTier, u as createShell, v as isEdge, w as isVertex, x as isShape3D, y as isFace } from "./shapeTypes-D3bntzog.js";
2
- import { A as EXACT_BREP_CAPABILITIES, k as DEFAULT_CAPABILITIES, t as OcctWasmAdapter } from "./occtWasmAdapter-Bzx2d8zN.js";
1
+ import { $ as prewarm, A as is2D, B as withArenaCheckpoint, C as isSolid, E as getShapeKind, F as getDisposalStats, G as getActiveKernelId, H as withScopeResult, I as isLive, J as getKernelCapabilities, K as getKernel, M as DisposalScope, N as createHandle, O as as2D, P as createKernelHandle, Q as initFromOC, R as resetDisposalStats, S as isShell, T as isWire, U as withScopeResultAsync, V as withScope, W as _usingCtx, X as init, Y as getKernelTier, Z as initFromManifold, _ as isCompound, a as castShape3D, at as BrepkitAdapter, b as isShape1D, c as createEdge, ct as currentQuality, d as createSolid, et as registerKernel, f as createVertex, h as disposeResultShape, i as castShape, it as withTier, j as is3D, k as as3D, l as createFace, lt as qualityDeflection, n as castResultShape, nt as withKernel, ot as getPerformanceStats, p as createWire, q as getKernel2D, rt as withQuality, s as createCompound, st as resetPerformanceStats, tt as registerKernelTier, u as createShell, v as isEdge, w as isVertex, x as isShape3D, y as isFace } from "./shapeTypes-JD6SSVwZ.js";
2
+ import { A as EXACT_BREP_CAPABILITIES, k as DEFAULT_CAPABILITIES, t as OcctWasmAdapter } from "./occtWasmAdapter-Cu1SW10s.js";
3
3
  import { i as wasmIndex, n as bug, t as BrepBugError } from "./bug-BdOHwn_e.js";
4
4
  import { A as tap, C as mapBoth, D as or, E as ok, F as unwrapErr, I as unwrapOr, L as unwrapOrElse, M as tryCatch, N as tryCatchAsync, O as orElse, P as unwrap, R as zip, S as map, T as match, _ as flatMap, a as moduleInitError, b as isErr, c as sketcherStateError, d as validationError, f as OK, g as err, h as collect, i as kernelError, j as tapErr, k as pipeline, l as typeCastError, m as andThen, n as computationError, o as queryError, p as all, r as ioError, t as BrepErrorCode, u as unsupportedError, v as flatten, w as mapErr, x as isOk, y as fromNullable } from "./errors-MHLiNE-C.js";
5
- import { C as vertexPosition, E as kernelCallScoped, T as kernelCallRaw, _ as iterFaces, a as getCachedSurfaceType, b as iterVertices, c as getFaces, d as getSolids, f as getVertices, g as iterEdges, h as iterCompSolids, m as invalidateShapeCache, n as getBounds, o as getCompSolids, p as getWires, s as getEdges, t as describe$1, u as getShells, v as iterShells, w as kernelCall, x as iterWires, y as iterSolids } from "./topologyQueryFns-qvptbhqO.js";
6
- import { a as isPlanarFace, c as manifoldShell, d as planarWire, f as validSolid, i as isOrientedFace, l as orientedFace, n as isClosedWire, o as isPlanarWire, r as isManifoldShell, s as isValidSolid, t as closedWire, u as planarFace } from "./validityTypes-DF2h0WJo.js";
5
+ import { C as vertexPosition, E as kernelCallScoped, T as kernelCallRaw, _ as iterFaces, a as getCachedSurfaceType, b as iterVertices, c as getFaces, d as getSolids, f as getVertices, g as iterEdges, h as iterCompSolids, m as invalidateShapeCache, n as getBounds, o as getCompSolids, p as getWires, s as getEdges, t as describe$1, u as getShells, v as iterShells, w as kernelCall, x as iterWires, y as iterSolids } from "./topologyQueryFns-G6xu8ExU.js";
6
+ import { a as isPlanarFace, c as manifoldShell, d as planarWire, f as validSolid, i as isOrientedFace, l as orientedFace, n as isClosedWire, o as isPlanarWire, r as isManifoldShell, s as isValidSolid, t as closedWire, u as planarFace } from "./validityTypes-seS7aZI9.js";
7
7
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
8
8
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-D24Y27N0.js";
9
9
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-SKPRvPH-.js";
10
10
  import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-CQahLrCx.js";
11
- import { C as shapeType, S as iterTopo, _ as cast, a as faceOrientation, b as fromBREP, 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, x as isCompSolid, y as downcast } from "./faceFns-BfTHYEiw.js";
12
- import { i as setShapeOrigin, t as getFaceOrigins } from "./originTrackingFns-BWA8gv5V.js";
13
- import { A as parseColor, D as colorShape, E as colorFaces, F as tagFaces, M as getFaceTags, N as getTagMetadata, O as getFaceColor, P as setTagMetadata, S as hasAnyMetadata, T as propagateMetadataThroughRelocation, _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, j as findFacesByTag, k as getShapeColor, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-FOfRGZq0.js";
14
- import { A as locate$1, C as threePointArc, D as wireLoop, E as wire, F as transformCopy$1, I as translate$2, M as resize, N as rotate$2, O as applyMatrix$1, P as scale$3, 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, j as mirror$2, k as composeTransforms, 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-C-p7jKZt.js";
15
- import { a as isSameShape, i as isEqualShape, n as getHashCode, o as simplify$1, r as isEmpty$2, s as toBREP$1, t as clone$1 } from "./shapeFns-s6VgcNkU.js";
16
- 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-BtXR6kJ7.js";
17
- import { a as meshEdges$1, c as meshMultiLOD, d as createMeshCache, i as mesh$1, l as buildMeshCacheKey, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as clearMeshCache } from "./meshFns-CqJScqWa.js";
11
+ import { C as shapeType, S as iterTopo, _ as cast, a as faceOrientation, b as fromBREP, 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, x as isCompSolid, y as downcast } from "./faceFns-C-SjeGpG.js";
12
+ import { i as setShapeOrigin, t as getFaceOrigins } from "./originTrackingFns-BZwAfjbF.js";
13
+ import { A as parseColor, D as colorShape, E as colorFaces, F as tagFaces, M as getFaceTags, N as getTagMetadata, O as getFaceColor, P as setTagMetadata, S as hasAnyMetadata, T as propagateMetadataThroughRelocation, _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, j as findFacesByTag, k as getShapeColor, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-CIDWhMT6.js";
14
+ import { A as locate$1, C as threePointArc, D as wireLoop, E as wire, F as transformCopy$1, I as translate$2, M as resize, N as rotate$2, O as applyMatrix$1, P as scale$3, 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, j as mirror$2, k as composeTransforms, 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-p0NdUf-t.js";
15
+ import { a as isSameShape, i as isEqualShape, n as getHashCode, o as simplify$1, r as isEmpty$2, s as toBREP$1, t as clone$1 } from "./shapeFns-BZnM8fRy.js";
16
+ 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-CO0dlocY.js";
17
+ import { a as meshEdges$1, c as meshMultiLOD, d as createMeshCache, i as mesh$1, l as buildMeshCacheKey, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as clearMeshCache } from "./meshFns-D5_15Njg.js";
18
18
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
19
- import { _ as makeThreePointArc, d as makeCircle, h as makeLine, l as makeBSplineInterpolation, n as fill, p as makeEllipseArc, r as makeFace, s as assembleWire, u as makeBezierCurve } from "./surfaceBuilders-Dcf7LRqM.js";
20
- import { A as toBufferGeometryData, C as chamfer$2, D as shell$2, E as offset$1, M as toLODGeometryData, N as toLODGeometryLevels, O as thicken$1, P as toLineGeometryData, S as chamferDistAngle, T as fillet$2, _ as checkBoolean, a as healFace, b as getNurbsCurveData, c as isValid$1, d as chamferWithEvolution, f as cutWithEvolution, g as shellWithEvolution, h as intersectWithEvolution, i as heal$1, j as toGroupedBufferGeometryData, k as variableFillet, l as solidFromShell, m as fuseWithEvolution, n as fixSelfIntersection, o as healSolid, p as filletWithEvolution, r as fixShape, s as healWire, t as autoHeal, u as positionOnCurve, v as cutAllBisect, w as draft$1, x as getNurbsSurfaceData, y as fuseAllBisect } from "./healingFns-DAVYFXVB.js";
21
- import { A as setJointValue, B as walkAssembly, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as countNodes, G as quatFromAxisAngle, H as circularPattern, I as createAssemblyNode, J as quatRotate, K as quatFromTo, L as findNode, M as sphericalJoint, N as addChild, O as prismaticJoint, P as collectShapes, R as removeChild, S as addJoint, T as jointTransform, U as gridPattern, V as exportAssemblySTEP, W as linearPattern, 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 quatMultiply, 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 updateNode } from "./threadFns-CQErpnNd.js";
22
- import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-DI_qQhBg.js";
23
- import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-CvwerZfP.js";
24
- import { g as approximateAsSvgCompatibleCurve } from "./blueprint-BzDq9Rfb.js";
25
- 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-BAwR4uoC.js";
26
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-DtiZvj_X.js";
27
- import { t as cornerFinder } from "./cornerFinder-CBNgUcWy.js";
28
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CdDn7AFp.js";
29
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-B0wbS9PN.js";
30
- 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-DSY1pI70.js";
31
- import { a as multiSectionSweep, c as twistExtrude, i as guidedSweep, n as loftAll, o as supportExtrude, r as complexExtrude, s as sweep$1, t as loft$2 } from "./loftFns-Bl8reWqk.js";
32
- import { a as Sketch, b as extrudeAll, 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, x as revolve$2, y as extrude$2 } from "./textBlueprints-kwXeudLb.js";
33
- 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-BPnjuRUW.js";
34
- import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, l as wiresOfFace, n as adjacentFaces, o as sharedEdges, r as edgesOfFace, s as verticesOfEdge } from "./adjacencyFns-BMgFDWFO.js";
35
- import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-BqSTuHN2.js";
36
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-BlhkYGHT.js";
19
+ import { _ as makeThreePointArc, d as makeCircle, h as makeLine, l as makeBSplineInterpolation, n as fill, p as makeEllipseArc, r as makeFace, s as assembleWire, u as makeBezierCurve } from "./surfaceBuilders-BC3swenJ.js";
20
+ import { A as toBufferGeometryData, C as chamfer$2, D as shell$2, E as offset$1, M as toLODGeometryData, N as toLODGeometryLevels, O as thicken$1, P as toLineGeometryData, S as chamferDistAngle, T as fillet$2, _ as checkBoolean, a as healFace, b as getNurbsCurveData, c as isValid$1, d as chamferWithEvolution, f as cutWithEvolution, g as shellWithEvolution, h as intersectWithEvolution, i as heal$1, j as toGroupedBufferGeometryData, k as variableFillet, l as solidFromShell, m as fuseWithEvolution, n as fixSelfIntersection, o as healSolid, p as filletWithEvolution, r as fixShape, s as healWire, t as autoHeal, u as positionOnCurve, v as cutAllBisect, w as draft$1, x as getNurbsSurfaceData, y as fuseAllBisect } from "./healingFns-BtrFRoK5.js";
21
+ import { A as setJointValue, B as walkAssembly, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as countNodes, G as quatFromAxisAngle, H as circularPattern, I as createAssemblyNode, J as quatRotate, K as quatFromTo, L as findNode, M as sphericalJoint, N as addChild, O as prismaticJoint, P as collectShapes, R as removeChild, S as addJoint, T as jointTransform, U as gridPattern, V as exportAssemblySTEP, W as linearPattern, 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 quatMultiply, 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 updateNode } from "./threadFns-D55B4LJk.js";
22
+ import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-HsSFy10k.js";
23
+ import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-BipNXMsi.js";
24
+ import { _ as approximateAsSvgCompatibleCurve, o as ellipseArcFlags } from "./blueprint-Be2V1tdb.js";
25
+ 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-CVvt5Hmy.js";
26
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-D9lwC7kw.js";
27
+ import { t as cornerFinder } from "./cornerFinder-D5doC-g3.js";
28
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CwFJsT_T.js";
29
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-DpZo8T6u.js";
30
+ 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-lWFKWnCe.js";
31
+ import { a as multiSectionSweep, c as twistExtrude, i as guidedSweep, n as loftAll, o as supportExtrude, r as complexExtrude, s as sweep$1, t as loft$2 } from "./loftFns-BNziMKOW.js";
32
+ import { a as Sketch, b as extrudeAll, 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, x as revolve$2, y as extrude$2 } from "./textBlueprints-75GTk1vk.js";
33
+ 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-Dnc4_49q.js";
34
+ import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, l as wiresOfFace, n as adjacentFaces, o as sharedEdges, r as edgesOfFace, s as verticesOfEdge } from "./adjacencyFns-ChpKOdJX.js";
35
+ import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-CWS3e1p_.js";
36
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-DCBkXf-H.js";
37
37
  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";
38
38
  //#region \0rolldown/runtime.js
39
39
  var __defProp = Object.defineProperty;
@@ -4764,51 +4764,15 @@ function threePointsToArc(from, mid, to) {
4764
4764
  clockwise
4765
4765
  }));
4766
4766
  }
4767
- function rotInto(p, phi) {
4768
- const c = Math.cos(phi);
4769
- const s = Math.sin(phi);
4770
- return [c * p[0] + s * p[1], -s * p[0] + c * p[1]];
4771
- }
4772
- /** Endpoint-parametrized ellipse-arc flags via SVG F.6.5 candidate centers,
4773
- * disambiguated by an on-arc interior sample. */
4767
+ /** Endpoint-parametrized ellipse-arc flags via SVG F.6.5 candidate centers
4768
+ * (shared with the SVG emitter), disambiguated by an on-arc interior sample. */
4774
4769
  function ellipseArcSegment(from, to, mid, frame) {
4775
- let { a, b } = frame;
4776
- const phi = frame.phi;
4777
- const f = rotInto(from, phi);
4778
- const l = rotInto(to, phi);
4779
- const m = rotInto(mid, phi);
4780
- const hx = (f[0] - l[0]) / 2;
4781
- const hy = (f[1] - l[1]) / 2;
4782
- const lam = hx * hx / (a * a) + hy * hy / (b * b);
4783
- if (lam > 1) {
4784
- const s = Math.sqrt(lam);
4785
- a *= s;
4786
- b *= s;
4787
- }
4788
- const num = a * a * b * b - a * a * hy * hy - b * b * hx * hx;
4789
- const den = a * a * hy * hy + b * b * hx * hx;
4790
- if (den < 1e-12) return fail("ellipse: coincident endpoints");
4791
- const coef = Math.sqrt(Math.max(0, num / den));
4792
- const mx = (f[0] + l[0]) / 2;
4793
- const my = (f[1] + l[1]) / 2;
4794
- const candidates = [[mx + coef * a * hy / b, my - coef * b * hx / a], [mx - coef * a * hy / b, my + coef * b * hx / a]];
4795
- const residual = (c) => {
4796
- const dx = (m[0] - c[0]) / a;
4797
- const dy = (m[1] - c[1]) / b;
4798
- return Math.abs(dx * dx + dy * dy - 1);
4799
- };
4800
- const center = residual(candidates[0]) <= residual(candidates[1]) ? candidates[0] : candidates[1];
4801
- const theta = (p) => Math.atan2((p[1] - center[1]) / b, (p[0] - center[0]) / a);
4802
- const tau = 2 * Math.PI;
4803
- const tf = theta(f);
4804
- const tm = ((theta(m) - tf) % tau + tau) % tau;
4805
- const tl = ((theta(l) - tf) % tau + tau) % tau;
4806
- const ccw = tm < tl;
4807
- const sweep = ccw ? tl : tau - tl;
4770
+ const flags = ellipseArcFlags(from, to, mid, frame.a, frame.b, frame.phi);
4771
+ if (!flags) return fail("ellipse: coincident endpoints");
4808
4772
  return ok(ellipseArcTo(to, [frame.a, frame.b], {
4809
- rotation: phi * 180 / Math.PI,
4810
- largeArc: sweep > Math.PI,
4811
- clockwise: !ccw
4773
+ rotation: frame.phi * 180 / Math.PI,
4774
+ largeArc: flags.largeArc,
4775
+ clockwise: !flags.ccw
4812
4776
  }));
4813
4777
  }
4814
4778
  /** A closed CIRCLE/ELLIPSE curve becomes two half segments between antipodal
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
4
4
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
5
- const require_shapeFns = require("./shapeFns-xApQafn6.cjs");
5
+ const require_shapeFns = require("./shapeFns-D65fk--y.cjs");
6
6
  //#region src/projection/projectionPlanes.ts
7
7
  /** Lookup table mapping each {@link ProjectionPlane} to its camera configuration. */
8
8
  var PROJECTION_PLANES = {
@@ -1,8 +1,8 @@
1
- import { K as getKernel, W as _usingCtx, n as castResultShape } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, W as _usingCtx, n as castResultShape } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, P as unwrap, d as validationError, g as err } from "./errors-MHLiNE-C.js";
3
- import { s as getEdges } from "./topologyQueryFns-qvptbhqO.js";
3
+ import { s as getEdges } from "./topologyQueryFns-G6xu8ExU.js";
4
4
  import { c as vecLength, d as vecNormalize, g as vecSub, r as vecCross } from "./vecOps-SKPRvPH-.js";
5
- import { t as clone } from "./shapeFns-s6VgcNkU.js";
5
+ import { t as clone } from "./shapeFns-BZnM8fRy.js";
6
6
  //#region src/projection/projectionPlanes.ts
7
7
  /** Lookup table mapping each {@link ProjectionPlane} to its camera configuration. */
8
8
  var PROJECTION_PLANES = {
package/dist/core.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
3
3
  const require_bug = require("./bug-O02CsAmt.cjs");
4
4
  const require_errors = require("./errors-RHkKO5bZ.cjs");
5
- const require_validityTypes = require("./validityTypes-Beci6AC-.cjs");
5
+ const require_validityTypes = require("./validityTypes-OvTu-S-y.cjs");
6
6
  const require_constants = require("./constants-BOVyEYGH.cjs");
7
7
  const require_types = require("./types-KjA8tY4Y.cjs");
8
8
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
package/dist/core.js CHANGED
@@ -1,7 +1,7 @@
1
- import { A as is2D, C as isSolid, E as getShapeKind, H as withScopeResult, I as isLive, M as DisposalScope, N as createHandle, P as createKernelHandle, S as isShell, T as isWire, U as withScopeResultAsync, V as withScope, _ as isCompound, b as isShape1D, i as castShape, j as is3D, v as isEdge, w as isVertex, x as isShape3D, y as isFace } from "./shapeTypes-D3bntzog.js";
1
+ import { A as is2D, C as isSolid, E as getShapeKind, H as withScopeResult, I as isLive, M as DisposalScope, N as createHandle, P as createKernelHandle, S as isShell, T as isWire, U as withScopeResultAsync, V as withScope, _ as isCompound, b as isShape1D, i as castShape, j as is3D, v as isEdge, w as isVertex, x as isShape3D, y as isFace } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { n as bug, t as BrepBugError } from "./bug-BdOHwn_e.js";
3
3
  import { E as ok, F as unwrapErr, I as unwrapOr, L as unwrapOrElse, M as tryCatch, N as tryCatchAsync, P as unwrap, S as map, T as match, _ as flatMap, a as moduleInitError, b as isErr, c as sketcherStateError, d as validationError, f as OK, g as err, h as collect, i as kernelError, l as typeCastError, m as andThen, n as computationError, o as queryError, r as ioError, u as unsupportedError, w as mapErr, x as isOk } from "./errors-MHLiNE-C.js";
4
- import { c as manifoldShell, f as validSolid, i as isOrientedFace, l as orientedFace, n as isClosedWire, r as isManifoldShell, s as isValidSolid, t as closedWire } from "./validityTypes-DF2h0WJo.js";
4
+ import { c as manifoldShell, f as validSolid, i as isOrientedFace, l as orientedFace, n as isClosedWire, r as isManifoldShell, s as isValidSolid, t as closedWire } from "./validityTypes-seS7aZI9.js";
5
5
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
6
6
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-D24Y27N0.js";
7
7
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-SKPRvPH-.js";
@@ -1,6 +1,6 @@
1
1
  const require_constants = require("./constants-BOVyEYGH.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
3
- const require_helpers = require("./helpers-C9PIppuU.cjs");
3
+ const require_helpers = require("./helpers-uUXFl5Pn.cjs");
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,6 +1,6 @@
1
1
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
3
- import { p as distance2d, u as angle2d, v as samePoint } from "./helpers-CvwerZfP.js";
3
+ import { p as distance2d, u as angle2d, v as samePoint } from "./helpers-BipNXMsi.js";
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,4 +1,4 @@
1
- import { K as getKernel, T as isWire, h as disposeResultShape, n as castResultShape, v as isEdge } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, T as isWire, h as disposeResultShape, n as castResultShape, v as isEdge } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, g as err, l as typeCastError } from "./errors-MHLiNE-C.js";
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
3
  //#region src/topology/curveFns.ts
4
4
  /**
@@ -1,22 +1,22 @@
1
- import { K as getKernel, M as DisposalScope, W as _usingCtx, c as createEdge, l as createFace, p as createWire } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, M as DisposalScope, W as _usingCtx, c as createEdge, l as createFace, p as createWire } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { i as wasmIndex, n as bug } from "./bug-BdOHwn_e.js";
3
3
  import { P as unwrap, s as safeIndex } from "./errors-MHLiNE-C.js";
4
- import { s as getEdges } from "./topologyQueryFns-qvptbhqO.js";
4
+ import { s as getEdges } from "./topologyQueryFns-G6xu8ExU.js";
5
5
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
6
6
  import { r as toVec3 } from "./types-D24Y27N0.js";
7
7
  import { d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-SKPRvPH-.js";
8
8
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-CQahLrCx.js";
9
- import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as copyShape, y as downcast } from "./faceFns-BfTHYEiw.js";
10
- import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-BtXR6kJ7.js";
9
+ import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as copyShape, y as downcast } from "./faceFns-C-SjeGpG.js";
10
+ import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-CO0dlocY.js";
11
11
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
12
- import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-Dcf7LRqM.js";
13
- import { a as Blueprints, c as make2dOffset, i as CompoundBlueprint, l as intersectCurves, n as BaseSketcher2d, o as chamferCurves, s as filletCurves, u as Flatbush } from "./blueprintSketcher-DI_qQhBg.js";
14
- import { b as squareDistance2d, l as add2d, s as PRECISION_OFFSET, v as samePoint$1, x as subtract2d } from "./helpers-CvwerZfP.js";
15
- import { _ as Curve2D, a as edgeToCurve, b as BoundingBox2d, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D } from "./blueprint-BzDq9Rfb.js";
16
- import { t as cornerFinder } from "./cornerFinder-CBNgUcWy.js";
17
- import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CdDn7AFp.js";
18
- import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-kwXeudLb.js";
19
- import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-BqSTuHN2.js";
12
+ import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-BC3swenJ.js";
13
+ import { a as Blueprints, c as make2dOffset, i as CompoundBlueprint, l as intersectCurves, n as BaseSketcher2d, o as chamferCurves, s as filletCurves, u as Flatbush } from "./blueprintSketcher-HsSFy10k.js";
14
+ import { b as squareDistance2d, l as add2d, s as PRECISION_OFFSET, v as samePoint$1, x as subtract2d } from "./helpers-BipNXMsi.js";
15
+ import { _ as approximateAsSvgCompatibleCurve, a as edgeToCurve, f as make2dInerpolatedBSplineCurve, i as curvesAsEdgesOnPlane, l as make2dCircle, p as make2dSegmentCurve, s as make2dArcFromCenter, t as Blueprint, u as make2dEllipse, v as Curve2D, x as BoundingBox2d, y as deserializeCurve2D } from "./blueprint-Be2V1tdb.js";
16
+ import { t as cornerFinder } from "./cornerFinder-D5doC-g3.js";
17
+ import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CwFJsT_T.js";
18
+ import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-75GTk1vk.js";
19
+ import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-CWS3e1p_.js";
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**
22
22
  * Group a flat list of curves into connected chains by matching endpoints.
@@ -1,22 +1,22 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_bug = require("./bug-O02CsAmt.cjs");
3
3
  const require_errors = require("./errors-RHkKO5bZ.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
5
5
  const require_constants = require("./constants-BOVyEYGH.cjs");
6
6
  const require_types = require("./types-KjA8tY4Y.cjs");
7
7
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
8
8
  const require_planeOps = require("./planeOps-VlFxtvzY.cjs");
9
- const require_faceFns = require("./faceFns-B5UiJH4H.cjs");
10
- const require_curveFns = require("./curveFns-BYcLLDAB.cjs");
9
+ const require_faceFns = require("./faceFns-9lfp_6de.cjs");
10
+ const require_curveFns = require("./curveFns-dXPHWXhw.cjs");
11
11
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
12
- const require_surfaceBuilders = require("./surfaceBuilders-CVLhWPtB.cjs");
13
- const require_blueprintSketcher = require("./blueprintSketcher-DeQYScWX.cjs");
14
- const require_helpers = require("./helpers-C9PIppuU.cjs");
15
- const require_blueprint = require("./blueprint-CdOcvuG4.cjs");
16
- const require_cornerFinder = require("./cornerFinder-WICP_RPb.cjs");
17
- const require_boolean2D = require("./boolean2D-C-Azd06V.cjs");
18
- const require_textBlueprints = require("./textBlueprints-hV1kO8tW.cjs");
19
- const require_cameraFns = require("./cameraFns-CdPdw2Ma.cjs");
12
+ const require_surfaceBuilders = require("./surfaceBuilders-CxbTUaok.cjs");
13
+ const require_blueprintSketcher = require("./blueprintSketcher-C9lVrRBr.cjs");
14
+ const require_helpers = require("./helpers-uUXFl5Pn.cjs");
15
+ const require_blueprint = require("./blueprint-SQlROOFK.cjs");
16
+ const require_cornerFinder = require("./cornerFinder-B_6OVtcc.cjs");
17
+ const require_boolean2D = require("./boolean2D-Bh07EPIS.cjs");
18
+ const require_textBlueprints = require("./textBlueprints-D1OMdDIP.cjs");
19
+ const require_cameraFns = require("./cameraFns-BYBavyGz.cjs");
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**
22
22
  * Group a flat list of curves into connected chains by matching endpoints.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
4
4
  const require_types = require("./types-KjA8tY4Y.cjs");
5
5
  //#region src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,6 +1,6 @@
1
- import { K as getKernel, i as castShape } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, i as castShape } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, P as unwrap, g as err, l as typeCastError } from "./errors-MHLiNE-C.js";
3
- import { a as getCachedSurfaceType } from "./topologyQueryFns-qvptbhqO.js";
3
+ import { a as getCachedSurfaceType } from "./topologyQueryFns-G6xu8ExU.js";
4
4
  import { r as toVec3 } from "./types-D24Y27N0.js";
5
5
  //#region src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,9 +1,9 @@
1
- import { C as isSolid, E as getShapeKind, K as getKernel, T as isWire, h as disposeResultShape, i as castShape, m as disposeDowncastSource, n as castResultShape, x as isShape3D, y as isFace } from "./shapeTypes-D3bntzog.js";
1
+ import { C as isSolid, E as getShapeKind, K as getKernel, T as isWire, h as disposeResultShape, i as castShape, m as disposeDowncastSource, n as castResultShape, x as isShape3D, y as isFace } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, t as BrepErrorCode, x as isOk } from "./errors-MHLiNE-C.js";
3
- import { c as getFaces, i as getCachedIsValid, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-qvptbhqO.js";
3
+ import { c as getFaces, i as getCachedIsValid, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-G6xu8ExU.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
5
- import { y as downcast } from "./faceFns-BfTHYEiw.js";
6
- import { C as propagateAllMetadata, f as cut, h as fuseAll, m as fuse, p as cutAll, x as collectInputFaceHashes } from "./solidBuilders-FOfRGZq0.js";
5
+ import { y as downcast } from "./faceFns-C-SjeGpG.js";
6
+ import { C as propagateAllMetadata, f as cut, h as fuseAll, m as fuse, p as cutAll, x as collectInputFaceHashes } from "./solidBuilders-CIDWhMT6.js";
7
7
  import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
8
8
  //#region src/topology/threeHelpers.ts
9
9
  /**
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
- const require_faceFns = require("./faceFns-B5UiJH4H.cjs");
6
- const require_solidBuilders = require("./solidBuilders-B3EZcVNw.cjs");
5
+ const require_faceFns = require("./faceFns-9lfp_6de.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-Bm4P-jGM.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
8
8
  //#region src/topology/threeHelpers.ts
9
9
  /**
@@ -1,12 +1,12 @@
1
- import { K as getKernel, y as isFace } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, y as isFace } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, g as err, o as queryError, x as isOk } from "./errors-MHLiNE-C.js";
3
- import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-qvptbhqO.js";
3
+ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-G6xu8ExU.js";
4
4
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-SKPRvPH-.js";
6
- import { l as normalAt, s as getSurfaceType } from "./faceFns-BfTHYEiw.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-s6VgcNkU.js";
8
- import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-BtXR6kJ7.js";
9
- import { n as measureArea } from "./measureFns-DtiZvj_X.js";
6
+ import { l as normalAt, s as getSurfaceType } from "./faceFns-C-SjeGpG.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-BZnM8fRy.js";
8
+ import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-CO0dlocY.js";
9
+ import { n as measureArea } from "./measureFns-D9lwC7kw.js";
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
- const require_faceFns = require("./faceFns-B5UiJH4H.cjs");
7
- const require_shapeFns = require("./shapeFns-xApQafn6.cjs");
8
- const require_curveFns = require("./curveFns-BYcLLDAB.cjs");
9
- const require_measureFns = require("./measureFns-B-UbL3Rw.cjs");
6
+ const require_faceFns = require("./faceFns-9lfp_6de.cjs");
7
+ const require_shapeFns = require("./shapeFns-D65fk--y.cjs");
8
+ const require_curveFns = require("./curveFns-dXPHWXhw.cjs");
9
+ const require_measureFns = require("./measureFns-K2jBIt9p.cjs");
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_bug = require("./bug-O02CsAmt.cjs");
3
3
  const require_errors = require("./errors-RHkKO5bZ.cjs");
4
4
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
5
- const require_blueprint = require("./blueprint-CdOcvuG4.cjs");
5
+ const require_blueprint = require("./blueprint-SQlROOFK.cjs");
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
@@ -1,8 +1,8 @@
1
- import { K as getKernel, n as castResultShape } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, n as castResultShape } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { i as wasmIndex, r as vec3At$1 } from "./bug-BdOHwn_e.js";
3
3
  import { E as ok, g as err, r as ioError, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
4
4
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
5
- import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-BzDq9Rfb.js";
5
+ import { c as make2dBezierCurve, h as make2dThreePointArc, p as make2dSegmentCurve, t as Blueprint } from "./blueprint-Be2V1tdb.js";
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-B461Ku2S.cjs");
3
- const require_importFns = require("./importFns-Bt9YEImO.cjs");
2
+ const require_meshFns = require("./meshFns-D0JF9XF8.cjs");
3
+ const require_importFns = require("./importFns-CCnECEQt.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
6
6
  exports.exportGlb = require_importFns.exportGlb;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-CqJScqWa.js";
2
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-DSY1pI70.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-D5_15Njg.js";
2
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-lWFKWnCe.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_occtWasmAdapter = require("../../occtWasmAdapter-G8mkVxgw.cjs");
2
+ const require_occtWasmAdapter = require("../../occtWasmAdapter-BnMFWwNp.cjs");
3
3
  exports.OcctWasmAdapter = require_occtWasmAdapter.OcctWasmAdapter;
@@ -1,2 +1,2 @@
1
- import { t as OcctWasmAdapter } from "../../occtWasmAdapter-Bzx2d8zN.js";
1
+ import { t as OcctWasmAdapter } from "../../occtWasmAdapter-Cu1SW10s.js";
2
2
  export { OcctWasmAdapter };
@@ -1,4 +1,4 @@
1
- import { K as getKernel, T as isWire, W as _usingCtx, h as disposeResultShape, n as castResultShape, x as isShape3D } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, T as isWire, W as _usingCtx, h as disposeResultShape, n as castResultShape, x as isShape3D } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
3
3
  import { r as toVec3 } from "./types-D24Y27N0.js";
4
4
  import { c as vecLength, t as vecAdd } from "./vecOps-SKPRvPH-.js";
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
3
  const require_types = require("./types-KjA8tY4Y.cjs");
4
4
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
@@ -1,7 +1,7 @@
1
- import { K as getKernel } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, d as validationError, g as err, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
3
- import { T as kernelCallRaw } from "./topologyQueryFns-qvptbhqO.js";
4
- import { m as uvBounds } from "./faceFns-BfTHYEiw.js";
3
+ import { T as kernelCallRaw } from "./topologyQueryFns-G6xu8ExU.js";
4
+ import { m as uvBounds } from "./faceFns-C-SjeGpG.js";
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
4
- const require_faceFns = require("./faceFns-B5UiJH4H.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
4
+ const require_faceFns = require("./faceFns-9lfp_6de.cjs");
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-B-UbL3Rw.cjs");
2
+ const require_measureFns = require("./measureFns-K2jBIt9p.cjs");
3
3
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
4
4
  exports.measureArea = require_measureFns.measureArea;
5
5
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,2 +1,2 @@
1
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-DtiZvj_X.js";
1
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-D9lwC7kw.js";
2
2
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-Dz5JzlYx.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-Dq5ylbmP.cjs");
2
2
  const require_errors = require("./errors-RHkKO5bZ.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-DzYSYw51.cjs");
4
- const require_originTrackingFns = require("./originTrackingFns-rh_FbN6R.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-nT3Ir1y-.cjs");
4
+ const require_originTrackingFns = require("./originTrackingFns-BgWmLwox.cjs");
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,7 +1,7 @@
1
- import { K as getKernel, lt as qualityDeflection } from "./shapeTypes-D3bntzog.js";
1
+ import { K as getKernel, lt as qualityDeflection } from "./shapeTypes-JD6SSVwZ.js";
2
2
  import { E as ok, g as err, r as ioError } from "./errors-MHLiNE-C.js";
3
- import { d as getSolids, n as getBounds } from "./topologyQueryFns-qvptbhqO.js";
4
- import { t as getFaceOrigins } from "./originTrackingFns-BWA8gv5V.js";
3
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-G6xu8ExU.js";
4
+ import { t as getFaceOrigins } from "./originTrackingFns-BZwAfjbF.js";
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -3951,11 +3951,25 @@ function makeEllipse2d(cx, cy, majorRadius, minorRadius, xDirX, xDirY, sense) {
3951
3951
  return c2dWrap(makeEllipse2d$1(cx, cy, majorRadius, minorRadius, xDirX ?? 1, xDirY ?? 0, sense ?? true));
3952
3952
  }
3953
3953
  function makeEllipseArc2d(cx, cy, majorRadius, minorRadius, startAngle, endAngle, xDirX, xDirY, sense) {
3954
+ const full = makeEllipse2d$1(cx, cy, majorRadius, minorRadius, xDirX ?? 1, xDirY ?? 0, sense ?? true);
3955
+ if (!(sense ?? true)) {
3956
+ const tStart = -startAngle;
3957
+ let tEnd = -endAngle;
3958
+ if (tEnd < tStart - 1e-9) tEnd += 2 * Math.PI;
3959
+ return c2dWrap({
3960
+ __bk2d: "trimmed",
3961
+ basis: full,
3962
+ tStart,
3963
+ tEnd
3964
+ });
3965
+ }
3966
+ let tEnd = endAngle;
3967
+ if (tEnd < startAngle - 1e-9) tEnd += 2 * Math.PI;
3954
3968
  return c2dWrap({
3955
- ...makeEllipse2d$1(cx, cy, majorRadius, minorRadius, xDirX ?? 1, xDirY ?? 0, sense ?? true),
3956
- __bk2d: "ellipse",
3957
- startAngle,
3958
- endAngle
3969
+ __bk2d: "trimmed",
3970
+ basis: full,
3971
+ tStart: startAngle,
3972
+ tEnd
3959
3973
  });
3960
3974
  }
3961
3975
  function makeBezier2d(points) {