From e097950277ce4b2ab13b6b1ba6bbee2f8a587973 Mon Sep 17 00:00:00 2001 From: Eric Levin Date: Mon, 4 May 2015 15:22:10 -0700 Subject: [PATCH] added axis and angle helper methods to Quat class- script user can now get normalized axis and scalar angle from a quaternion --- libraries/script-engine/src/Quat.cpp | 8 ++++++++ libraries/script-engine/src/Quat.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/libraries/script-engine/src/Quat.cpp b/libraries/script-engine/src/Quat.cpp index a44a623b1e..9299f64c46 100644 --- a/libraries/script-engine/src/Quat.cpp +++ b/libraries/script-engine/src/Quat.cpp @@ -63,6 +63,14 @@ glm::quat Quat::angleAxis(float angle, const glm::vec3& v) { return glm::angleAxis(glm::radians(angle), v); } +glm::vec3 Quat::axis(const glm::quat& orientation) { + return glm::axis(orientation); +} + +float Quat::angle(const glm::quat &orientation) { + return glm::angle(orientation); +} + glm::quat Quat::mix(const glm::quat& q1, const glm::quat& q2, float alpha) { return safeMix(q1, q2, alpha); } diff --git a/libraries/script-engine/src/Quat.h b/libraries/script-engine/src/Quat.h index 55bfa3c061..1f130c57c7 100644 --- a/libraries/script-engine/src/Quat.h +++ b/libraries/script-engine/src/Quat.h @@ -35,6 +35,8 @@ public slots: glm::vec3 getUp(const glm::quat& orientation); glm::vec3 safeEulerAngles(const glm::quat& orientation); // degrees glm::quat angleAxis(float angle, const glm::vec3& v); // degrees + glm::vec3 axis(const glm::quat& orientation); + float angle(const glm::quat& orientation); glm::quat mix(const glm::quat& q1, const glm::quat& q2, float alpha); glm::quat slerp(const glm::quat& q1, const glm::quat& q2, float alpha); glm::quat squad(const glm::quat& q1, const glm::quat& q2, const glm::quat& s1, const glm::quat& s2, float h);