summaryrefslogtreecommitdiff
path: root/indra/llcharacter/lljoint.h
diff options
context:
space:
mode:
authorsimon <none@none>2014-12-02 10:41:20 -0800
committersimon <none@none>2014-12-02 10:41:20 -0800
commit4f076daeff1bb626bb90a57cbe91660349ec62f1 (patch)
treef3f09166aa11060ba16847277201c55d0664c181 /indra/llcharacter/lljoint.h
parent47423ad1a0d349f263ab1c2f0ceca299e418bbbc (diff)
parent147d1922450f289fe675dc6f0ccce9094db13b38 (diff)
Merge downstream code and become 3.7.22
Diffstat (limited to 'indra/llcharacter/lljoint.h')
-rwxr-xr-xindra/llcharacter/lljoint.h32
1 files changed, 21 insertions, 11 deletions
diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h
index 0ef054d9c1..2abe1d6db1 100755
--- a/indra/llcharacter/lljoint.h
+++ b/indra/llcharacter/lljoint.h
@@ -46,6 +46,21 @@ const U32 LL_FACE_JOINT_NUM = 30;
const S32 LL_CHARACTER_MAX_PRIORITY = 7;
const F32 LL_MAX_PELVIS_OFFSET = 5.f;
+class LLPosOverrideMap
+{
+public:
+ LLPosOverrideMap() {}
+ bool findActiveOverride(LLUUID& mesh_id, LLVector3& pos) const;
+ void showJointPosOverrides(std::ostringstream& os) const;
+ U32 count() const;
+ void add(const LLUUID& mesh_id, const LLVector3& pos);
+ bool remove(const LLUUID& mesh_id);
+ void clear();
+private:
+ typedef std::map<LLUUID,LLVector3> map_type;
+ map_type m_map;
+};
+
//-----------------------------------------------------------------------------
// class LLJoint
//-----------------------------------------------------------------------------
@@ -99,17 +114,10 @@ public:
static S32 sNumTouches;
static S32 sNumUpdates;
- struct AttachmentOverrideRecord
- {
- AttachmentOverrideRecord();
- LLVector3 pos;
- std::string name;
- };
- typedef std::map<std::string,AttachmentOverrideRecord> attachment_map_t;
- attachment_map_t m_attachmentOverrides;
+ LLPosOverrideMap m_attachmentOverrides;
LLVector3 m_posBeforeOverrides;
- void updatePos();
+ void updatePos(const std::string& av_info);
public:
LLJoint();
@@ -192,8 +200,10 @@ public:
S32 getJointNum() const { return mJointNum; }
- void addAttachmentPosOverride( const LLVector3& pos, const std::string& attachment_name );
- void removeAttachmentPosOverride( const std::string& attachment_name );
+ void addAttachmentPosOverride( const LLVector3& pos, const LLUUID& mesh_id, const std::string& av_info );
+ void removeAttachmentPosOverride( const LLUUID& mesh_id, const std::string& av_info );
+ bool hasAttachmentPosOverride( LLVector3& pos, LLUUID& mesh_id ) const;
+ void clearAttachmentPosOverrides();
//Accessor for the joint id
LLUUID getId( void ) { return mId; }