summaryrefslogtreecommitdiff
path: root/indra/newview/lljoystickbutton.h
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2020-04-26 21:57:40 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2020-04-26 21:57:40 +0300
commita0d7d873552dc1611eb4f8957cf99e777b199dbe (patch)
tree4d2bff47d6d7bd253076473c85f43f17eedbc12c /indra/newview/lljoystickbutton.h
parent2ea5c5986a467e253ad0131b4af0faee23b263a4 (diff)
parentd7f1c88c35849e56f5b352f13c16a08467d1533b (diff)
Merge branch 'master' into DRTVWR-460
# Conflicts: # indra/llmath/llquaternion.h # indra/newview/lldrawpoolwater.cpp # indra/newview/lljoystickbutton.cpp # indra/newview/llvosky.cpp # indra/newview/skins/default/textures/textures.xml
Diffstat (limited to 'indra/newview/lljoystickbutton.h')
-rw-r--r--indra/newview/lljoystickbutton.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h
index 3e29215f61..b7fdf63e58 100644
--- a/indra/newview/lljoystickbutton.h
+++ b/indra/newview/lljoystickbutton.h
@@ -30,6 +30,7 @@
#include "llbutton.h"
#include "llcoord.h"
#include "llviewertexture.h"
+#include "llquaternion.h"
typedef enum e_joystick_quadrant
{
@@ -185,4 +186,47 @@ public:
virtual void resetJoystickCamera();
};
+//
+class LLJoystickQuaternion :
+ public LLJoystick
+{
+public:
+ struct Params :
+ public LLInitParam::Block<Params, LLJoystick::Params>
+ {
+ Params();
+ };
+
+ LLJoystickQuaternion(const LLJoystickQuaternion::Params &);
+
+ virtual void setToggleState(BOOL left, BOOL top, BOOL right, BOOL bottom);
+
+ virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
+ virtual void onHeldDown();
+ virtual void draw();
+
+ void setRotation(const LLQuaternion &value);
+ LLQuaternion getRotation() const;
+
+protected:
+ F32 getOrbitRate();
+ virtual void updateSlop();
+ void drawRotatedImage(LLPointer<LLUIImage> image, S32 rotations);
+
+ BOOL mInLeft;
+ BOOL mInTop;
+ BOOL mInRight;
+ BOOL mInBottom;
+
+ S32 mXAxisIndex;
+ S32 mYAxisIndex;
+ S32 mZAxisIndex;
+
+ LLVector3 mVectorZero;
+ LLQuaternion mRotation;
+ LLVector3 mUpDnAxis;
+ LLVector3 mLfRtAxis;
+};
+
#endif // LL_LLJOYSTICKBUTTON_H