Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLViewInteractorStyle.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16==============================================================================*/
17
18#ifndef __vtkMRMLViewInteractorStyle_h
19#define __vtkMRMLViewInteractorStyle_h
20
21// VTK includes
22#include "vtkObject.h"
23#include "vtkWeakPointer.h"
24
25// MRML includes
26#include "vtkMRMLDisplayableManagerExport.h"
27
28class vtkCallbackCommand;
29class vtkEventData;
30class vtkInteractorStyle;
34class vtkRenderWindowInteractor;
35
42class VTK_MRML_DISPLAYABLEMANAGER_EXPORT vtkMRMLViewInteractorStyle :
43 public vtkObject
44{
45public:
47 vtkTypeMacro(vtkMRMLViewInteractorStyle,vtkObject);
48 void PrintSelf(ostream& os, vtkIndent indent) override;
49
51 virtual void OnMouseMove();
52 virtual void OnEnter();
53 virtual void OnLeave();
55 virtual void OnLeftButtonDown();
56 virtual void OnLeftButtonUp();
58 virtual void OnMiddleButtonDown();
59 virtual void OnMiddleButtonUp();
61 virtual void OnRightButtonDown();
62 virtual void OnRightButtonUp();
63 virtual void OnMouseWheelForward();
64 virtual void OnMouseWheelBackward();
65
66 // Touch gesture interaction events
67 virtual void OnStartPinch();
68 virtual void OnPinch();
69 virtual void OnEndPinch();
70 virtual void OnStartRotate();
71 virtual void OnRotate();
72 virtual void OnEndRotate();
73 virtual void OnStartPan();
74 virtual void OnPan();
75 virtual void OnEndPan();
76 virtual void OnTap();
77 virtual void OnLongTap();
78
80 virtual void OnChar();
81 virtual void OnKeyPress();
82 virtual void OnKeyRelease();
83
85 virtual void OnButton3D(vtkEventData* eventData);
86 virtual void OnMove3D(vtkEventData* eventData);
87
88 virtual void OnExpose();
89 virtual void OnConfigure();
90
91 virtual void SetDisplayableManagers(vtkMRMLDisplayableManagerGroup* displayableManagers);
92
97 virtual bool DelegateInteractionEventToDisplayableManagers(unsigned long event);
98
103 virtual bool DelegateInteractionEventToDisplayableManagers(vtkEventData* inputEventData);
104
108
109 vtkGetObjectMacro(Interactor, vtkRenderWindowInteractor);
110 virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
111
112protected:
115
116 vtkRenderWindowInteractor* Interactor{nullptr};
117 vtkInteractorStyle* GetInteractorStyle();
118
119 vtkCallbackCommand* EventCallbackCommand;
120
127 static void CustomProcessEvents(vtkObject* object, unsigned long event, void* clientdata, void* calldata);
128
130 static void ProcessEvents(vtkObject* object, unsigned long event, void* clientdata, void* calldata);
131
133 static void DisplayableManagerCallback(vtkObject *object, unsigned long event, void *clientData, void *callData);
135 unsigned long event, void *callData);
136
137 void SetMouseCursor(int cursor);
138
140
141 vtkWeakPointer<vtkMRMLDisplayableManagerGroup> DisplayableManagers;
143
144private:
146 void operator=(const vtkMRMLViewInteractorStyle&) = delete;
147};
148
149#endif
Superclass for displayable manager classes.
DisplayableManagerGroup is a collection of DisplayableManager.
Common base class for processing interaction events in MRML views.
virtual void OnRightButtonDoubleClick()
virtual void OnMiddleButtonDown()
virtual void OnMove3D(vtkEventData *eventData)
virtual bool DelegateInteractionEventDataToDisplayableManagers(vtkMRMLInteractionEventData *eventData)
vtkMRMLAbstractDisplayableManager * FocusedDisplayableManager
virtual void OnLeftButtonUp()
static void DisplayableManagerCallback(vtkObject *object, unsigned long event, void *clientData, void *callData)
virtual void ProcessDisplayableManagerEvents(vtkMRMLAbstractDisplayableManager *displayableManager, unsigned long event, void *callData)
virtual void OnButton3D(vtkEventData *eventData)
3D event bindings
virtual void OnStartPinch()
virtual void OnStartRotate()
static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
Process events not already delegated to displayable managers by CustomProcessEvents().
virtual bool DelegateInteractionEventToDisplayableManagers(unsigned long event)
vtkWeakPointer< vtkMRMLDisplayableManagerGroup > DisplayableManagers
virtual void OnEndRotate()
virtual void OnMouseMove()
Mouse functions.
vtkInteractorStyle * GetInteractorStyle()
virtual void OnLeftButtonDown()
static vtkMRMLViewInteractorStyle * New()
virtual void SetDisplayableManagers(vtkMRMLDisplayableManagerGroup *displayableManagers)
virtual bool DelegateInteractionEventToDisplayableManagers(vtkEventData *inputEventData)
virtual void OnMouseWheelBackward()
static void CustomProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
~vtkMRMLViewInteractorStyle() override
virtual void OnMiddleButtonDoubleClick()
void PrintSelf(ostream &os, vtkIndent indent) override
virtual void OnKeyRelease()
virtual void OnMiddleButtonUp()
virtual void OnLeftButtonDoubleClick()
vtkCallbackCommand * DisplayableManagerCallbackCommand
virtual void OnMouseWheelForward()
void SetMouseCursor(int cursor)
virtual void SetInteractor(vtkRenderWindowInteractor *interactor)
virtual void OnRightButtonDown()
virtual void OnChar()
Keyboard functions.
virtual void OnRightButtonUp()
virtual void OnConfigure()