summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerjointattachment.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerjointattachment.h')
-rw-r--r--indra/newview/llviewerjointattachment.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h
index c003579684..221b5460f1 100644
--- a/indra/newview/llviewerjointattachment.h
+++ b/indra/newview/llviewerjointattachment.h
@@ -82,9 +82,9 @@ public:
S32 getGroup() const { return mGroup; }
S32 getPieSlice() const { return mPieSlice; }
- LLViewerObject *getObject() const { return mAttachedObject; }
- S32 getNumObjects() const { return (mAttachedObject ? 1 : 0); }
- const LLUUID& getItemID() const { return mItemID; }
+ S32 getNumObjects() const { return mAttachedObjects.size(); }
+
+ void clampObjectPosition();
//
// unique methods
@@ -92,21 +92,27 @@ public:
BOOL addObject(LLViewerObject* object);
void removeObject(LLViewerObject *object);
- void setupDrawable(LLDrawable* drawable);
- void clampObjectPosition();
+ //
+ // attachments operations
+ //
+ BOOL isObjectAttached(const LLViewerObject *viewer_object) const;
+ const LLViewerObject *getAttachedObject(const LLUUID &object_id) const;
+ LLViewerObject *getAttachedObject(const LLUUID &object_id);
+
+ // list of attachments for this joint
+ typedef std::vector<LLViewerObject *> attachedobjs_vec_t;
+ attachedobjs_vec_t mAttachedObjects;
protected:
void calcLOD();
-
-protected:
- // Backlink only; don't make this an LLPointer.
- LLViewerObject* mAttachedObject;
+ void setupDrawable(LLViewerObject *object);
+
+private:
BOOL mVisibleInFirst;
LLVector3 mOriginalPos;
S32 mGroup;
BOOL mIsHUDAttachment;
S32 mPieSlice;
- LLUUID mItemID; // Inventory item id of the attached item (null if not in inventory)
};
#endif // LL_LLVIEWERJOINTATTACHMENT_H