pub fn segment_intersection( a1: Vec2, b1: Vec2, a2: Vec2, b2: Vec2, tolerance: f64, ) -> Option<[f64; 2]>