Translate method for AABBs

This commit is contained in:
Risto Saarelma 2014-02-01 10:12:27 +02:00
parent 6ac1f09750
commit ff9fc767d4
2 changed files with 8 additions and 0 deletions

View file

@ -51,6 +51,11 @@ pub trait Aabb
let mx : P = build(|i| self.max().i(i).max(p.i(i)));
Aabb::new(&mn, &mx)
}
// Returns a new AABB that has its points translated by the given vector.
fn translate(&self, v: &V) -> Self {
Aabb::new(&self.min().add_v(v), &self.max().add_v(v))
}
}
#[deriving(Clone, Eq)]

View file

@ -35,4 +35,7 @@ fn test_aabb() {
assert!(!aabb.contains(&Point3::new(10, 30, 5)));
assert!(aabb.contains(&Point3::new(-20, -10, -5)));
assert!(!aabb.contains(&Point3::new(-21, -11, -6)));
assert_eq!(aabb.translate(&Vec3::new(1, 2, 3)),
Aabb3::new(&Point3::new(-19, 32, 8), &Point3::new(11, -8, -2)));
}