llhudobject.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLHUDOBJECT_H
00033 #define LL_LLHUDOBJECT_H
00034 
00039 #include "llmemory.h"
00040 
00041 #include "v4color.h"
00042 #include "v3math.h"
00043 #include "v3dmath.h"
00044 #include "lldrawpool.h"
00045 #include <list>
00046 
00047 class LLViewerCamera;
00048 class LLFontGL;
00049 class LLFace;
00050 class LLViewerObject;
00051 class LLHUDEffect;
00052 
00053 class LLHUDObject : public LLRefCount
00054 {
00055 public:
00056         virtual void markDead();
00057         virtual F32 getDistance() const;
00058         virtual void setSourceObject(LLViewerObject* objectp);
00059         virtual void setTargetObject(LLViewerObject* objectp);
00060         virtual LLViewerObject* getSourceObject() { return mSourceObject; }
00061         virtual LLViewerObject* getTargetObject() { return mTargetObject; }
00062 
00063         void setPositionGlobal(const LLVector3d &position_global);
00064         void setPositionAgent(const LLVector3 &position_agent);
00065 
00066         BOOL isVisible() const { return mVisible; }
00067 
00068         U8 getType() const { return mType; }
00069 
00070         static LLHUDObject *addHUDObject(const U8 type);
00071         static LLHUDEffect *addHUDEffect(const U8 type);
00072         static void updateAll();
00073         static void renderAll();
00074         static void renderAllForSelect();
00075 
00076         static void cleanupHUDObjects();
00077 
00078         enum
00079         {
00080                 LL_HUD_TEXT,
00081                 LL_HUD_ICON,
00082                 LL_HUD_CONNECTOR,
00083                 LL_HUD_FLEXIBLE_OBJECT,                 // Ventrella
00084                 LL_HUD_ANIMAL_CONTROLS,                 // Ventrella
00085                 LL_HUD_LOCAL_ANIMATION_OBJECT,  // Ventrella
00086                 LL_HUD_CLOTH,                                   // Ventrella
00087                 LL_HUD_EFFECT_BEAM,
00088                 LL_HUD_EFFECT_GLOW,
00089                 LL_HUD_EFFECT_POINT,
00090                 LL_HUD_EFFECT_TRAIL,
00091                 LL_HUD_EFFECT_SPHERE,
00092                 LL_HUD_EFFECT_SPIRAL,
00093                 LL_HUD_EFFECT_EDIT,
00094                 LL_HUD_EFFECT_LOOKAT,
00095                 LL_HUD_EFFECT_POINTAT,
00096                 LL_HUD_EFFECT_VOICE_VISUALIZER  // Ventrella
00097         };
00098 protected:
00099         static void sortObjects();
00100 
00101         LLHUDObject(const U8 type);
00102         ~LLHUDObject();
00103 
00104         virtual void render() = 0;
00105         virtual void renderForSelect() {};
00106         
00107 protected:
00108         U8                              mType;
00109         BOOL                    mDead;
00110         BOOL                    mVisible;
00111         LLVector3d              mPositionGlobal;
00112         BOOL                    mOnHUDAttachment;
00113         LLPointer<LLViewerObject> mSourceObject;
00114         LLPointer<LLViewerObject> mTargetObject;
00115 
00116 private:
00117         typedef std::list<LLPointer<LLHUDObject> > hud_object_list_t;
00118         static hud_object_list_t sHUDObjects;
00119 };
00120 
00121 #endif // LL_LLHUDOBJECT_H

Generated on Fri May 16 08:33:40 2008 for SecondLife by  doxygen 1.5.5