From 59a9cdb8d75b57d18488bae457af7311c98b17d9 Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Fri, 9 Nov 2012 17:31:40 +1000 Subject: [PATCH] Add normalize method --- src/quaternion.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/quaternion.rs b/src/quaternion.rs index 61adb1d..5cbbc5e 100644 --- a/src/quaternion.rs +++ b/src/quaternion.rs @@ -39,6 +39,7 @@ pub trait Quaternion { pure fn inverse() -> self; pure fn length2() -> T; pure fn length() -> T; + pure fn normalize() -> self; pure fn to_Mat3() -> Mat3; pure fn to_Mat4() -> Mat4; @@ -157,6 +158,13 @@ pub impl Quat: Quaternion { self.length2().sqrt() } + #[inline(always)] + pure fn normalize() -> Quat { + let mut n: T = cast(1); + n /= self.length(); + return self.mul_t(n); + } + #[inline(always)] pure fn to_Mat3() -> Mat3 { let x2 = self.x + self.x;