summaryrefslogtreecommitdiff
path: root/indra/newview/llhudeffectbeam.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/llhudeffectbeam.h
Print done when done.
Diffstat (limited to 'indra/newview/llhudeffectbeam.h')
-rw-r--r--indra/newview/llhudeffectbeam.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/indra/newview/llhudeffectbeam.h b/indra/newview/llhudeffectbeam.h
new file mode 100644
index 0000000000..9cb28ac1dc
--- /dev/null
+++ b/indra/newview/llhudeffectbeam.h
@@ -0,0 +1,51 @@
+/**
+ * @file llhudeffectbeam.h
+ * @brief LLHUDEffectBeam class definition
+ *
+ * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLHUDEFFECTBEAM_H
+#define LL_LLHUDEFFECTBEAM_H
+
+#include "llhudeffect.h"
+
+#include "llframetimer.h"
+
+#include "llinterp.h"
+
+class LLViewerObject;
+
+const S32 NUM_POINTS = 5;
+
+class LLHUDEffectBeam : public LLHUDEffect
+{
+public:
+ /*virtual*/ void setSourceObject(LLViewerObject *objp);
+
+ // A beam can have either a target object or a target position
+ void setTargetObject(LLViewerObject *objp);
+ void setTargetPos(const LLVector3d &target_pos_global);
+
+ friend class LLHUDObject;
+protected:
+ LLHUDEffectBeam(const U8 type);
+ ~LLHUDEffectBeam();
+
+ /*virtual*/ void render();
+ /*virtual*/ void packData(LLMessageSystem *mesgsys);
+ /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
+private:
+ void setupParticle(const S32 i);
+
+
+ F32 mKillTime;
+ LLFrameTimer mTimer;
+ LLInterpLinear<LLVector3d> mInterp[NUM_POINTS];
+ LLInterpLinear<F32> mInterpFade[NUM_POINTS];
+ LLInterpLinear<F32> mFadeInterp;
+ LLVector3d mTargetPos;
+};
+
+#endif // LL_LLHUDEFFECTBEAM_H