use std::f64::consts::PI;
pub fn deg_to_rad(deg: f64) -> f64 {
deg * PI / 180.0
}
pub fn rad_to_deg(rad: f64) -> f64 {
rad * 180.0 / PI
}
pub fn clamp(value: f64, min: f64, max: f64) -> f64 {
value.clamp(min, max)
}
pub fn log10_safe(x: f64) -> f64 {
if x <= 0.0 {
return f64::NEG_INFINITY;
}
x.log10()
}
pub fn lerp(a: f64, b: f64, t: f64) -> f64 {
a + (b - a) * t
}
pub fn spherical_to_cartesian(r: f64, theta: f64, phi: f64) -> (f64, f64, f64) {
let x = r * theta.sin() * phi.cos();
let y = r * theta.sin() * phi.sin();
let z = r * theta.cos();
(x, y, z)
}