summaryrefslogtreecommitdiff
path: root/indra/llcharacter/lljoint.cpp
diff options
context:
space:
mode:
authorprep linden <prep@lindenlab.com>2010-10-05 14:14:37 -0400
committerprep linden <prep@lindenlab.com>2010-10-05 14:14:37 -0400
commit70b2ace13130b3a0d881fb87cff0167ed811f560 (patch)
treec9360245f9757c6c2698d40fbd8db4e1efe74ddb /indra/llcharacter/lljoint.cpp
parent7be98bc20f53d6c418e01842da89c62c4002991d (diff)
Reset joint positions after detaching a rigged model
Diffstat (limited to 'indra/llcharacter/lljoint.cpp')
-rw-r--r--indra/llcharacter/lljoint.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp
index 2449b01e15..522d760c7d 100644
--- a/indra/llcharacter/lljoint.cpp
+++ b/indra/llcharacter/lljoint.cpp
@@ -239,6 +239,17 @@ void LLJoint::setPosition( const LLVector3& pos )
}
}
+
+//--------------------------------------------------------------------
+// setPosition()
+//--------------------------------------------------------------------
+void LLJoint::setDefaultFromCurrentXform( void )
+{
+ mDefaultXform = mXform;
+ touch(MATRIX_DIRTY | POSITION_DIRTY);
+
+}
+
//--------------------------------------------------------------------
// storeCurrentXform()
//--------------------------------------------------------------------
@@ -254,6 +265,14 @@ void LLJoint::restoreOldXform( void )
{
mXform = mOldXform;
}
+//--------------------------------------------------------------------
+// restoreOldXform()
+//--------------------------------------------------------------------
+void LLJoint::restoreToDefaultXform( void )
+{
+ mXform = mDefaultXform;
+ setPosition( mXform.getPosition() );
+}
//--------------------------------------------------------------------
// getWorldPosition()