fn snap_nodes_with_data_to_line<T: Clone>(
    input: &[(Pt2D, T)],
    pl: &PolyLine
) -> Vec<(Distance, T)>