From a47892657055336c5b1be64a5be7c53d35491359 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 9 Jun 2013 16:00:44 +0200 Subject: [PATCH] Fixed (I hope) Matrix4::GetRotation() Former-commit-id: 9480437dde664034d7e44c81a3931922c215b646 --- include/Nazara/Math/Matrix4.inl | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/include/Nazara/Math/Matrix4.inl b/include/Nazara/Math/Matrix4.inl index 3b271681e..32f34ae19 100644 --- a/include/Nazara/Math/Matrix4.inl +++ b/include/Nazara/Math/Matrix4.inl @@ -441,9 +441,9 @@ NzQuaternion NzMatrix4::GetRotation() const { float s = F(0.5)/std::sqrt(trace + F(1.0)); quat.w = F(0.25) / s; - quat.x = (m32 - m23) * s; - quat.y = (m13 - m31) * s; - quat.z = (m21 - m12) * s; + quat.x = (m23 - m32) * s; + quat.y = (m31 - m13) * s; + quat.z = (m12 - m21) * s; } else { @@ -451,27 +451,27 @@ NzQuaternion NzMatrix4::GetRotation() const { float s = F(2.0) * std::sqrt(F(1.0) + m11 - m22 - m33); - quat.w = (m32 - m23) / s; + quat.w = (m23 - m32) / s; quat.x = F(0.25) * s; - quat.y = (m12 + m21) / s; - quat.z = (m13 + m31) / s; + quat.y = (m21 + m12) / s; + quat.z = (m31 + m13) / s; } else if (m22 > m33) { float s = F(2.0) * std::sqrt(F(1.0) + m22 - m11 - m33); - quat.w = (m13 - m31) / s; - quat.x = (m12 + m21) / s; + quat.w = (m31 - m13) / s; + quat.x = (m21 + m12) / s; quat.y = F(0.25) * s; - quat.z = (m23 + m32) / s; + quat.z = (m32 + m23) / s; } else { float s = F(2.0) * std::sqrt(F(1.0) + m33 - m11 - m22); - quat.w = (m21 - m12) / s; - quat.x = (m13 + m31) / s; - quat.y = (m23 + m32) / s; + quat.w = (m12 - m21) / s; + quat.x = (m31 + m13) / s; + quat.y = (m32 + m23) / s; quat.z = F(0.25) * s; } }