From 86d5a4e6a666dbbce3a8e1a08ac688df7576eb6a Mon Sep 17 00:00:00 2001 From: kearwood Date: Thu, 3 Jan 2013 21:42:50 +0000 Subject: [PATCH] Implemented KRNode::getWorldRotation() Implemented KRNode::getWorldScale() Implemented KRNode::getWorldTranslation() --HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%40204 --- KREngine/KREngine/Classes/KRNode.cpp | 13 +++++++------ KREngine/KREngine/Classes/KRNode.h | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/KREngine/KREngine/Classes/KRNode.cpp b/KREngine/KREngine/Classes/KRNode.cpp index 6f6875f..a6bdb59 100644 --- a/KREngine/KREngine/Classes/KRNode.cpp +++ b/KREngine/KREngine/Classes/KRNode.cpp @@ -157,14 +157,15 @@ const KRVector3 &KRNode::getInitialLocalRotation() { return m_initialLocalRotation; } -const KRVector3 &KRNode::getWorldTranslation() { - return m_localTranslation; +const KRVector3 KRNode::getWorldTranslation() { + return KRMat4::Dot(getModelMatrix(), KRVector3::Zero()); } -const KRVector3 &KRNode::getWorldScale() { - return m_localScale; + +const KRVector3 KRNode::getWorldScale() { + return KRMat4::DotNoTranslate(getModelMatrix(), m_localScale); } -const KRVector3 &KRNode::getWorldRotation() { - return m_localRotation; +const KRVector3 KRNode::getWorldRotation() { + return KRMat4::DotNoTranslate(getModelMatrix(), m_localRotation); } std::string KRNode::getElementName() { diff --git a/KREngine/KREngine/Classes/KRNode.h b/KREngine/KREngine/Classes/KRNode.h index aaea650..2c18a78 100644 --- a/KREngine/KREngine/Classes/KRNode.h +++ b/KREngine/KREngine/Classes/KRNode.h @@ -65,9 +65,9 @@ public: const KRVector3 &getInitialLocalScale(); const KRVector3 &getInitialLocalRotation(); - const KRVector3 &getWorldTranslation(); - const KRVector3 &getWorldScale(); - const KRVector3 &getWorldRotation(); + const KRVector3 getWorldTranslation(); + const KRVector3 getWorldScale(); + const KRVector3 getWorldRotation(); virtual KRAABB getBounds(); const KRMat4 &getModelMatrix();