17 #ifndef hifi_PointerEvent_h
18 #define hifi_PointerEvent_h
23 #include <glm/glm.hpp>
25 #include "ScriptValue.h"
29 #define POINTEREVENT_SCROLL_SENSITIVITY -16.0f
37 SecondaryButton = 0x2,
52 PointerEvent(EventType type, uint32_t
id,
const glm::vec2& pos2D, Button button, uint32_t buttons, Qt::KeyboardModifiers keyboardModifiers);
53 PointerEvent(
const glm::vec2& pos2D,
const glm::vec3& pos3D,
const glm::vec3& normal,
const glm::vec3& direction);
55 const glm::vec2& pos2D,
const glm::vec3& pos3D,
56 const glm::vec3& normal,
const glm::vec3& direction,
57 Button button = NoButtons, uint32_t buttons = NoButtons, Qt::KeyboardModifiers keyboardModifiers = Qt::NoModifier);
64 EventType getType()
const {
return _type; }
65 uint32_t getID()
const {
return _id; }
66 const glm::vec2& getPos2D()
const {
return _pos2D; }
67 const glm::vec3& getPos3D()
const {
return _pos3D; }
68 const glm::vec3& getNormal()
const {
return _normal; }
69 const glm::vec3& getDirection()
const {
return _direction; }
70 const glm::vec2& getScroll()
const {
return _scroll; }
71 Button getButton()
const {
return _button; }
72 uint32_t getButtons()
const {
return _buttons; }
73 Qt::KeyboardModifiers getKeyboardModifiers()
const {
return _keyboardModifiers; }
74 bool shouldFocus()
const {
return _shouldFocus; }
75 bool sendMoveOnHoverLeave()
const {
return _moveOnHoverLeave; }
77 void setID(uint32_t
id) { _id = id; }
78 void setType(EventType type) { _type = type; }
79 void setButton(Button button);
80 void setPos2D(
const glm::vec2& pos2D) { _pos2D = pos2D; }
81 void setShouldFocus(
bool focus) { _shouldFocus = focus; }
82 void setMoveOnHoverLeave(
bool moveOnHoverLeave) { _moveOnHoverLeave = moveOnHoverLeave; }
83 void setScroll(
const glm::vec2& value) { _scroll = value; }
85 static const unsigned int INVALID_POINTER_ID { 0 };
89 uint32_t _id { INVALID_POINTER_ID };
90 glm::vec2 _pos2D { glm::vec2(NAN) };
91 glm::vec3 _pos3D { glm::vec3(NAN) };
92 glm::vec3 _normal { glm::vec3(NAN) };
93 glm::vec3 _direction { glm::vec3(NAN) };
94 glm::vec2 _scroll { glm::vec3{NAN} };
96 Button _button { NoButtons };
97 uint32_t _buttons { NoButtons };
98 Qt::KeyboardModifiers _keyboardModifiers { Qt::KeyboardModifier::NoModifier };
100 bool _shouldFocus {
true };
101 bool _moveOnHoverLeave {
true };
Represents a 2D or 3D pointer to the scripting engine. Exposed as PointerEvent
Definition: PointerEvent.h:32
Provides an engine-independent interface for a scripting engine.
Definition: ScriptEngine.h:93
[ScriptInterface] Provides an engine-independent interface for QScriptValue
Definition: ScriptValue.h:40