use crate::types_defined::Vec3; pub fn clamp(value: f32, low: f32, high: f32) -> f32 { if value < low { return low; } if value > high { return high; } return value; } // pub fn near_zero(v: Vec3) -> bool { // const EPSILON: f32 = 1e-4; // v.x.abs() < EPSILON && v.y.abs() < EPSILON && v.z.abs() < EPSILON // } pub fn reflect(v: Vec3, n: Vec3) -> Vec3 { v - ((2.0 * v.dot(n)) * n) }