5#include "MRMesh/MRphmap.h"
41 const Vector2i&
getMousePos()
const {
return currentMousePos_; }
77 bool preMouseDown_(
MouseButton button,
int modifier );
78 bool mouseDown_(
MouseButton button,
int modifier );
79 bool preMouseUp_(
MouseButton button,
int modifier );
80 bool preMouseMove_(
int x,
int y );
81 bool mouseScroll_(
float delta );
83 bool isCursorInside_{
false };
84 void cursorEntrance_(
bool entered );
86 bool dropOldEventsOnNew_{
false };
87 void resetAllIfNeeded_();
89 Vector3f downTranslation_;
91 Vector2i downMousePos_;
92 Vector2i prevMousePos_;
93 Vector2i currentMousePos_;
96 MouseMode currentMode_{ MouseMode::None };
100 int clickModifiers_{};
102 MouseButton clickPendingDown_{ MouseButton::NoButton };
106 using MouseModeMap = HashMap<int, MouseMode>;
107 using MouseModeBackMap = HashMap<MouseMode, int>;
110 MouseModeBackMap backMap_;
112 bool scrollActive_{
true };
114 std::function<void( AffineXf3f& )> transformModifierCb_;
115 std::function<void(
float& )> fovModifierCb_;
Definition MRMouseController.h:21
MRVIEWER_API std::optional< MouseControlKey > findControlByMode(MouseMode mode) const
MRVIEWER_API bool isPressed(MouseButton button) const
static MRVIEWER_API int mouseAndModToKey(const MouseControlKey &key)
bool isCursorInside() const
Definition MRMouseController.h:47
MRVIEWER_API void setMouseControl(const MouseControlKey &key, MouseMode mode)
MRVIEWER_API bool isPressedAny() const
MRVIEWER_API void connect()
const Vector2i & getDownMousePos() const
Definition MRMouseController.h:39
static MRVIEWER_API MouseControlKey keyToMouseAndMod(int key)
bool isDropOldEventOnNewActive() const
Definition MRMouseController.h:50
void setTrasformModifierCb(std::function< void(AffineXf3f &)> cb)
Definition MRMouseController.h:67
void dropOldEventsOnNew(bool on)
Definition MRMouseController.h:51
void setFOVModifierCb(std::function< void(float &)> cb)
Definition MRMouseController.h:70
MRVIEWER_API void setMouseScroll(bool active)
const Vector2i & getMousePos() const
Definition MRMouseController.h:41
MR_ADD_CTOR_DELETE_MOVE(MouseController)
static MRVIEWER_API std::string getControlString(const MouseControlKey &key)
Definition MRCameraOrientationPlugin.h:8
MouseMode
Definition MRMouse.h:19
MouseButton
Definition MRMouse.h:9
std::chrono::time_point< std::chrono::system_clock > Time
Definition MRAsyncTimer.h:17
Definition MRMouseController.h:25