diff options
author | prep <prep@lindenlab.com> | 2011-02-16 10:32:12 -0500 |
---|---|---|
committer | prep <prep@lindenlab.com> | 2011-02-16 10:32:12 -0500 |
commit | 8bbbcd9c22010a259d42d23c517e04fe7afd41fd (patch) | |
tree | de55aabef71e6743cb1287a6411a9d976e95a2b4 /indra/llcharacter | |
parent | 7fe0d4215e8f312f115449dba76e4fde0007241e (diff) |
Fix for SH-816
Diffstat (limited to 'indra/llcharacter')
-rw-r--r-- | indra/llcharacter/lljoint.cpp | 4 | ||||
-rw-r--r-- | indra/llcharacter/lljoint.h | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp index d68abcef5a..19907933cb 100644 --- a/indra/llcharacter/lljoint.cpp +++ b/indra/llcharacter/lljoint.cpp @@ -50,6 +50,7 @@ LLJoint::LLJoint() mUpdateXform = TRUE; mJointNum = -1; touch(); + mResetAfterRestoreOldXform = false; } @@ -250,6 +251,7 @@ void LLJoint::setDefaultFromCurrentXform( void ) void LLJoint::storeCurrentXform( const LLVector3& pos ) { mOldXform = mXform; + mResetAfterRestoreOldXform = true; setPosition( pos ); } //-------------------------------------------------------------------- @@ -257,6 +259,7 @@ void LLJoint::storeCurrentXform( const LLVector3& pos ) //-------------------------------------------------------------------- void LLJoint::restoreOldXform( void ) { + mResetAfterRestoreOldXform = false; mXform = mOldXform; } //-------------------------------------------------------------------- @@ -556,3 +559,4 @@ void LLJoint::clampRotation(LLQuaternion old_rot, LLQuaternion new_rot) } // End + diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h index cbfca588b0..dc3c58cf64 100644 --- a/indra/llcharacter/lljoint.h +++ b/indra/llcharacter/lljoint.h @@ -88,6 +88,8 @@ public: U32 mDirtyFlags; BOOL mUpdateXform; + BOOL mResetAfterRestoreOldXform; + // describes the skin binding pose LLVector3 mSkinOffset; @@ -181,10 +183,17 @@ public: void restoreOldXform( void ); void restoreToDefaultXform( void ); void setDefaultFromCurrentXform( void ); - void storeCurrentXform( const LLVector3& pos ); + + //Accessor for the joint id LLUUID getId( void ) { return mId; } + //Setter for the joints id void setId( const LLUUID& id ) { mId = id;} + + //If the old transform flag has been set, then the reset logic in avatar needs to be aware(test) of it + const BOOL doesJointNeedToBeReset( void ) const { return mResetAfterRestoreOldXform; } + //Setter for joint reset flag + void setJointToBeReset( BOOL val ) { mResetAfterRestoreOldXform = val; } }; #endif // LL_LLJOINT_H |