1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
use num_traits::Bounded; use super::AABB2; /// # Examples /// ~~~ /// use aabb2::{self, AABB2}; /// assert_eq!(&aabb2::new([0.0, 0.0], [1.0, 1.0]), &AABB2{ min: [0.0, 0.0], max: [1.0, 1.0] }); /// ~~~ #[inline(always)] pub fn new<T>(min: [T; 2], max: [T; 2]) -> AABB2<T> { AABB2 { min: min, max: max } } /// # Examples /// ~~~ /// use aabb2::{self, AABB2}; /// assert_eq!(&aabb2::new_identity::<u8>(), &AABB2{ min: [255, 255], max: [0, 0] }); /// ~~~ #[inline(always)] pub fn new_identity<T>() -> AABB2<T> where T: Clone + Bounded, { let min = T::min_value(); let max = T::max_value(); AABB2 { min: [max.clone(), max], max: [min.clone(), min], } }