Implemented KRNode::setWorldTranslation()

Implemented KRNode::setWorldRotation()
Implemented KRNode::setWorldScale()

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%40206
This commit is contained in:
kearwood
2013-01-03 23:12:39 +00:00
parent b1db881bc6
commit 70894249c1
2 changed files with 34 additions and 0 deletions

View File

@@ -119,6 +119,36 @@ void KRNode::setLocalTranslation(const KRVector3 &v, bool set_original) {
}
invalidateModelMatrix();
}
void KRNode::setWorldTranslation(const KRVector3 &v)
{
if(m_parentNode) {
setLocalTranslation(KRMat4::Dot(m_parentNode->getInverseModelMatrix(), v));
} else {
setLocalTranslation(v);
}
}
void KRNode::setWorldRotation(const KRVector3 &v)
{
if(m_parentNode) {
setLocalRotation(KRMat4::DotNoTranslate(m_parentNode->getInverseModelMatrix(), v));
} else {
setLocalRotation(v);
}
}
void KRNode::setWorldScale(const KRVector3 &v)
{
if(m_parentNode) {
setLocalScale(KRMat4::DotNoTranslate(m_parentNode->getInverseModelMatrix(), v));
} else {
setLocalScale(v);
}
}
void KRNode::setLocalScale(const KRVector3 &v, bool set_original) {
m_localScale = v;
if(set_original) {

View File

@@ -69,6 +69,10 @@ public:
const KRVector3 getWorldScale();
const KRVector3 getWorldRotation();
void setWorldTranslation(const KRVector3 &v);
void setWorldScale(const KRVector3 &v);
void setWorldRotation(const KRVector3 &v);
virtual KRAABB getBounds();
const KRMat4 &getModelMatrix();
const KRMat4 &getInverseModelMatrix();