MeshLib C++ Docs
Loading...
Searching...
No Matches
MRTouchpadController.h
Go to the documentation of this file.
1#pragma once
2
4#include "MRViewport.h"
6
7#include <functional>
8#include <memory>
9
10struct GLFWwindow;
11
12namespace MR
13{
16
17
31 TouchpadRotateGestureBeginListener, TouchpadRotateGestureUpdateListener, TouchpadRotateGestureEndListener,
32 TouchpadSwipeGestureBeginListener, TouchpadSwipeGestureUpdateListener, TouchpadSwipeGestureEndListener,
33 TouchpadZoomGestureBeginListener, TouchpadZoomGestureUpdateListener, TouchpadZoomGestureEndListener
34>
35{
36public:
38
40 MRVIEWER_API void initialize( GLFWwindow* window );
42 MRVIEWER_API void reset();
43
44 [[nodiscard]] MRVIEWER_API const TouchpadParameters& getParameters() const;
45 MRVIEWER_API void setParameters( const TouchpadParameters& parameters );
46
51 class Handler
52 {
53 public:
54 virtual ~Handler() = default;
55
57 enum class GestureState
58 {
60 Begin,
62 Update,
64 End,
65 };
66
69 void mouseScroll( float dx, float dy, bool kinetic );
71 void rotate( float angle, GestureState state );
73 void swipe( float dx, float dy, bool kinetic, GestureState state );
75 void zoom( float scale, bool kinetic, GestureState state );
76 };
77
78private:
79 std::unique_ptr<Handler> handler_;
80 TouchpadParameters parameters_;
81
82 Viewport::Parameters initRotateParams_;
83 virtual bool touchpadRotateGestureBegin_() override;
84 virtual bool touchpadRotateGestureUpdate_( float angle ) override;
85 virtual bool touchpadRotateGestureEnd_() override;
86
88 virtual bool touchpadSwipeGestureBegin_() override;
89 virtual bool touchpadSwipeGestureUpdate_( float deltaX, float deltaY, bool kinetic ) override;
90 virtual bool touchpadSwipeGestureEnd_() override;
91
92 Viewport::Parameters initZoomParams_;
93 virtual bool touchpadZoomGestureBegin_() override;
94 virtual bool touchpadZoomGestureUpdate_( float scale, bool kinetic ) override;
95 virtual bool touchpadZoomGestureEnd_() override;
96};
97
98}
Definition MRTouchpadController.h:52
Definition MRTouchpadController.h:35
void swipe(float dx, float dy, bool kinetic, GestureState state)
swipe gesture; kinetic flag is set when the event is produced not by a user action but by hardware 'k...
MRVIEWER_API const TouchpadParameters & getParameters() const
GestureState
gesture state
Definition MRTouchpadController.h:58
MRVIEWER_API void reset()
reset event handler
SwipeMode
swipe processing mode
Definition MRTouchpadParameters.h:18
MRVIEWER_API void initialize(GLFWwindow *window)
initialize listening to touchpad events
void mouseScroll(float dx, float dy, bool kinetic)
void zoom(float scale, bool kinetic, GestureState state)
pitch ('zoom') gesture
MR_ADD_CTOR_DELETE_MOVE(TouchpadController)
void rotate(float angle, GestureState state)
rotate gesture
MRVIEWER_API void setParameters(const TouchpadParameters &parameters)
@ angle
Direction, normally Vector3f.
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRViewerEventsListener.h:32
Definition MRTouchpadParameters.h:12
Definition MRViewport.h:316