summaryrefslogtreecommitdiff
path: root/indra/llcharacter/lljoint.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcharacter/lljoint.h')
-rwxr-xr-xindra/llcharacter/lljoint.h29
1 files changed, 22 insertions, 7 deletions
diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h
index b65d6979d4..f6f1cd2fe4 100755
--- a/indra/llcharacter/lljoint.h
+++ b/indra/llcharacter/lljoint.h
@@ -88,8 +88,6 @@ public:
U32 mDirtyFlags;
BOOL mUpdateXform;
- BOOL mResetAfterRestoreOldXform;
-
// describes the skin binding pose
LLVector3 mSkinOffset;
@@ -103,6 +101,25 @@ public:
static S32 sNumTouches;
static S32 sNumUpdates;
+ struct AttachmentOverrideRecord
+ {
+ AttachmentOverrideRecord()
+ {
+ }
+ LLVector3 pos;
+ std::string name;
+
+ bool operator<(const AttachmentOverrideRecord& other) const
+ {
+ return name < other.name;
+ }
+ };
+ typedef std::map<std::string,AttachmentOverrideRecord> attachment_map_t;
+ attachment_map_t m_attachmentOverrides;
+ LLVector3 m_posBeforeOverrides;
+
+ void updatePos();
+
public:
LLJoint();
LLJoint(S32 joint_num);
@@ -188,15 +205,13 @@ public:
void setDefaultFromCurrentXform( void );
void storeCurrentXform( const LLVector3& pos );
+ void addAttachmentPosOverride( const LLVector3& pos, const std::string& attachment_name );
+ void removeAttachmentPosOverride( const std::string& attachment_name );
+
//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; }
- void setJointResetFlag( bool val ) { mResetAfterRestoreOldXform = val; }
-
};
#endif // LL_LLJOINT_H