usecrate::internal::*;#[derive(Clone, Copy)]pubstructRay{puborig: Vec3,
pubdir: Vec3,
}implRay{pubfnnew(orig: Vec3, dir: Vec3)->Self{Self{ orig, dir }}/// When `temp` describes the real numbers, `self.project(temp)`
/// describes all of the line with the direction of `self.dir`
pubfnproject(&self, temp:f64)-> Vec3{self.orig +self.dir * temp
}}