47 lines
1.9 KiB
Rust
47 lines
1.9 KiB
Rust
use cgmath::aabb::*;
|
|
use cgmath::point::{Point2, Point3};
|
|
use cgmath::vector::{Vec2, Vec3};
|
|
|
|
#[test]
|
|
fn test_aabb() {
|
|
let aabb = Aabb2::new(Point2::new(-20, 30), Point2::new(10, -10));
|
|
assert_eq!(aabb.min(), &Point2::new(-20, -10));
|
|
assert_eq!(aabb.max(), &Point2::new(10, 30));
|
|
assert_eq!(aabb.dim(), Vec2::new(30, 40));
|
|
assert_eq!(aabb.volume(), 30 * 40);
|
|
assert_eq!(aabb.center(), Point2::new(-5, 10));
|
|
|
|
assert!(aabb.contains(&Point2::new(0, 0)));
|
|
assert!(!aabb.contains(&Point2::new(-50, -50)));
|
|
assert!(!aabb.contains(&Point2::new(50, 50)));
|
|
|
|
assert_eq!(aabb.grow(&Point2::new(0, 0)), aabb);
|
|
assert_eq!(aabb.grow(&Point2::new(100, 100)),
|
|
Aabb2::new(Point2::new(-20, -10), Point2::new(100, 100)));
|
|
assert_eq!(aabb.grow(&Point2::new(-100, -100)),
|
|
Aabb2::new(Point2::new(-100, -100), Point2::new(10, 30)));
|
|
|
|
let aabb = Aabb3::new(Point3::new(-20, 30, 5), Point3::new(10, -10, -5));
|
|
assert_eq!(aabb.min(), &Point3::new(-20, -10, -5));
|
|
assert_eq!(aabb.max(), &Point3::new(10, 30, 5));
|
|
assert_eq!(aabb.dim(), Vec3::new(30, 40, 10));
|
|
assert_eq!(aabb.volume(), 30 * 40 * 10);
|
|
assert_eq!(aabb.center(), Point3::new(-5, 10, 0));
|
|
|
|
assert!(aabb.contains(&Point3::new(0, 0, 0)));
|
|
assert!(!aabb.contains(&Point3::new(-100, 0, 0)));
|
|
assert!(!aabb.contains(&Point3::new(100, 0, 0)));
|
|
assert!(aabb.contains(&Point3::new(9, 29, -1)));
|
|
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.add_v(&Vec3::new(1, 2, 3)),
|
|
Aabb3::new(Point3::new(-19, 32, 8), Point3::new(11, -8, -2)));
|
|
|
|
assert_eq!(aabb.mul_s(2),
|
|
Aabb3::new(Point3::new(-40, -20, -10), Point3::new(20, 60, 10)));
|
|
|
|
assert_eq!(aabb.mul_v(&Vec3::new(1, 2, 3)),
|
|
Aabb3::new(Point3::new(-20, -20, -15), Point3::new(10, 60, 15)));
|
|
}
|