pub fn intersection_polygon(
    intersection_id: NodeID,
    intersection_roads: BTreeSet<OriginalRoad>,
    roads: &mut BTreeMap<OriginalRoad, Road>,
    trim_roads_for_merging: &BTreeMap<(WayID, bool), Pt2D>
) -> Result<(Polygon, Vec<(String, Polygon)>)>
Expand description

Also returns a list of labeled polygons for debugging.

Ideally, the resulting polygon should exist entirely within the thick bands around all original roads – it just carves up part of that space, doesn’t reach past it. But that’s not always true yet.