From 1f82b6236791e6c48ec9877ff09ddb755ba05619 Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Fri, 1 Feb 2013 16:16:19 -0800 Subject: [PATCH] Fixed: KRNode::getWorldRotation() was returning erroneous euler angles. --- KREngine/kraken/KRNode.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/KREngine/kraken/KRNode.cpp b/KREngine/kraken/KRNode.cpp index 5291e8e..3bd5546 100644 --- a/KREngine/kraken/KRNode.cpp +++ b/KREngine/kraken/KRNode.cpp @@ -195,7 +195,12 @@ const KRVector3 KRNode::getWorldScale() { return KRMat4::DotNoTranslate(getModelMatrix(), m_localScale); } const KRVector3 KRNode::getWorldRotation() { - return KRMat4::DotNoTranslate(getModelMatrix(), m_localRotation); + KRVector3 world_rotation = m_localRotation; + if(m_parentNode) { + KRVector3 parent_rotation = m_parentNode->getWorldRotation(); + world_rotation = (KRQuaternion(world_rotation) * KRQuaternion(parent_rotation)).eulerXYZ(); + } + return world_rotation; } std::string KRNode::getElementName() {