MeshLib C++ Docs
Loading...
Searching...
No Matches
MRViewerSignals.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRSignalCombiners.h"
4#include "MRMesh/MRSignal.h"
5
6namespace MR
7{
8
10{
12 // Mouse events
13 using MouseUpDownSignal = boost::signals2::signal<bool( MouseButton btn, int modifier ), SignalStopHandler>;
14 using MouseMoveSignal = boost::signals2::signal<bool( int x, int y ), SignalStopHandler>;
15 using MouseScrollSignal = boost::signals2::signal<bool( float delta ), SignalStopHandler>;
16 MouseUpDownSignal mouseDownSignal; // signal is called on mouse down
17 MouseUpDownSignal mouseUpSignal; // signal is called on mouse up
18 MouseMoveSignal mouseMoveSignal; // signal is called on mouse move, note that input x and y are in screen space
19 MouseScrollSignal mouseScrollSignal; // signal is called on mouse is scrolled
20 // High-level mouse events for clicks and dragging, emitted by MouseController
21 // When mouseClickSignal has connections, a small delay for click detection is introduced into camera operations and dragging
22 // Dragging starts if dragStartSignal is handled (returns true), and ends on button release
23 // When dragging is active, dragSignal and dragEndSignal are emitted instead of mouseMove and mouseUp
24 // mouseDown handler have priority over dragStart
25 MouseUpDownSignal mouseClickSignal; // signal is called when mouse button is pressed and immediately released
26 MouseUpDownSignal dragStartSignal; // signal is called when mouse button is pressed (deferred if click behavior is on)
27 MouseUpDownSignal dragEndSignal; // signal is called when mouse button used to start drag is released
28 MouseMoveSignal dragSignal; // signal is called when mouse is being dragged with button down
29 // Cursor enters/leaves
30 using CursorEntranceSignal = boost::signals2::signal<void(bool)>;
32 // Keyboard event
33 using CharPressedSignal = boost::signals2::signal<bool( unsigned unicodeKey, int modifier ), SignalStopHandler>;
34 using KeySignal = boost::signals2::signal<bool( int key, int modifier ), SignalStopHandler>;
35 CharPressedSignal charPressedSignal; // signal is called when unicode char on/is down/pressed for some time
36 KeySignal keyUpSignal; // signal is called on key up
37 KeySignal keyDownSignal; // signal is called on key down
38 KeySignal keyRepeatSignal; // signal is called when key is pressed for some time
39 // SpaceMouseEvents
40 using SpaceMouseMoveSignal = boost::signals2::signal<bool( const Vector3f& translate, const Vector3f& rotate ), SignalStopHandler>;
41 using SpaceMouseKeySignal = boost::signals2::signal<bool( int ), SignalStopHandler>;
42 SpaceMouseMoveSignal spaceMouseMoveSignal; // signal is called on spacemouse 3d controller (joystick) move
43 SpaceMouseKeySignal spaceMouseDownSignal; // signal is called on spacemouse key down
44 SpaceMouseKeySignal spaceMouseUpSignal; // signal is called on spacemouse key up
45 SpaceMouseKeySignal spaceMouseRepeatSignal; // signal is called when spacemouse key is pressed for some time
46 // Render events
47 using RenderSignal = boost::signals2::signal<void()>;
48 RenderSignal preSetupViewSignal; // signal is called before viewports cleanup and camera setup, so one can customize camera XFs for this frame
49 RenderSignal preDrawSignal; // signal is called before scene draw (but after scene setup)
50 RenderSignal preDrawPostViewportSignal; // signal is called before scene draw but after viewport.preDraw()
51 RenderSignal drawSignal; // signal is called on scene draw (after objects tree but before viewport.postDraw())
52 RenderSignal postDrawPreViewportSignal; // signal is called after scene draw but after before viewport.postDraw()
53 RenderSignal postDrawSignal; // signal is called after scene draw
54 // Scene events
55 using ObjectsLoadedSignal = boost::signals2::signal<void( const std::vector<std::shared_ptr<Object>>& objs, const std::string& errors, const std::string& warnings )>;
56 using DragDropSignal = boost::signals2::signal<bool( const std::vector<std::filesystem::path>& paths ), SignalStopHandler>;
57 using PostResizeSignal = boost::signals2::signal<void( int x, int y )>;
58 using PostRescaleSignal = boost::signals2::signal<void( float xscale, float yscale )>;
59 using InterruptCloseSignal = boost::signals2::signal<bool(), SignalStopHandler>;
60 ObjectsLoadedSignal objectsLoadedSignal; // signal is called when objects are loaded by Viewer::loadFiles function
61 CursorEntranceSignal dragEntranceSignal; // signal is called on drag enter/leave the window
62 MouseMoveSignal dragOverSignal; // signal is called on drag coordinate changed
63 DragDropSignal dragDropSignal; // signal is called on drag and drop file
64 PostResizeSignal postResizeSignal; // signal is called after window resize
65 PostRescaleSignal postRescaleSignal; // signal is called after window rescale
66 InterruptCloseSignal interruptCloseSignal; // signal is called before close window (return true will prevent closing)
67 // Touch signals
68 using TouchSignal = boost::signals2::signal<bool(int,int,int), SignalStopHandler>;
69 TouchSignal touchStartSignal; // signal is called when any touch starts
70 TouchSignal touchMoveSignal; // signal is called when touch moves
71 TouchSignal touchEndSignal; // signal is called when touch stops
72 // Touchpad gesture events
73 using TouchpadGestureBeginSignal = boost::signals2::signal<bool(), SignalStopHandler>;
74 using TouchpadGestureEndSignal = boost::signals2::signal<bool(), SignalStopHandler>;
75 using TouchpadRotateGestureUpdateSignal = boost::signals2::signal<bool( float angle ), SignalStopHandler>;
76 using TouchpadSwipeGestureUpdateSignal = boost::signals2::signal<bool( float deltaX, float deltaY, bool kinetic ), SignalStopHandler>;
77 using TouchpadZoomGestureUpdateSignal = boost::signals2::signal<bool( float scale, bool kinetic ), SignalStopHandler>;
78 TouchpadGestureBeginSignal touchpadRotateGestureBeginSignal; // signal is called on touchpad rotate gesture beginning
79 TouchpadRotateGestureUpdateSignal touchpadRotateGestureUpdateSignal; // signal is called on touchpad rotate gesture update
80 TouchpadGestureEndSignal touchpadRotateGestureEndSignal; // signal is called on touchpad rotate gesture end
81 TouchpadGestureBeginSignal touchpadSwipeGestureBeginSignal; // signal is called on touchpad swipe gesture beginning
82 TouchpadSwipeGestureUpdateSignal touchpadSwipeGestureUpdateSignal; // signal is called on touchpad swipe gesture update
83 TouchpadGestureEndSignal touchpadSwipeGestureEndSignal; // signal is called on touchpad swipe gesture end
84 TouchpadGestureBeginSignal touchpadZoomGestureBeginSignal; // signal is called on touchpad zoom gesture beginning
85 TouchpadZoomGestureUpdateSignal touchpadZoomGestureUpdateSignal; // signal is called on touchpad zoom gesture update
86 TouchpadGestureEndSignal touchpadZoomGestureEndSignal; // signal is called on touchpad zoom gesture end
87 // Window focus signal
88 using PostFocusSignal = boost::signals2::signal<void( bool )>;
90};
91
92} //namespace MR
Definition MRCameraOrientationPlugin.h:8
MouseButton
Definition MRMouse.h:9
Definition MRSignalCombiners.h:8
Definition MRViewerSignals.h:10
boost::signals2::signal< bool(const Vector3f &translate, const Vector3f &rotate), SignalStopHandler > SpaceMouseMoveSignal
Definition MRViewerSignals.h:40
CursorEntranceSignal dragEntranceSignal
Definition MRViewerSignals.h:61
TouchpadGestureBeginSignal touchpadSwipeGestureBeginSignal
Definition MRViewerSignals.h:81
TouchpadZoomGestureUpdateSignal touchpadZoomGestureUpdateSignal
Definition MRViewerSignals.h:85
boost::signals2::signal< bool(), SignalStopHandler > TouchpadGestureEndSignal
Definition MRViewerSignals.h:74
boost::signals2::signal< bool(float deltaX, float deltaY, bool kinetic), SignalStopHandler > TouchpadSwipeGestureUpdateSignal
Definition MRViewerSignals.h:76
RenderSignal preDrawPostViewportSignal
Definition MRViewerSignals.h:50
boost::signals2::signal< bool(), SignalStopHandler > TouchpadGestureBeginSignal
Definition MRViewerSignals.h:73
MouseMoveSignal mouseMoveSignal
Definition MRViewerSignals.h:18
MouseUpDownSignal mouseUpSignal
Definition MRViewerSignals.h:17
TouchSignal touchStartSignal
Definition MRViewerSignals.h:69
boost::signals2::signal< bool(int key, int modifier), SignalStopHandler > KeySignal
Definition MRViewerSignals.h:34
TouchpadGestureEndSignal touchpadSwipeGestureEndSignal
Definition MRViewerSignals.h:83
boost::signals2::signal< bool(MouseButton btn, int modifier), SignalStopHandler > MouseUpDownSignal
Definition MRViewerSignals.h:13
PostFocusSignal postFocusSignal
Definition MRViewerSignals.h:89
TouchSignal touchMoveSignal
Definition MRViewerSignals.h:70
MouseUpDownSignal mouseClickSignal
Definition MRViewerSignals.h:25
MouseUpDownSignal mouseDownSignal
Definition MRViewerSignals.h:16
KeySignal keyRepeatSignal
Definition MRViewerSignals.h:38
SpaceMouseKeySignal spaceMouseRepeatSignal
Definition MRViewerSignals.h:45
DragDropSignal dragDropSignal
Definition MRViewerSignals.h:63
PostResizeSignal postResizeSignal
Definition MRViewerSignals.h:64
boost::signals2::signal< void(bool)> CursorEntranceSignal
Definition MRViewerSignals.h:30
RenderSignal preSetupViewSignal
Definition MRViewerSignals.h:48
boost::signals2::signal< bool(int, int, int), SignalStopHandler > TouchSignal
Definition MRViewerSignals.h:68
boost::signals2::signal< void(bool)> PostFocusSignal
Definition MRViewerSignals.h:88
KeySignal keyUpSignal
Definition MRViewerSignals.h:36
SpaceMouseKeySignal spaceMouseUpSignal
Definition MRViewerSignals.h:44
SpaceMouseMoveSignal spaceMouseMoveSignal
Definition MRViewerSignals.h:42
InterruptCloseSignal interruptCloseSignal
Definition MRViewerSignals.h:66
ObjectsLoadedSignal objectsLoadedSignal
Definition MRViewerSignals.h:60
RenderSignal postDrawSignal
Definition MRViewerSignals.h:53
boost::signals2::signal< bool(float scale, bool kinetic), SignalStopHandler > TouchpadZoomGestureUpdateSignal
Definition MRViewerSignals.h:77
TouchpadGestureBeginSignal touchpadRotateGestureBeginSignal
Definition MRViewerSignals.h:78
RenderSignal preDrawSignal
Definition MRViewerSignals.h:49
boost::signals2::signal< void(int x, int y)> PostResizeSignal
Definition MRViewerSignals.h:57
MouseMoveSignal dragOverSignal
Definition MRViewerSignals.h:62
boost::signals2::signal< bool(int), SignalStopHandler > SpaceMouseKeySignal
Definition MRViewerSignals.h:41
RenderSignal postDrawPreViewportSignal
Definition MRViewerSignals.h:52
boost::signals2::signal< bool(float delta), SignalStopHandler > MouseScrollSignal
Definition MRViewerSignals.h:15
TouchpadGestureEndSignal touchpadZoomGestureEndSignal
Definition MRViewerSignals.h:86
boost::signals2::signal< void(float xscale, float yscale)> PostRescaleSignal
Definition MRViewerSignals.h:58
boost::signals2::signal< bool(unsigned unicodeKey, int modifier), SignalStopHandler > CharPressedSignal
Definition MRViewerSignals.h:33
boost::signals2::signal< bool(const std::vector< std::filesystem::path > &paths), SignalStopHandler > DragDropSignal
Definition MRViewerSignals.h:56
boost::signals2::signal< bool(), SignalStopHandler > InterruptCloseSignal
Definition MRViewerSignals.h:59
MouseUpDownSignal dragStartSignal
Definition MRViewerSignals.h:26
boost::signals2::signal< void()> RenderSignal
Definition MRViewerSignals.h:47
boost::signals2::signal< bool(float angle), SignalStopHandler > TouchpadRotateGestureUpdateSignal
Definition MRViewerSignals.h:75
boost::signals2::signal< bool(int x, int y), SignalStopHandler > MouseMoveSignal
Definition MRViewerSignals.h:14
CursorEntranceSignal cursorEntranceSignal
Definition MRViewerSignals.h:31
PostRescaleSignal postRescaleSignal
Definition MRViewerSignals.h:65
SpaceMouseKeySignal spaceMouseDownSignal
Definition MRViewerSignals.h:43
MouseUpDownSignal dragEndSignal
Definition MRViewerSignals.h:27
RenderSignal drawSignal
Definition MRViewerSignals.h:51
MouseMoveSignal dragSignal
Definition MRViewerSignals.h:28
MouseScrollSignal mouseScrollSignal
Definition MRViewerSignals.h:19
CharPressedSignal charPressedSignal
Definition MRViewerSignals.h:35
boost::signals2::signal< void(const std::vector< std::shared_ptr< Object > > &objs, const std::string &errors, const std::string &warnings)> ObjectsLoadedSignal
Definition MRViewerSignals.h:55
TouchSignal touchEndSignal
Definition MRViewerSignals.h:71
TouchpadGestureEndSignal touchpadRotateGestureEndSignal
Definition MRViewerSignals.h:80
TouchpadRotateGestureUpdateSignal touchpadRotateGestureUpdateSignal
Definition MRViewerSignals.h:79
KeySignal keyDownSignal
Definition MRViewerSignals.h:37
TouchpadGestureBeginSignal touchpadZoomGestureBeginSignal
Definition MRViewerSignals.h:84
TouchpadSwipeGestureUpdateSignal touchpadSwipeGestureUpdateSignal
Definition MRViewerSignals.h:82