brepjs 20.12.6 → 20.12.7
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/2d/blueprints/booleanHelpers.d.ts +0 -5
- package/dist/2d/blueprints/intersectionSegments.d.ts +6 -5
- package/dist/2d.cjs +6 -6
- package/dist/2d.js +6 -6
- package/dist/{adjacencyFns--KmBIKYJ.js → adjacencyFns-hMihivxC.js} +3 -3
- package/dist/{adjacencyFns-BFJfaUwX.cjs → adjacencyFns-mMmTBUBY.cjs} +3 -3
- package/dist/{blueprint-D83DDDPb.cjs → blueprint-17RUHsoP.cjs} +5 -5
- package/dist/{blueprint-BhIk9Pvm.js → blueprint-BS50D3J_.js} +5 -5
- package/dist/{blueprintFns-C4TQn-x_.cjs → blueprintFns-Dw5_4_Bk.cjs} +2 -2
- package/dist/{blueprintFns-eULVgkq9.js → blueprintFns-zy5lo2IF.js} +2 -2
- package/dist/{blueprintSketcher-Di376t-0.cjs → blueprintSketcher-BG--DxWB.cjs} +3 -3
- package/dist/{blueprintSketcher-D_Faf0GO.js → blueprintSketcher-C1WCI6E0.js} +3 -3
- package/dist/{boolean2D-CNZFI_y8.cjs → boolean2D-7SQ3B0pC.cjs} +42 -50
- package/dist/{boolean2D-DqpCF72W.js → boolean2D-CsdyfjFE.js} +42 -50
- package/dist/brepjs.cjs +30 -30
- package/dist/brepjs.js +30 -30
- package/dist/{cameraFns-RqraCXIc.cjs → cameraFns-BAtzhCYM.cjs} +3 -3
- package/dist/{cameraFns-CrClIkmV.js → cameraFns-BVWyAscu.js} +3 -3
- package/dist/core.cjs +2 -2
- package/dist/core.js +2 -2
- package/dist/{cornerFinder-BZuQkRp2.js → cornerFinder-Dv_2rmaY.js} +1 -1
- package/dist/{cornerFinder-CdOe1Wrb.cjs → cornerFinder-e4Wc7_yp.cjs} +1 -1
- package/dist/{curveFns-CyIvQNYT.cjs → curveFns-BAM7QHrP.cjs} +1 -1
- package/dist/{curveFns-BP3srCfK.js → curveFns-CEI-rouh.js} +1 -1
- package/dist/{drawFns-DxDwJ5zZ.js → drawFns-Cl1i8B_B.js} +12 -12
- package/dist/{drawFns-71cOhWD-.cjs → drawFns-d-RvC6u6.cjs} +12 -12
- package/dist/{faceFns-B7MiDYj1.cjs → faceFns-C-2ttg8X.cjs} +2 -2
- package/dist/{faceFns-iVPbTxki.js → faceFns-Q87HCJrp.js} +2 -2
- package/dist/{healingFns-BhP8zfp1.js → healingFns-Cm4NkKD8.js} +5 -5
- package/dist/{healingFns-DWljGTNR.cjs → healingFns-DZkO5okn.cjs} +5 -5
- package/dist/{helpers-DKEVm6Hu.cjs → helpers-BdGGaLhF.cjs} +6 -6
- package/dist/{helpers-D2hANLRu.js → helpers-DpGcM2qZ.js} +6 -6
- package/dist/{importFns-DUzIkns7.js → importFns-Bp-p0jiP.js} +2 -2
- package/dist/{importFns-KEPAgbjj.cjs → importFns-DLiP26NW.cjs} +2 -2
- package/dist/io.cjs +2 -2
- package/dist/io.js +2 -2
- package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
- package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
- package/dist/{loftFns-D5AvfCGG.cjs → loftFns-DGV1z2NJ.cjs} +1 -1
- package/dist/{loftFns-D5NJpHLZ.js → loftFns-DQ7Z29n3.js} +1 -1
- package/dist/{measureFns-CZHNWkiA.cjs → measureFns-BdSjw5fr.cjs} +3 -3
- package/dist/{measureFns-mxBdPiWa.js → measureFns-BrdCH4cH.js} +3 -3
- package/dist/measurement.cjs +2 -2
- package/dist/measurement.js +2 -2
- package/dist/{meshFns-Czlt-GBJ.cjs → meshFns-BeubBqEI.cjs} +3 -3
- package/dist/{meshFns-DmjMzNbH.js → meshFns-UE8tByyw.js} +3 -3
- package/dist/{occtWasmAdapter-DVxLkjlJ.cjs → occtWasmAdapter-D3qerQTq.cjs} +96 -35
- package/dist/{occtWasmAdapter-B9d0Q0Vl.js → occtWasmAdapter-DA7oMgcQ.js} +96 -35
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +2 -2
- package/dist/{originTrackingFns-CBnyKLm7.js → originTrackingFns-c2qgRZ_9.js} +2 -2
- package/dist/{originTrackingFns-CHymOLLm.cjs → originTrackingFns-rEKOAP65.cjs} +2 -2
- package/dist/{primitiveFns-DeNl60Rw.js → primitiveFns-3-gs-FUX.js} +4 -4
- package/dist/{primitiveFns-BVeBEaa4.cjs → primitiveFns-CLGVLwG8.cjs} +4 -4
- package/dist/{principalBoxFns-CG6kG7vT.cjs → principalBoxFns-CiXzjOkr.cjs} +3 -3
- package/dist/{principalBoxFns-3mW_hA6z.js → principalBoxFns-RMZItjfR.js} +3 -3
- package/dist/projection.cjs +1 -1
- package/dist/projection.js +1 -1
- package/dist/query.cjs +2 -2
- package/dist/query.js +2 -2
- package/dist/{refResolveFns-BAs4p9z7.cjs → refResolveFns-DNX0bCrP.cjs} +6 -6
- package/dist/{refResolveFns-DHx1Y3GG.js → refResolveFns-kJg2iCad.js} +6 -6
- package/dist/{shapeFns-CgqKICF_.js → shapeFns-CZ6VF1yd.js} +2 -2
- package/dist/{shapeFns-C0w8vvfb.cjs → shapeFns-SgIrOjN4.cjs} +2 -2
- package/dist/shapeRef.cjs +1 -1
- package/dist/shapeRef.js +1 -1
- package/dist/{shapeTypes-DwvQUp9M.js → shapeTypes-BNGu103j.js} +1 -1
- package/dist/{shapeTypes-Dc7j-MYg.cjs → shapeTypes-MUEH4XuH.cjs} +1 -1
- package/dist/sketching.cjs +3 -3
- package/dist/sketching.js +3 -3
- package/dist/{solidBuilders-DT1gpVWM.js → solidBuilders-Bmr59cGp.js} +5 -5
- package/dist/{solidBuilders-iS5DDwg8.cjs → solidBuilders-DdG4NPHM.cjs} +5 -5
- package/dist/{surfaceBuilders-CPLe0bbk.js → surfaceBuilders-DI376ai0.js} +3 -3
- package/dist/{surfaceBuilders-BvwSgD3C.cjs → surfaceBuilders-DOmDVuMs.cjs} +3 -3
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/{textBlueprints-CNPCPJix.cjs → textBlueprints-B7Vhr0xu.cjs} +7 -7
- package/dist/{textBlueprints-BU0Rhk54.js → textBlueprints-CE0oxB43.js} +7 -7
- package/dist/{textMetrics-C71g4TmO.cjs → textMetrics-C6_kSht6.cjs} +1 -1
- package/dist/{textMetrics-Df9aLYK2.js → textMetrics-_VGqdewQ.js} +1 -1
- package/dist/{threadFns-CzXEnnmo.cjs → threadFns-1H60LrFX.cjs} +7 -7
- package/dist/{threadFns-DESH7lcs.js → threadFns-CHdY-4Cz.js} +7 -7
- package/dist/topology.cjs +9 -9
- package/dist/topology.js +9 -9
- package/dist/{topologyQueryFns-5Frx8Y-0.cjs → topologyQueryFns-C_fXO6xL.cjs} +1 -1
- package/dist/{topologyQueryFns-LXV1nTaS.js → topologyQueryFns-CltEv7Pi.js} +1 -1
- package/dist/{validityTypes-C6rROGTP.cjs → validityTypes-CGX2ES81.cjs} +1 -1
- package/dist/{validityTypes-DM-Iwe8N.js → validityTypes-GanLrmvY.js} +1 -1
- package/package.json +1 -1
|
@@ -1541,10 +1541,7 @@ function intersectCurves2dFn(c1, c2, tolerance) {
|
|
|
1541
1541
|
points: intersectLineCircle(c2, b2, c1, b1, tolerance),
|
|
1542
1542
|
segments: []
|
|
1543
1543
|
};
|
|
1544
|
-
if (b1.__bk2d === "circle" && b2.__bk2d === "circle") return
|
|
1545
|
-
points: intersectCircleCircle(c1, b1, c2, b2, tolerance),
|
|
1546
|
-
segments: []
|
|
1547
|
-
};
|
|
1544
|
+
if (b1.__bk2d === "circle" && b2.__bk2d === "circle") return intersectCircleCircle(c1, b1, c2, b2, tolerance);
|
|
1548
1545
|
return numericalIntersect(c1, c2, tolerance, c1 === c2);
|
|
1549
1546
|
}
|
|
1550
1547
|
/** Unwrap trimmed wrappers to get the basis curve type. */
|
|
@@ -1553,9 +1550,32 @@ function unwrapCurve(c) {
|
|
|
1553
1550
|
while (cur.__bk2d === "trimmed") cur = cur.basis;
|
|
1554
1551
|
return cur;
|
|
1555
1552
|
}
|
|
1556
|
-
/**
|
|
1553
|
+
/**
|
|
1554
|
+
* The interval a curve covers on its innermost basis's parameter. A trimmed wrapper's own
|
|
1555
|
+
* parameter runs 0..1, but the analytic solvers work on the unwrapped basis, so their
|
|
1556
|
+
* parameters must be bounded by this interval rather than by `curveBounds(c)`.
|
|
1557
|
+
*/
|
|
1558
|
+
function basisInterval(c) {
|
|
1559
|
+
if (c.__bk2d !== "trimmed") return curveBounds(c);
|
|
1560
|
+
const a = basisParam(c.basis, c.tStart);
|
|
1561
|
+
const b = basisParam(c.basis, c.tEnd);
|
|
1562
|
+
return {
|
|
1563
|
+
first: Math.min(a, b),
|
|
1564
|
+
last: Math.max(a, b)
|
|
1565
|
+
};
|
|
1566
|
+
}
|
|
1567
|
+
function basisParam(c, t) {
|
|
1568
|
+
let cur = c;
|
|
1569
|
+
let s = t;
|
|
1570
|
+
while (cur.__bk2d === "trimmed") {
|
|
1571
|
+
s = cur.tStart + s * (cur.tEnd - cur.tStart);
|
|
1572
|
+
cur = cur.basis;
|
|
1573
|
+
}
|
|
1574
|
+
return s;
|
|
1575
|
+
}
|
|
1576
|
+
/** Check if basis parameter t lies within the part of the basis that c covers. */
|
|
1557
1577
|
function inDomain(c, t, tol) {
|
|
1558
|
-
const b =
|
|
1578
|
+
const b = basisInterval(c);
|
|
1559
1579
|
return t >= b.first - tol && t <= b.last + tol;
|
|
1560
1580
|
}
|
|
1561
1581
|
/** Find the parameter on curve c closest to point (px, py), searching near tGuess. */
|
|
@@ -1631,7 +1651,7 @@ function intersectLineLine(c1, l1, c2, l2, tol) {
|
|
|
1631
1651
|
points: [],
|
|
1632
1652
|
segments: []
|
|
1633
1653
|
};
|
|
1634
|
-
const b1 =
|
|
1654
|
+
const b1 = basisInterval(c1);
|
|
1635
1655
|
const b2 = curveBounds(c2);
|
|
1636
1656
|
const p2s = evaluateCurve2d$1(c2, b2.first);
|
|
1637
1657
|
const p2e = evaluateCurve2d$1(c2, b2.last);
|
|
@@ -1672,42 +1692,83 @@ function intersectLineCircle(cLine, line, cCirc, circ, tol) {
|
|
|
1672
1692
|
}
|
|
1673
1693
|
return results;
|
|
1674
1694
|
}
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1695
|
+
/**
|
|
1696
|
+
* The counter-clockwise angular range [start, start + sweep] a circular curve covers,
|
|
1697
|
+
* and whether the curve itself runs counter-clockwise through it.
|
|
1698
|
+
*/
|
|
1699
|
+
function arcSpan(c, circ) {
|
|
1700
|
+
const range = basisInterval(c);
|
|
1701
|
+
const own = curveBounds(c);
|
|
1702
|
+
const forward = basisParam(c, own.last) >= basisParam(c, own.first);
|
|
1703
|
+
return {
|
|
1704
|
+
start: circ.sense ? range.first : -range.last,
|
|
1705
|
+
sweep: Math.min(range.last - range.first, 2 * Math.PI),
|
|
1706
|
+
ccw: circ.sense === forward
|
|
1707
|
+
};
|
|
1708
|
+
}
|
|
1709
|
+
/** The arc of `circ` from angle `from` counter-clockwise to `to`, traversed as `ccw` says. */
|
|
1710
|
+
function arcBetween(circ, from, to, ccw) {
|
|
1711
|
+
const basis = makeCircle2d$1(circ.cx, circ.cy, circ.radius, ccw);
|
|
1712
|
+
return ccw ? {
|
|
1713
|
+
__bk2d: "trimmed",
|
|
1714
|
+
basis,
|
|
1715
|
+
tStart: from,
|
|
1716
|
+
tEnd: to
|
|
1717
|
+
} : {
|
|
1718
|
+
__bk2d: "trimmed",
|
|
1719
|
+
basis,
|
|
1720
|
+
tStart: -to,
|
|
1721
|
+
tEnd: -from
|
|
1722
|
+
};
|
|
1723
|
+
}
|
|
1724
|
+
/**
|
|
1725
|
+
* Overlap of two arcs on the same circle: the shared stretches as segments oriented
|
|
1726
|
+
* along c1, and the places where the arcs only touch end to end as points.
|
|
1727
|
+
*/
|
|
1728
|
+
function intersectCoincidentArcs(c1, circ1, c2, circ2, tol) {
|
|
1729
|
+
const turn = 2 * Math.PI;
|
|
1730
|
+
const a = arcSpan(c1, circ1);
|
|
1731
|
+
const b = arcSpan(c2, circ2);
|
|
1732
|
+
const angleTol = tol / circ1.radius;
|
|
1733
|
+
const isFull = (sweep) => turn - sweep <= angleTol;
|
|
1734
|
+
const d = ((b.start - a.start) % turn + turn) % turn;
|
|
1735
|
+
let windows;
|
|
1736
|
+
if (isFull(b.sweep)) windows = [[0, a.sweep]];
|
|
1737
|
+
else if (isFull(a.sweep)) windows = [[d, d + b.sweep]];
|
|
1738
|
+
else windows = [[Math.max(0, d), Math.min(a.sweep, d + b.sweep)], [Math.max(0, d - turn), Math.min(a.sweep, d - turn + b.sweep)]];
|
|
1739
|
+
const points = [];
|
|
1740
|
+
const segments = [];
|
|
1741
|
+
for (const [u, v] of windows) if (v - u > angleTol) segments.push(arcBetween(circ1, a.start + u, a.start + v, a.ccw));
|
|
1742
|
+
else if (v - u > -angleTol) {
|
|
1743
|
+
const angle = a.start + (u + v) / 2;
|
|
1744
|
+
points.push([circ1.cx + circ1.radius * Math.cos(angle), circ1.cy + circ1.radius * Math.sin(angle)]);
|
|
1696
1745
|
}
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1746
|
+
return {
|
|
1747
|
+
points,
|
|
1748
|
+
segments
|
|
1749
|
+
};
|
|
1700
1750
|
}
|
|
1701
1751
|
function intersectCircleCircle(c1, circ1, c2, circ2, tol) {
|
|
1702
1752
|
const dx = circ2.cx - circ1.cx;
|
|
1703
1753
|
const dy = circ2.cy - circ1.cy;
|
|
1704
1754
|
const d = Math.sqrt(dx * dx + dy * dy);
|
|
1755
|
+
if (d <= tol) {
|
|
1756
|
+
if (Math.abs(circ1.radius - circ2.radius) > tol) return {
|
|
1757
|
+
points: [],
|
|
1758
|
+
segments: []
|
|
1759
|
+
};
|
|
1760
|
+
return intersectCoincidentArcs(c1, circ1, c2, circ2, tol);
|
|
1761
|
+
}
|
|
1762
|
+
return {
|
|
1763
|
+
points: intersectCrossingCircles(c1, circ1, c2, circ2, tol, d),
|
|
1764
|
+
segments: []
|
|
1765
|
+
};
|
|
1766
|
+
}
|
|
1767
|
+
function intersectCrossingCircles(c1, circ1, c2, circ2, tol, d) {
|
|
1768
|
+
const dx = circ2.cx - circ1.cx;
|
|
1769
|
+
const dy = circ2.cy - circ1.cy;
|
|
1705
1770
|
if (d > circ1.radius + circ2.radius + tol) return [];
|
|
1706
1771
|
if (d < Math.abs(circ1.radius - circ2.radius) - tol) return [];
|
|
1707
|
-
if (d < 1e-14) {
|
|
1708
|
-
if (Math.abs(circ1.radius - circ2.radius) > tol) return [];
|
|
1709
|
-
return intersectConcentricArcs(c1, c2, tol);
|
|
1710
|
-
}
|
|
1711
1772
|
const a = (circ1.radius * circ1.radius - circ2.radius * circ2.radius + d * d) / (2 * d);
|
|
1712
1773
|
const h2 = circ1.radius * circ1.radius - a * a;
|
|
1713
1774
|
const h = Math.sqrt(Math.max(0, h2));
|
|
@@ -1541,10 +1541,7 @@ function intersectCurves2dFn(c1, c2, tolerance) {
|
|
|
1541
1541
|
points: intersectLineCircle(c2, b2, c1, b1, tolerance),
|
|
1542
1542
|
segments: []
|
|
1543
1543
|
};
|
|
1544
|
-
if (b1.__bk2d === "circle" && b2.__bk2d === "circle") return
|
|
1545
|
-
points: intersectCircleCircle(c1, b1, c2, b2, tolerance),
|
|
1546
|
-
segments: []
|
|
1547
|
-
};
|
|
1544
|
+
if (b1.__bk2d === "circle" && b2.__bk2d === "circle") return intersectCircleCircle(c1, b1, c2, b2, tolerance);
|
|
1548
1545
|
return numericalIntersect(c1, c2, tolerance, c1 === c2);
|
|
1549
1546
|
}
|
|
1550
1547
|
/** Unwrap trimmed wrappers to get the basis curve type. */
|
|
@@ -1553,9 +1550,32 @@ function unwrapCurve(c) {
|
|
|
1553
1550
|
while (cur.__bk2d === "trimmed") cur = cur.basis;
|
|
1554
1551
|
return cur;
|
|
1555
1552
|
}
|
|
1556
|
-
/**
|
|
1553
|
+
/**
|
|
1554
|
+
* The interval a curve covers on its innermost basis's parameter. A trimmed wrapper's own
|
|
1555
|
+
* parameter runs 0..1, but the analytic solvers work on the unwrapped basis, so their
|
|
1556
|
+
* parameters must be bounded by this interval rather than by `curveBounds(c)`.
|
|
1557
|
+
*/
|
|
1558
|
+
function basisInterval(c) {
|
|
1559
|
+
if (c.__bk2d !== "trimmed") return curveBounds(c);
|
|
1560
|
+
const a = basisParam(c.basis, c.tStart);
|
|
1561
|
+
const b = basisParam(c.basis, c.tEnd);
|
|
1562
|
+
return {
|
|
1563
|
+
first: Math.min(a, b),
|
|
1564
|
+
last: Math.max(a, b)
|
|
1565
|
+
};
|
|
1566
|
+
}
|
|
1567
|
+
function basisParam(c, t) {
|
|
1568
|
+
let cur = c;
|
|
1569
|
+
let s = t;
|
|
1570
|
+
while (cur.__bk2d === "trimmed") {
|
|
1571
|
+
s = cur.tStart + s * (cur.tEnd - cur.tStart);
|
|
1572
|
+
cur = cur.basis;
|
|
1573
|
+
}
|
|
1574
|
+
return s;
|
|
1575
|
+
}
|
|
1576
|
+
/** Check if basis parameter t lies within the part of the basis that c covers. */
|
|
1557
1577
|
function inDomain(c, t, tol) {
|
|
1558
|
-
const b =
|
|
1578
|
+
const b = basisInterval(c);
|
|
1559
1579
|
return t >= b.first - tol && t <= b.last + tol;
|
|
1560
1580
|
}
|
|
1561
1581
|
/** Find the parameter on curve c closest to point (px, py), searching near tGuess. */
|
|
@@ -1631,7 +1651,7 @@ function intersectLineLine(c1, l1, c2, l2, tol) {
|
|
|
1631
1651
|
points: [],
|
|
1632
1652
|
segments: []
|
|
1633
1653
|
};
|
|
1634
|
-
const b1 =
|
|
1654
|
+
const b1 = basisInterval(c1);
|
|
1635
1655
|
const b2 = curveBounds(c2);
|
|
1636
1656
|
const p2s = evaluateCurve2d$1(c2, b2.first);
|
|
1637
1657
|
const p2e = evaluateCurve2d$1(c2, b2.last);
|
|
@@ -1672,42 +1692,83 @@ function intersectLineCircle(cLine, line, cCirc, circ, tol) {
|
|
|
1672
1692
|
}
|
|
1673
1693
|
return results;
|
|
1674
1694
|
}
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1695
|
+
/**
|
|
1696
|
+
* The counter-clockwise angular range [start, start + sweep] a circular curve covers,
|
|
1697
|
+
* and whether the curve itself runs counter-clockwise through it.
|
|
1698
|
+
*/
|
|
1699
|
+
function arcSpan(c, circ) {
|
|
1700
|
+
const range = basisInterval(c);
|
|
1701
|
+
const own = curveBounds(c);
|
|
1702
|
+
const forward = basisParam(c, own.last) >= basisParam(c, own.first);
|
|
1703
|
+
return {
|
|
1704
|
+
start: circ.sense ? range.first : -range.last,
|
|
1705
|
+
sweep: Math.min(range.last - range.first, 2 * Math.PI),
|
|
1706
|
+
ccw: circ.sense === forward
|
|
1707
|
+
};
|
|
1708
|
+
}
|
|
1709
|
+
/** The arc of `circ` from angle `from` counter-clockwise to `to`, traversed as `ccw` says. */
|
|
1710
|
+
function arcBetween(circ, from, to, ccw) {
|
|
1711
|
+
const basis = makeCircle2d$1(circ.cx, circ.cy, circ.radius, ccw);
|
|
1712
|
+
return ccw ? {
|
|
1713
|
+
__bk2d: "trimmed",
|
|
1714
|
+
basis,
|
|
1715
|
+
tStart: from,
|
|
1716
|
+
tEnd: to
|
|
1717
|
+
} : {
|
|
1718
|
+
__bk2d: "trimmed",
|
|
1719
|
+
basis,
|
|
1720
|
+
tStart: -to,
|
|
1721
|
+
tEnd: -from
|
|
1722
|
+
};
|
|
1723
|
+
}
|
|
1724
|
+
/**
|
|
1725
|
+
* Overlap of two arcs on the same circle: the shared stretches as segments oriented
|
|
1726
|
+
* along c1, and the places where the arcs only touch end to end as points.
|
|
1727
|
+
*/
|
|
1728
|
+
function intersectCoincidentArcs(c1, circ1, c2, circ2, tol) {
|
|
1729
|
+
const turn = 2 * Math.PI;
|
|
1730
|
+
const a = arcSpan(c1, circ1);
|
|
1731
|
+
const b = arcSpan(c2, circ2);
|
|
1732
|
+
const angleTol = tol / circ1.radius;
|
|
1733
|
+
const isFull = (sweep) => turn - sweep <= angleTol;
|
|
1734
|
+
const d = ((b.start - a.start) % turn + turn) % turn;
|
|
1735
|
+
let windows;
|
|
1736
|
+
if (isFull(b.sweep)) windows = [[0, a.sweep]];
|
|
1737
|
+
else if (isFull(a.sweep)) windows = [[d, d + b.sweep]];
|
|
1738
|
+
else windows = [[Math.max(0, d), Math.min(a.sweep, d + b.sweep)], [Math.max(0, d - turn), Math.min(a.sweep, d - turn + b.sweep)]];
|
|
1739
|
+
const points = [];
|
|
1740
|
+
const segments = [];
|
|
1741
|
+
for (const [u, v] of windows) if (v - u > angleTol) segments.push(arcBetween(circ1, a.start + u, a.start + v, a.ccw));
|
|
1742
|
+
else if (v - u > -angleTol) {
|
|
1743
|
+
const angle = a.start + (u + v) / 2;
|
|
1744
|
+
points.push([circ1.cx + circ1.radius * Math.cos(angle), circ1.cy + circ1.radius * Math.sin(angle)]);
|
|
1696
1745
|
}
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1746
|
+
return {
|
|
1747
|
+
points,
|
|
1748
|
+
segments
|
|
1749
|
+
};
|
|
1700
1750
|
}
|
|
1701
1751
|
function intersectCircleCircle(c1, circ1, c2, circ2, tol) {
|
|
1702
1752
|
const dx = circ2.cx - circ1.cx;
|
|
1703
1753
|
const dy = circ2.cy - circ1.cy;
|
|
1704
1754
|
const d = Math.sqrt(dx * dx + dy * dy);
|
|
1755
|
+
if (d <= tol) {
|
|
1756
|
+
if (Math.abs(circ1.radius - circ2.radius) > tol) return {
|
|
1757
|
+
points: [],
|
|
1758
|
+
segments: []
|
|
1759
|
+
};
|
|
1760
|
+
return intersectCoincidentArcs(c1, circ1, c2, circ2, tol);
|
|
1761
|
+
}
|
|
1762
|
+
return {
|
|
1763
|
+
points: intersectCrossingCircles(c1, circ1, c2, circ2, tol, d),
|
|
1764
|
+
segments: []
|
|
1765
|
+
};
|
|
1766
|
+
}
|
|
1767
|
+
function intersectCrossingCircles(c1, circ1, c2, circ2, tol, d) {
|
|
1768
|
+
const dx = circ2.cx - circ1.cx;
|
|
1769
|
+
const dy = circ2.cy - circ1.cy;
|
|
1705
1770
|
if (d > circ1.radius + circ2.radius + tol) return [];
|
|
1706
1771
|
if (d < Math.abs(circ1.radius - circ2.radius) - tol) return [];
|
|
1707
|
-
if (d < 1e-14) {
|
|
1708
|
-
if (Math.abs(circ1.radius - circ2.radius) > tol) return [];
|
|
1709
|
-
return intersectConcentricArcs(c1, c2, tol);
|
|
1710
|
-
}
|
|
1711
1772
|
const a = (circ1.radius * circ1.radius - circ2.radius * circ2.radius + d * d) / (2 * d);
|
|
1712
1773
|
const h2 = circ1.radius * circ1.radius - a * a;
|
|
1713
1774
|
const h = Math.sqrt(Math.max(0, h2));
|
package/dist/operations.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_threadFns = require("./threadFns-
|
|
3
|
-
const require_loftFns = require("./loftFns-
|
|
2
|
+
const require_threadFns = require("./threadFns-1H60LrFX.cjs");
|
|
3
|
+
const require_loftFns = require("./loftFns-DGV1z2NJ.cjs");
|
|
4
4
|
exports.addChild = require_threadFns.addChild;
|
|
5
5
|
exports.addJoint = require_threadFns.addJoint;
|
|
6
6
|
exports.addStep = require_threadFns.addStep;
|
package/dist/operations.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as setJointValue, B as walkAssembly, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as countNodes, H as circularPattern, I as createAssemblyNode, 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, 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, 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-
|
|
2
|
-
import { c as twistExtrude, o as supportExtrude, r as complexExtrude, s as sweep } from "./loftFns-
|
|
1
|
+
import { A as setJointValue, B as walkAssembly, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as countNodes, H as circularPattern, I as createAssemblyNode, 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, 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, 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-CHdY-4Cz.js";
|
|
2
|
+
import { c as twistExtrude, o as supportExtrude, r as complexExtrude, s as sweep } from "./loftFns-DQ7Z29n3.js";
|
|
3
3
|
export { addChild, addJoint, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, cylindricalJoint, exportAssemblySTEP, exportURDF, findNode, findStep, forwardKinematics, getShape as getHistoryShape, gridPattern, importURDF, inverseKinematics, jointTrajectory, jointTransform, jointsFromDH, linearPattern, mechanismDOF, modifyStep, planarJoint, prismaticJoint, registerOperation, registerShape, removeChild, replayFrom, replayHistory, revoluteJoint, setJointValue, setJointValues, sphericalJoint, stepCount, stepsFrom, supportExtrude, sweep, thread, twistExtrude, undoLast, updateNode, walkAssembly };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { q as getKernel } from "./shapeTypes-
|
|
2
|
-
import { C as subShapeHashes, c as getFaces, l as getOrCreateCache, r as getCacheEntry } from "./topologyQueryFns-
|
|
1
|
+
import { q as getKernel } from "./shapeTypes-BNGu103j.js";
|
|
2
|
+
import { C as subShapeHashes, c as getFaces, l as getOrCreateCache, r as getCacheEntry } from "./topologyQueryFns-CltEv7Pi.js";
|
|
3
3
|
import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
|
|
4
4
|
// src/topology/metadata/originTrackingFns.ts
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
2
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
|
|
2
|
+
const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
|
|
3
3
|
const require_constants = require("./constants-oee0S_x6.cjs");
|
|
4
4
|
// src/topology/metadata/originTrackingFns.ts
|
|
5
5
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { E as GeometryCleanupError, G as _usingCtx, d as createSolid, n as castResultShape, q as getKernel } from "./shapeTypes-
|
|
1
|
+
import { E as GeometryCleanupError, G as _usingCtx, d as createSolid, n as castResultShape, q as getKernel } from "./shapeTypes-BNGu103j.js";
|
|
2
2
|
import { E as ok, d as validationError, g as err, m as andThen, t as BrepErrorCode } from "./errors-BTccWbtE.js";
|
|
3
|
-
import { n as isClosedWire } from "./validityTypes-
|
|
3
|
+
import { n as isClosedWire } from "./validityTypes-GanLrmvY.js";
|
|
4
4
|
import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-iraOnb2p.js";
|
|
5
5
|
import { d as vecNormalize, h as vecScale } from "./vecOps-S-m9H_fe.js";
|
|
6
|
-
import { C as propagateAllMetadata, S as hasAnyMetadata, T as propagateMetadataThroughRelocation, a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces, w as propagateMetadataByHash, x as collectInputFaceHashes } from "./solidBuilders-
|
|
7
|
-
import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-
|
|
6
|
+
import { C as propagateAllMetadata, S as hasAnyMetadata, T as propagateMetadataThroughRelocation, a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces, w as propagateMetadataByHash, x as collectInputFaceHashes } from "./solidBuilders-Bmr59cGp.js";
|
|
7
|
+
import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-DI376ai0.js";
|
|
8
8
|
// src/topology/transformFns.ts
|
|
9
9
|
/**
|
|
10
10
|
* Immutable shape transforms — translate, rotate, scale, mirror, applyMatrix.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
|
|
2
2
|
const require_errors = require("./errors-O_blYTWT.cjs");
|
|
3
|
-
const require_validityTypes = require("./validityTypes-
|
|
3
|
+
const require_validityTypes = require("./validityTypes-CGX2ES81.cjs");
|
|
4
4
|
const require_constants = require("./constants-oee0S_x6.cjs");
|
|
5
5
|
const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
|
|
6
|
-
const require_solidBuilders = require("./solidBuilders-
|
|
7
|
-
const require_surfaceBuilders = require("./surfaceBuilders-
|
|
6
|
+
const require_solidBuilders = require("./solidBuilders-DdG4NPHM.cjs");
|
|
7
|
+
const require_surfaceBuilders = require("./surfaceBuilders-DOmDVuMs.cjs");
|
|
8
8
|
// src/topology/transformFns.ts
|
|
9
9
|
/**
|
|
10
10
|
* Immutable shape transforms — translate, rotate, scale, mirror, applyMatrix.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
|
|
2
2
|
const require_bug = require("./bug-CBcpIPuf.cjs");
|
|
3
3
|
const require_errors = require("./errors-O_blYTWT.cjs");
|
|
4
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
4
|
+
const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
|
|
5
5
|
const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
|
|
6
|
-
const require_measureFns = require("./measureFns-
|
|
6
|
+
const require_measureFns = require("./measureFns-BdSjw5fr.cjs");
|
|
7
7
|
// src/measurement/principalBoxFns.ts
|
|
8
8
|
/**
|
|
9
9
|
* Principal-axes bounding box: a solid's extent measured in the frame of its
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-
|
|
1
|
+
import { G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-BNGu103j.js";
|
|
2
2
|
import { i as wasmIndex } from "./bug-ClMTAJhe.js";
|
|
3
3
|
import { E as ok, d as validationError, g as err, t as BrepErrorCode, u as unsupportedError } from "./errors-BTccWbtE.js";
|
|
4
|
-
import { E as kernelCallRaw, S as subShapeCount } from "./topologyQueryFns-
|
|
4
|
+
import { E as kernelCallRaw, S as subShapeCount } from "./topologyQueryFns-CltEv7Pi.js";
|
|
5
5
|
import { r as vecCross } from "./vecOps-S-m9H_fe.js";
|
|
6
|
-
import { f as getCachedMeasurement, p as setCachedMeasurement } from "./measureFns-
|
|
6
|
+
import { f as getCachedMeasurement, p as setCachedMeasurement } from "./measureFns-BrdCH4cH.js";
|
|
7
7
|
// src/measurement/principalBoxFns.ts
|
|
8
8
|
/**
|
|
9
9
|
* Principal-axes bounding box: a solid's extent measured in the frame of its
|
package/dist/projection.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_cameraFns = require("./cameraFns-
|
|
2
|
+
const require_cameraFns = require("./cameraFns-BAtzhCYM.cjs");
|
|
3
3
|
exports.PROJECTION_PLANES = require_cameraFns.PROJECTION_PLANES;
|
|
4
4
|
exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
|
|
5
5
|
exports.cameraLookAt = require_cameraFns.cameraLookAt;
|
package/dist/projection.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { o as PROJECTION_PLANES, t as cameraFromPlane, n as cameraLookAt, r as createCamera, s as isProjectionPlane, a as makeProjectedEdges, i as projectEdges } from "./cameraFns-
|
|
1
|
+
export { o as PROJECTION_PLANES, t as cameraFromPlane, n as cameraLookAt, r as createCamera, s as isProjectionPlane, a as makeProjectedEdges, i as projectEdges } from "./cameraFns-BVWyAscu.js";
|
package/dist/query.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_helpers = require("./helpers-
|
|
3
|
-
const require_cornerFinder = require("./cornerFinder-
|
|
2
|
+
const require_helpers = require("./helpers-BdGGaLhF.cjs");
|
|
3
|
+
const require_cornerFinder = require("./cornerFinder-e4Wc7_yp.cjs");
|
|
4
4
|
exports.cornerFinder = require_cornerFinder.cornerFinder;
|
|
5
5
|
exports.edgeFinder = require_helpers.edgeFinder;
|
|
6
6
|
exports.faceFinder = require_helpers.faceFinder;
|
package/dist/query.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-
|
|
2
|
-
import { t as cornerFinder } from "./cornerFinder-
|
|
1
|
+
import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-DpGcM2qZ.js";
|
|
2
|
+
import { t as cornerFinder } from "./cornerFinder-Dv_2rmaY.js";
|
|
3
3
|
export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
2
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
3
|
-
const require_faceFns = require("./faceFns-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
|
|
2
|
+
const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
|
|
3
|
+
const require_faceFns = require("./faceFns-C-2ttg8X.cjs");
|
|
4
4
|
const require_faceRoleFns = require("./faceRoleFns-Db5bYj4Q.cjs");
|
|
5
|
-
const require_shapeFns = require("./shapeFns-
|
|
6
|
-
const require_measureFns = require("./measureFns-
|
|
7
|
-
const require_adjacencyFns = require("./adjacencyFns-
|
|
5
|
+
const require_shapeFns = require("./shapeFns-SgIrOjN4.cjs");
|
|
6
|
+
const require_measureFns = require("./measureFns-BdSjw5fr.cjs");
|
|
7
|
+
const require_adjacencyFns = require("./adjacencyFns-mMmTBUBY.cjs");
|
|
8
8
|
// src/topology/shapeRef/scoring.ts
|
|
9
9
|
/**
|
|
10
10
|
* Default face scorer combining surface type, normal alignment, centroid proximity,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { g as disposeTransientSubShape, o as castShapeWithKnownType, q as getKernel } from "./shapeTypes-
|
|
2
|
-
import { c as getFaces, w as vertexPosition } from "./topologyQueryFns-
|
|
3
|
-
import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-
|
|
1
|
+
import { g as disposeTransientSubShape, o as castShapeWithKnownType, q as getKernel } from "./shapeTypes-BNGu103j.js";
|
|
2
|
+
import { c as getFaces, w as vertexPosition } from "./topologyQueryFns-CltEv7Pi.js";
|
|
3
|
+
import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-Q87HCJrp.js";
|
|
4
4
|
import { t as getFaceRoles } from "./faceRoleFns-BPxzQF-n.js";
|
|
5
|
-
import { n as getHashCode } from "./shapeFns-
|
|
6
|
-
import { n as measureArea, s as measureLength } from "./measureFns-
|
|
7
|
-
import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, o as sharedEdges, s as verticesOfEdge, t as adjacentFaceHashes } from "./adjacencyFns
|
|
5
|
+
import { n as getHashCode } from "./shapeFns-CZ6VF1yd.js";
|
|
6
|
+
import { n as measureArea, s as measureLength } from "./measureFns-BrdCH4cH.js";
|
|
7
|
+
import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, o as sharedEdges, s as verticesOfEdge, t as adjacentFaceHashes } from "./adjacencyFns-hMihivxC.js";
|
|
8
8
|
// src/topology/shapeRef/scoring.ts
|
|
9
9
|
/**
|
|
10
10
|
* Default face scorer combining surface type, normal alignment, centroid proximity,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { q as getKernel } from "./shapeTypes-
|
|
1
|
+
import { q as getKernel } from "./shapeTypes-BNGu103j.js";
|
|
2
2
|
import { t as BrepErrorCode } from "./errors-BTccWbtE.js";
|
|
3
|
-
import { E as kernelCallRaw, T as kernelCall } from "./topologyQueryFns-
|
|
3
|
+
import { E as kernelCallRaw, T as kernelCall } from "./topologyQueryFns-CltEv7Pi.js";
|
|
4
4
|
import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
|
|
5
5
|
// src/topology/shapeFns.ts
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-MUEH4XuH.cjs");
|
|
2
2
|
const require_errors = require("./errors-O_blYTWT.cjs");
|
|
3
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
3
|
+
const require_topologyQueryFns = require("./topologyQueryFns-C_fXO6xL.cjs");
|
|
4
4
|
const require_constants = require("./constants-oee0S_x6.cjs");
|
|
5
5
|
// src/topology/shapeFns.ts
|
|
6
6
|
/**
|
package/dist/shapeRef.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_refResolveFns = require("./refResolveFns-
|
|
2
|
+
const require_refResolveFns = require("./refResolveFns-DNX0bCrP.cjs");
|
|
3
3
|
exports.assignRoles = require_refResolveFns.assignRoles;
|
|
4
4
|
exports.captureHint = require_refResolveFns.captureHint;
|
|
5
5
|
exports.createDerivedFaceRef = require_refResolveFns.createDerivedFaceRef;
|
package/dist/shapeRef.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { h as assignRoles, g as captureHint, l as createDerivedFaceRef, p as createEdgeRef, _ as createRef, d as createVertexRef, b as defaultScorer, t as isDerivedFaceRef, n as isEdgeRef, r as isFaceRef, i as isLineageRef, a as isVertexRef, u as resolveDerivedFaceRef, m as resolveEdgeRef, o as resolveLineageRef, v as resolveRef, s as resolveRefIn, c as resolveRefParams, f as resolveVertexRef, y as updateRoles } from "./refResolveFns-
|
|
1
|
+
export { h as assignRoles, g as captureHint, l as createDerivedFaceRef, p as createEdgeRef, _ as createRef, d as createVertexRef, b as defaultScorer, t as isDerivedFaceRef, n as isEdgeRef, r as isFaceRef, i as isLineageRef, a as isVertexRef, u as resolveDerivedFaceRef, m as resolveEdgeRef, o as resolveLineageRef, v as resolveRef, s as resolveRefIn, c as resolveRefParams, f as resolveVertexRef, y as updateRoles } from "./refResolveFns-kJg2iCad.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as UnsupportedKernelOperationError, C as reverseCurve2d$2, D as tangentCurve2d, E as serializeCurve2d$2, N as EXACT_BREP_CAPABILITIES, O as translateCurve2d$2, P as OCCT_CAPABILITIES, S as offsetCurve2d$2, T as scaleCurve2d$2, _ as makeCircle2d$2, a as buildAsciiSTL, b as mirrorAcrossAxis, c as createBBox2d, d as deserializeCurve2d$2, f as evaluateCurve2d$2, g as makeBezier2d$2, h as makeArc2dThreePoints, i as DEFAULT_STL_TOLERANCE, j as isUnsupportedKernelOperationError, k as quickHull, l as curveBounds, m as makeArc2dTangent, o as buildBinarySTL, p as intersectCurves2dFn, r as DEFAULT_STL_ANGULAR_TOLERANCE, s as addCurveToBBox, t as OcctWasmAdapter, u as curveTypeName, v as makeEllipse2d$2, w as rotateCurve2d$2, x as mirrorAtPoint, y as makeLine2d$2 } from "./occtWasmAdapter-
|
|
1
|
+
import { A as UnsupportedKernelOperationError, C as reverseCurve2d$2, D as tangentCurve2d, E as serializeCurve2d$2, N as EXACT_BREP_CAPABILITIES, O as translateCurve2d$2, P as OCCT_CAPABILITIES, S as offsetCurve2d$2, T as scaleCurve2d$2, _ as makeCircle2d$2, a as buildAsciiSTL, b as mirrorAcrossAxis, c as createBBox2d, d as deserializeCurve2d$2, f as evaluateCurve2d$2, g as makeBezier2d$2, h as makeArc2dThreePoints, i as DEFAULT_STL_TOLERANCE, j as isUnsupportedKernelOperationError, k as quickHull, l as curveBounds, m as makeArc2dTangent, o as buildBinarySTL, p as intersectCurves2dFn, r as DEFAULT_STL_ANGULAR_TOLERANCE, s as addCurveToBBox, t as OcctWasmAdapter, u as curveTypeName, v as makeEllipse2d$2, w as rotateCurve2d$2, x as mirrorAtPoint, y as makeLine2d$2 } from "./occtWasmAdapter-DA7oMgcQ.js";
|
|
2
2
|
import { i as wasmIndex, r as vec3At } from "./bug-ClMTAJhe.js";
|
|
3
3
|
// src/kernel/quality.ts
|
|
4
4
|
/**
|
package/dist/sketching.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_blueprintSketcher = require("./blueprintSketcher-
|
|
3
|
-
const require_drawFns = require("./drawFns-
|
|
4
|
-
const require_textBlueprints = require("./textBlueprints-
|
|
2
|
+
const require_blueprintSketcher = require("./blueprintSketcher-BG--DxWB.cjs");
|
|
3
|
+
const require_drawFns = require("./drawFns-d-RvC6u6.cjs");
|
|
4
|
+
const require_textBlueprints = require("./textBlueprints-B7Vhr0xu.cjs");
|
|
5
5
|
// src/sketching.ts
|
|
6
6
|
/**
|
|
7
7
|
* brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
|
package/dist/sketching.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-
|
|
2
|
-
import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-
|
|
3
|
-
import { a as Sketches, c as compoundSketchFace, d as sketchExtrude, f as sketchFace, g as sketchWires, h as sketchSweep, l as compoundSketchLoft, m as sketchRevolve, o as Sketch, p as sketchLoft, s as compoundSketchExtrude, u as compoundSketchRevolve, y as CompoundSketch } from "./textBlueprints-
|
|
1
|
+
import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-C1WCI6E0.js";
|
|
2
|
+
import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-Cl1i8B_B.js";
|
|
3
|
+
import { a as Sketches, c as compoundSketchFace, d as sketchExtrude, f as sketchFace, g as sketchWires, h as sketchSweep, l as compoundSketchLoft, m as sketchRevolve, o as Sketch, p as sketchLoft, s as compoundSketchExtrude, u as compoundSketchRevolve, y as CompoundSketch } from "./textBlueprints-CE0oxB43.js";
|
|
4
4
|
// src/sketching.ts
|
|
5
5
|
/**
|
|
6
6
|
* brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { C as isSolid, D as getShapeKind, E as GeometryCleanupError, G as _usingCtx, S as isShell, d as createSolid, f as createVertex, h as disposeResultShape, n as castResultShape, q as getKernel, s as createCompound, x as isShape3D } from "./shapeTypes-
|
|
1
|
+
import { C as isSolid, D as getShapeKind, E as GeometryCleanupError, G as _usingCtx, S as isShell, d as createSolid, f as createVertex, h as disposeResultShape, n as castResultShape, q as getKernel, s as createCompound, x as isShape3D } from "./shapeTypes-BNGu103j.js";
|
|
2
2
|
import { E as ok, P as unwrap, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, m as andThen, t as BrepErrorCode } from "./errors-BTccWbtE.js";
|
|
3
|
-
import { C as subShapeHashes, c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-
|
|
3
|
+
import { C as subShapeHashes, c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-CltEv7Pi.js";
|
|
4
4
|
import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
|
|
5
5
|
import { a as vecDot, g as vecSub, h as vecScale, t as vecAdd } from "./vecOps-S-m9H_fe.js";
|
|
6
6
|
import { o as resolvePlane } from "./planeOps-D3yDuMux.js";
|
|
7
|
-
import { _ as cast, y as downcast } from "./faceFns-
|
|
8
|
-
import { n as propagateOriginsByHash, r as propagateOriginsFromEvolution, t as getFaceOrigins } from "./originTrackingFns-
|
|
7
|
+
import { _ as cast, y as downcast } from "./faceFns-Q87HCJrp.js";
|
|
8
|
+
import { n as propagateOriginsByHash, r as propagateOriginsFromEvolution, t as getFaceOrigins } from "./originTrackingFns-c2qgRZ_9.js";
|
|
9
9
|
import { n as hasFaceRoles, r as propagateFaceRolesFromEvolution } from "./faceRoleFns-BPxzQF-n.js";
|
|
10
10
|
import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-BpgouNir.js";
|
|
11
|
-
import { r as makeFace } from "./surfaceBuilders-
|
|
11
|
+
import { r as makeFace } from "./surfaceBuilders-DI376ai0.js";
|
|
12
12
|
// src/topology/metadata/faceTagFns.ts
|
|
13
13
|
var shapeTagStore = /* @__PURE__ */ new WeakMap();
|
|
14
14
|
var tagMetadataStore = /* @__PURE__ */ new WeakMap();
|