Refactor: Remove AStarRouter, introduce AStarContext/AStarMetrics

This commit is contained in:
Jan Petykiewicz 2026-03-21 22:50:45 -07:00
commit a77ae781a7
23 changed files with 226 additions and 276 deletions

View file

@ -1,6 +1,6 @@
from inire.geometry.collision import CollisionEngine
from inire.geometry.primitives import Port
from inire.router.astar import AStarRouter
from inire.router.astar import AStarContext, AStarMetrics, route_astar
from inire.router.cost import CostEvaluator
from inire.router.danger_map import DangerMap
from inire.router.pathfinder import PathFinder
@ -17,8 +17,8 @@ def main() -> None:
danger_map.precompute([])
evaluator = CostEvaluator(engine, danger_map, bend_penalty=50.0, sbend_penalty=150.0)
router = AStarRouter(evaluator, snap_size=1.0, bend_radii=[10.0])
pf = PathFinder(router, evaluator)
context = AStarContext(evaluator, snap_size=1.0, bend_radii=[10.0])
pf = PathFinder(context)
# 2. Define Netlist
# Three nets that all converge on the same central area.
@ -32,7 +32,7 @@ def main() -> None:
# 3. Route with Negotiated Congestion
# We increase the base penalty to encourage faster divergence
pf = PathFinder(router, evaluator, base_congestion_penalty=1000.0)
pf = PathFinder(context, base_congestion_penalty=1000.0)
results = pf.route_all(netlist, net_widths)
# 4. Check Results