use glam::Vec3;
#[inline(always)]
pub fn transform_translate(point: Vec3, offset: Vec3) -> Vec3 {
point - offset
}
#[inline(always)]
pub fn transform_translate_inverse(point: Vec3, offset: Vec3) -> Vec3 {
point + offset
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_translate_origin() {
let offset = Vec3::new(1.0, 2.0, 3.0);
let result = transform_translate(offset, offset);
assert!((result - Vec3::ZERO).length() < 0.0001);
}
#[test]
fn test_translate_inverse() {
let point = Vec3::new(1.0, 2.0, 3.0);
let offset = Vec3::new(0.5, 0.5, 0.5);
let transformed = transform_translate(point, offset);
let restored = transform_translate_inverse(transformed, offset);
assert!((restored - point).length() < 0.0001);
}
}