1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
extern crate cgmath; type Float3 = cgmath::Vector3<f64>; #[derive(Copy, Clone)] pub struct Ray { pub origin: Float3, pub direction: Float3, } impl Ray { pub fn new(origin: Float3, direction: Float3) -> Ray { Ray { origin: origin, direction: direction, } } }