Add diagonal elimination to hybrid winner refinement

EliminateDiagonalSegments runs in the hybrid baseline finalization but
large diagonals can re-appear during iterative optimization. Added a
conditional elimination pass in the winner refinement when
LongDiagonalViolations > 0.

NodeSpacing=40 retained (default). Tested 42/45/50/60 — each creates
different violations because the routing is tuned for 40. Wider spacing
needs its own tuning pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-04-01 16:22:52 +03:00
parent 162de72133
commit ccf8cb0318
2 changed files with 15 additions and 3 deletions

View File

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