pub type Ray3f = Ray<f32, Vec3f>;
struct Ray3f { pub start: Vector3<f32>, pub direction: Vector3<f32>, /* private fields */ }
start: Vector3<f32>
direction: Vector3<f32>