5#include "MRMesh/MRphmap.h"
26 MouseButton btn{ MouseButton::Left };
43 MRVIEWER_API
bool isPressed( MouseButton button )
const;
77 bool preMouseDown_( MouseButton button,
int modifier );
78 bool mouseDown_( MouseButton button,
int modifier );
79 bool preMouseUp_( MouseButton button,
int modifier );
80 bool preDragDrop_(
const std::vector<std::filesystem::path>& paths );
81 bool preMouseMove_(
int x,
int y );
82 bool mouseScroll_(
float delta );
84 bool isCursorInside_{
false };
85 void cursorEntrance_(
bool entered );
87 bool dropOldEventsOnNew_{
false };
88 void resetAllIfNeeded_();
90 Vector3f downTranslation_;
92 Vector2i downMousePos_;
93 Vector2i prevMousePos_;
94 Vector2i currentMousePos_;
97 MouseMode currentMode_{ MouseMode::None };
100 MouseButton clickButton_{ MouseButton::NoButton };
101 int clickModifiers_{};
103 MouseButton clickPendingDown_{ MouseButton::NoButton };
104 MouseButton dragButton_{ MouseButton::NoButton };
107 using MouseModeMap = HashMap<int, MouseMode>;
108 using MouseModeBackMap = HashMap<MouseMode, int>;
111 MouseModeBackMap backMap_;
113 bool scrollActive_{
true };
115 std::function<void( AffineXf3f& )> transformModifierCb_;
116 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
Definition MRMouseController.h:25