summaryrefslogtreecommitdiff
path: root/indra/newview/llhudobject.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llhudobject.h
Print done when done.
Diffstat (limited to 'indra/newview/llhudobject.h')
-rw-r--r--indra/newview/llhudobject.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/indra/newview/llhudobject.h b/indra/newview/llhudobject.h
new file mode 100644
index 0000000000..1148dd6521
--- /dev/null
+++ b/indra/newview/llhudobject.h
@@ -0,0 +1,96 @@
+/**
+ * @file llhudobject.h
+ * @brief LLHUDObject class definition
+ *
+ * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLHUDOBJECT_H
+#define LL_LLHUDOBJECT_H
+
+/**
+ * Base class and manager for in-world 2.5D non-interactive objects
+ */
+
+#include "llmemory.h"
+
+#include "v4color.h"
+#include "v3math.h"
+#include "v3dmath.h"
+#include "linked_lists.h"
+#include "lldrawpool.h"
+#include <list>
+
+class LLViewerCamera;
+class LLFontGL;
+class LLFace;
+class LLViewerObject;
+
+class LLHUDObject : public LLRefCount
+{
+public:
+ virtual void markDead();
+ virtual F32 getDistance() const;
+ virtual void setSourceObject(LLViewerObject* objectp);
+ virtual void setTargetObject(LLViewerObject* objectp);
+ virtual LLViewerObject* getSourceObject() { return mSourceObject; }
+ virtual LLViewerObject* getTargetObject() { return mTargetObject; }
+
+ void setPositionGlobal(const LLVector3d &position_global);
+ void setPositionAgent(const LLVector3 &position_agent);
+
+ BOOL isVisible() const { return mVisible; }
+
+ U8 getType() const { return mType; }
+
+ static LLHUDObject *addHUDObject(const U8 type);
+ static void updateAll();
+ static void renderAll();
+ static void renderAllForSelect();
+
+ static void cleanupHUDObjects();
+
+ enum
+ {
+ LL_HUD_TEXT,
+ LL_HUD_ICON,
+ LL_HUD_CONNECTOR,
+ LL_HUD_FLEXIBLE_OBJECT, // Ventrella
+ LL_HUD_ANIMAL_CONTROLS, // Ventrella
+ LL_HUD_LOCAL_ANIMATION_OBJECT, // Ventrella
+ LL_HUD_CLOTH, // Ventrella
+ LL_HUD_EFFECT_BEAM,
+ LL_HUD_EFFECT_GLOW,
+ LL_HUD_EFFECT_POINT,
+ LL_HUD_EFFECT_TRAIL,
+ LL_HUD_EFFECT_SPHERE,
+ LL_HUD_EFFECT_SPIRAL,
+ LL_HUD_EFFECT_EDIT,
+ LL_HUD_EFFECT_LOOKAT,
+ LL_HUD_EFFECT_POINTAT
+ };
+protected:
+ static void sortObjects();
+
+ LLHUDObject(const U8 type);
+ virtual ~LLHUDObject();
+
+ virtual void render() = 0;
+ virtual void renderForSelect() {};
+
+protected:
+ U8 mType;
+ BOOL mDead;
+ BOOL mVisible;
+ LLVector3d mPositionGlobal;
+ BOOL mOnHUDAttachment;
+ LLPointer<LLViewerObject> mSourceObject;
+ LLPointer<LLViewerObject> mTargetObject;
+
+private:
+ typedef std::list<LLPointer<LLHUDObject> > hud_object_list_t;
+ static hud_object_list_t sHUDObjects;
+};
+
+#endif // LL_LLHUDOBJECT_H