diff --git a/inire/router/pathfinder.py b/inire/router/pathfinder.py index 107ea7c..193853c 100644 --- a/inire/router/pathfinder.py +++ b/inire/router/pathfinder.py @@ -264,19 +264,18 @@ class PathFinder: abs(last_p.y - target.y) < 1e-6 and abs(last_p.orientation - target.orientation) < 0.1) - # 3. Add to index ONLY if it reached the target - if reached: - all_geoms = [] - all_dilated = [] - for res in path: - all_geoms.extend(res.geometry) - if res.dilated_geometry: - all_dilated.extend(res.dilated_geometry) - else: - dilation = self.cost_evaluator.collision_engine.clearance / 2.0 - all_dilated.extend([p.buffer(dilation) for p in res.geometry]) - - self.cost_evaluator.collision_engine.add_path(net_id, all_geoms, dilated_geometry=all_dilated) + # 3. Add to index (even if partial) so other nets negotiate around it + all_geoms = [] + all_dilated = [] + for res in path: + all_geoms.extend(res.geometry) + if res.dilated_geometry: + all_dilated.extend(res.dilated_geometry) + else: + dilation = self.cost_evaluator.collision_engine.clearance / 2.0 + all_dilated.extend([p.buffer(dilation) for p in res.geometry]) + + self.cost_evaluator.collision_engine.add_path(net_id, all_geoms, dilated_geometry=all_dilated) # Check if this new path has any congestion collision_count = 0