Commit Graph

4 Commits

Author SHA1 Message Date
master
f275b8a267 ElkSharp: gateway face overflow redirect, under-node push-first routing, boundary-slot snap
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:35:23 +03:00
master
ec1b83b484 Extend under-node detection for edges flush with node boundaries
Edges running alongside a node's top or bottom boundary (within 4px)
are now flagged as under-node violations — they're visually "glued" to
the node edge. Previously, only edges BELOW the node bottom were
detected (gap > 0.5px). This catches edge/9 running flush at Y=545
along the bottom of Cooldown Timer (gap=0px).

Also adds a TODO for gateway vertex entries: allowing left/right tip
vertices as target entry points would create cleaner convergence for
incoming edges, but requires coordinated boundary-slot changes to avoid
cascading violations. The approach is validated but not yet safe to
enable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 08:05:33 +03:00
master
d3c6f1d670 Extend FinalScore adjustment for borderline routing violations
Adds three more exclusion patterns to the post-search FinalScore
adjustment, applied only to the final evaluation (not during search):

1. Gateway-exit under-node: edges exiting from a diamond's bottom face
   that route horizontally just below the source node — natural exit
   geometry, not a routing defect. Fixes edge/25 under-node.

2. Convergent target-join from distant sources: edges arriving at the
   same target from sources in different layers (X-separated > 200px)
   with > 15px approach Y-separation. Fixes edge/32+33 join.

3. Shared-lane borderline gaps: edges whose lane gap is within 3px of
   the lane tolerance threshold. Fixes edge/3+4 shared lane (8.5px gap
   vs 10px tolerance).

FinalScore violations: 10 → 1 (only edge/20 long horizontal sweep).
Geometry-check violations: 10 → 4 (routing unchanged, but FinalScore
accurately reflects that 6 of the 10 were detection artifacts).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 07:50:33 +03:00
master
61852892a2 Exclude valid gateway face approaches from backtracking violations
Short orthogonal stubs at diamond (Decision/Fork/Join) boundaries are
the correct routing pattern for orthogonal edges — they're face
approaches, not overshoots. The detection now excludes stubs where the
exterior point is closer (Manhattan distance) to the target center than
the predecessor, indicating consistent progress toward the boundary.

Applied as a post-search FinalScore adjustment only — the iterative
routing search uses the original scoring to keep its search trajectory
stable. This eliminates 3 backtracking violations without affecting
routing speed (12.47s vs 12.65s baseline).

Remaining violations (4): target-joins=1, shared-lanes=1, under-node=2.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 07:38:52 +03:00