Skip to main content

push_route_riders

Function push_route_riders 

Source
pub(crate) fn push_route_riders(
    indexed: &IndexedDocument<'_>,
    moved: &HashSet<PinId>,
    scopes: &HashSet<BlockId>,
    grid: GridVec,
    builder: &mut CommitBuilder,
)
Expand description

The two waypoint riders a move owes its wires: a route with both endpoints riding keeps its shape, so its corners translate rigidly; one that straddles the move drops its stale approach on the moved side so the re-route rebuilds a clean one. Only wires drawn in a scope the move happened in are reconciled — a moved block’s interior did not move with it, however many of its pins the wires in there land on.

With a zero grid only the straddlers change: what a single shape’s drop and a pin drag owe their wires.