You've already forked OrthoRoute
mirror of
https://github.com/bbenchoff/OrthoRoute.git
synced 2026-07-24 02:21:29 +00:00
Lifted from PR #17 by RolandWa, adapted to current main: - Board.keepouts field + _apply_keepout_obstacles + _points_in_polygon: keepout rule areas price their interior edges out of the graph (1e9), respecting keepout_tracks/keepout_vias flags per area. - EdgeAccountant.commit_path/clear_path vectorized (scatter_add / np.add.at) - was one host<->device round trip per edge on GPU. Plus a fix the feature exposed: the ROI extractor's bidirectional BFS was cost-blind, so its waves met straight through keepouts and the extracted corridor contained no legal detour - Dijkstra then paid the block cost. Blocked edges are now invisible to ROI growth (mask precomputed once per keepout application, zero overhead otherwise). Tests: blocked-edge and route-avoidance assertions pass; strict zero-overuse around the squeeze is xfail pending the oscillation-tail work (same pathology as the bare 2x8 board's 51-iteration tail).