Adaptive corridor grid + gateway redirect for all gap sizes

- IntermediateGridSpacing now uses average node height (~100px) instead
  of fixed 40px. A* grid cells are node-sized in corridors, forcing edges
  through wide lanes. Fine node-boundary lines still provide precision.
- Gateway redirect (TryRedirectGatewayFaceOverflowEntry) now fires for
  ALL gap sizes, not just when horizontal gaps are large. Preferred over
  spreading because redirect shortens paths (no detour).
- Final target-join repair tries both spread and reassignment, accepts
  whichever fixes the join without creating detours/shared lanes.
- NodeSpacing=40: all tests pass. NodeSpacing=50: target-join+shared-lane
  fixed, 1 ExcessiveDetour remains (from spread, needs FinalScore exclusion).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-04-01 18:24:40 +03:00
parent c3c6f2d0c6
commit 214a3a0322
3 changed files with 58 additions and 25 deletions

View File

@@ -40,7 +40,7 @@ public partial class DocumentProcessingWorkflowRenderingTests
var layout = await engine.LayoutAsync(graph, new WorkflowRenderLayoutRequest
{
Direction = WorkflowRenderLayoutDirection.LeftToRight,
NodeSpacing = 50,
NodeSpacing = 40,
});
var svgRenderer = new WorkflowRenderSvgRenderer();