Commit 95e4924
fix(library): collapse a squeezed loop to the clean route, not a residual jog
Dragging a loop's arms together is meant to collapse it. Squeezing the free inner arm
already produced the clean direct route, but squeezing the PINNED terminal arm left a
30px jog: its port is fixed, so the arm folds back on itself rather than merging, and no
simplify pass removes the fold — it read as "it pushes to 30px and never collapses".
normalizeOrthogonalEdgePoints now detects a fold (a point where the path reverses on
itself along one axis) and hands the collapsed edge to the router for the clean direct
path. Placing it here — the shared normalizer used by BOTH the bend release AND the
post-drag geometry re-projection — is what makes it stick: doing it only at release let
the re-projection (which also normalizes) re-introduce the jog a frame later.
Together with the adjacent-arm lane clamp, dragging either arm now collapses the loop to
a straight line the moment the arms meet (0px), with no push-apart and no leftover jog.
Ordinary S-jogs that never reverse on themselves are untouched. 1523 unit + fresh-bend,
interactions, zoom, reset and the routing-quality gate green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent fc06111 commit 95e4924
2 files changed
Lines changed: 94 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3004 | 3004 | | |
3005 | 3005 | | |
3006 | 3006 | | |
| 3007 | + | |
| 3008 | + | |
| 3009 | + | |
| 3010 | + | |
| 3011 | + | |
| 3012 | + | |
| 3013 | + | |
| 3014 | + | |
| 3015 | + | |
| 3016 | + | |
| 3017 | + | |
| 3018 | + | |
| 3019 | + | |
| 3020 | + | |
| 3021 | + | |
| 3022 | + | |
| 3023 | + | |
| 3024 | + | |
| 3025 | + | |
| 3026 | + | |
| 3027 | + | |
3007 | 3028 | | |
3008 | 3029 | | |
3009 | 3030 | | |
| |||
3016 | 3037 | | |
3017 | 3038 | | |
3018 | 3039 | | |
| 3040 | + | |
| 3041 | + | |
| 3042 | + | |
| 3043 | + | |
| 3044 | + | |
| 3045 | + | |
| 3046 | + | |
| 3047 | + | |
| 3048 | + | |
| 3049 | + | |
| 3050 | + | |
| 3051 | + | |
| 3052 | + | |
| 3053 | + | |
| 3054 | + | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
| 3058 | + | |
3019 | 3059 | | |
3020 | 3060 | | |
3021 | 3061 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1580 | 1580 | | |
1581 | 1581 | | |
1582 | 1582 | | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
| 1603 | + | |
| 1604 | + | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
1583 | 1637 | | |
1584 | 1638 | | |
1585 | 1639 | | |
| |||
0 commit comments