diff --git a/src/__Libraries/StellaOps.ElkSharp/ElkEdgeRouterIterative.WinnerRefinement.Hybrid.cs b/src/__Libraries/StellaOps.ElkSharp/ElkEdgeRouterIterative.WinnerRefinement.Hybrid.cs index fcf1ee364..c10dc0e35 100644 --- a/src/__Libraries/StellaOps.ElkSharp/ElkEdgeRouterIterative.WinnerRefinement.Hybrid.cs +++ b/src/__Libraries/StellaOps.ElkSharp/ElkEdgeRouterIterative.WinnerRefinement.Hybrid.cs @@ -324,35 +324,16 @@ internal static partial class ElkEdgeRouterIterative // corridors so they're visually distinct. var localCorridorY = baseCorridorY - (corridorFixed * (nodeSizeClearance * 2d)); - List newPath; - if (tgtNode is not null) + // Route through corridor then drop to the ORIGINAL target + // endpoint (which the router placed on the actual node boundary). + var newPath = new List { - // Drop to left of target, then approach from the left face. - // All End-targeting edges enter from the same direction for - // a clean fan-in instead of a 3-face tangle. - var dropX = tgtNode.X - 24d - (corridorFixed * (nodeSizeClearance * 2d)); - var entryY = tgtNode.Y + (tgtNode.Height * (0.33d + corridorFixed * 0.34d)); - newPath = - [ - src, - new() { X = stubX, Y = src.Y }, - new() { X = stubX, Y = localCorridorY }, - new() { X = dropX, Y = localCorridorY }, - new() { X = dropX, Y = entryY }, - new() { X = tgtNode.X, Y = entryY }, - ]; - } - else - { - newPath = - [ - src, - new() { X = stubX, Y = src.Y }, - new() { X = stubX, Y = localCorridorY }, - new() { X = tgt.X, Y = localCorridorY }, - tgt, - ]; - } + src, + new() { X = stubX, Y = src.Y }, + new() { X = stubX, Y = localCorridorY }, + new() { X = tgt.X, Y = localCorridorY }, + tgt, + }; corridorResult[ei] = new ElkRoutedEdge { Id = edge.Id, SourceNodeId = edge.SourceNodeId, TargetNodeId = edge.TargetNodeId,