diff options
Diffstat (limited to 'src/geometry/vec.rs')
-rw-r--r-- | src/geometry/vec.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/geometry/vec.rs b/src/geometry/vec.rs index f6bd29f..ab2210d 100644 --- a/src/geometry/vec.rs +++ b/src/geometry/vec.rs @@ -1,5 +1,5 @@ use std::ops::*; -use num_traits::{NumOps, NumAssignOps}; +use num_traits::{NumOps, NumAssignOps, Signed}; use num_traits::pow::Pow; use num_traits::real::Real; @@ -21,6 +21,12 @@ macro_rules! impl_vector { $VecN { $($field),+ } } } + + impl<T: NumOps + Ord + Signed + Copy> $VecN<T> { + pub fn walking_distance(&self) -> T { + fold_array!(max, { $(self.$field.abs()),+ }) + } + } impl<T: NumOps + Pow<u8, Output=T> + Copy> $VecN<T> { pub fn magnitude_squared(&self) -> T { |