diff options
Diffstat (limited to 'indra/newview/llviewerjointattachment.h')
-rw-r--r-- | indra/newview/llviewerjointattachment.h | 26 |
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 |