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();