pub fn separation<T>(ray: [T; 4], v: [T; 2]) -> [T; 2]where T: Float,
Compute the shortest vector from point to ray. A ray stores starting point and directional vector.