summaryrefslogtreecommitdiff
path: root/src/geometry/vec.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/geometry/vec.rs')
-rw-r--r--src/geometry/vec.rs8
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 {