master
58d2ba83ab
Collapse short doglegs: routing-level (gated) + rendering-level (30px)
...
Routing: CollapseShortDoglegs processes one dogleg at a time, accepts
only if no entry-angle/node-crossing/shared-lane regressions.
Rendering: jog filter increased to 30px to catch 19px+24px doglegs
that the routing can't collapse without violations. The filter snaps
the next point's axis to prevent diagonals.
Sharp corners (r=0) for tight doglegs where both segments < 30px.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-02 16:30:07 +03:00
..
2026-03-31 23:26:24 +03:00
2026-03-05 03:54:22 +02:00
2026-02-04 19:59:20 +02:00
2026-02-24 23:29:36 +02:00
2026-02-03 23:40:04 +02:00
2026-02-23 15:30:50 +02:00
2026-02-12 10:27:23 +02:00
2026-03-16 14:48:18 +02:00
2026-02-24 23:29:36 +02:00
2026-02-19 22:10:54 +02:00
2026-02-24 23:29:36 +02:00
2026-02-12 10:27:23 +02:00
2026-02-03 23:40:04 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-03 23:40:04 +02:00
2026-02-03 23:40:04 +02:00
2026-02-24 23:29:36 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-01 21:37:40 +02:00
2026-02-04 19:59:20 +02:00
2026-02-04 19:59:20 +02:00
2026-02-01 21:37:40 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-24 23:29:36 +02:00
2026-02-01 21:37:40 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-03 23:40:04 +02:00
2026-02-01 21:37:40 +02:00
2026-03-05 03:54:22 +02:00
2026-02-12 10:27:23 +02:00
2026-02-12 10:27:23 +02:00
2026-02-03 23:40:04 +02:00
2026-02-12 10:27:23 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-31 23:26:24 +03:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-27 12:28:00 +02:00
2026-03-31 23:26:24 +03:00
2026-03-27 12:28:00 +02:00
2026-03-31 23:26:24 +03:00
2026-04-02 16:30:07 +03:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-04 19:59:20 +02:00
2026-02-24 23:29:36 +02:00
2026-02-24 23:29:36 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-02-03 23:40:04 +02:00
2026-02-01 21:37:40 +02:00
2026-03-16 08:12:39 +02:00
2026-02-12 10:27:23 +02:00
2026-02-03 23:40:04 +02:00
2026-03-05 03:54:22 +02:00
2026-03-11 10:07:30 +02:00
2026-02-01 21:37:40 +02:00
2026-02-18 12:00:10 +02:00
2026-03-05 03:54:22 +02:00
2026-02-03 23:40:04 +02:00
2026-03-05 03:54:22 +02:00
2026-02-03 23:40:04 +02:00
2026-02-25 18:19:22 +02:00
2026-02-03 23:40:04 +02:00
2026-02-12 10:27:23 +02:00
2026-02-09 08:53:51 +02:00
2026-02-09 08:53:51 +02:00
2026-02-03 23:40:04 +02:00
2026-02-03 23:40:04 +02:00
2026-02-23 15:30:50 +02:00
2026-02-04 19:59:20 +02:00
2026-02-04 19:59:20 +02:00
2026-02-04 19:59:20 +02:00
2026-02-12 10:27:23 +02:00
2026-02-01 21:37:40 +02:00
2026-02-01 21:37:40 +02:00
2026-03-05 03:54:22 +02:00
2026-03-05 03:54:22 +02:00
2026-02-01 21:37:40 +02:00
2026-02-04 19:59:20 +02:00
2026-02-01 21:37:40 +02:00