pub fn intersection_line_aabb<T: Float + MulAdd<T, T, Output = T> + Debug>( p: Vec3<T>, dir: Vec3<T>, bounds: Aabb<T>, ) -> Option<Vec3<T>>