ray-trace-w1/src/math_utils.rs

21 lines
433 B
Rust

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)
}