fn segment_to_points(segment: &[(isize, isize)]) -> Vec<(isize, isize)>