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 : public vtkObject
43{
44public:
46 vtkTypeMacro(vtkMRMLViewInteractorStyle, vtkObject);
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
50 virtual void OnMouseMove();
51 virtual void OnEnter();
52 virtual void OnLeave();
54 virtual void OnLeftButtonDown();
55 virtual void OnLeftButtonUp();
57 virtual void OnMiddleButtonDown();
58 virtual void OnMiddleButtonUp();
60 virtual void OnRightButtonDown();
61 virtual void OnRightButtonUp();
62 virtual void OnMouseWheelForward();
63 virtual void OnMouseWheelBackward();
64
65 // Touch gesture interaction events
66 virtual void OnStartPinch();
67 virtual void OnPinch();
68 virtual void OnEndPinch();
69 virtual void OnStartRotate();
70 virtual void OnRotate();
71 virtual void OnEndRotate();
72 virtual void OnStartPan();
73 virtual void OnPan();
74 virtual void OnEndPan();
75 virtual void OnTap();
76 virtual void OnLongTap();
77
79 virtual void OnChar();
80 virtual void OnKeyPress();
81 virtual void OnKeyRelease();
82
84 virtual void OnButton3D(vtkEventData* eventData);
85 virtual void OnMove3D(vtkEventData* eventData);
86
87 virtual void OnExpose();
88 virtual void OnConfigure();
89
90 virtual void SetDisplayableManagers(vtkMRMLDisplayableManagerGroup* displayableManagers);
91
96 virtual bool DelegateInteractionEventToDisplayableManagers(unsigned long event);
97
102 virtual bool DelegateInteractionEventToDisplayableManagers(vtkEventData* inputEventData);
103
107
108 vtkGetObjectMacro(Interactor, vtkRenderWindowInteractor);
109 virtual void SetInteractor(vtkRenderWindowInteractor* interactor);
110
111protected:
114
115 vtkRenderWindowInteractor* Interactor{ nullptr };
116 vtkInteractorStyle* GetInteractorStyle();
117
118 vtkCallbackCommand* EventCallbackCommand;
119
126 static void CustomProcessEvents(vtkObject* object, unsigned long event, void* clientdata, void* calldata);
127
129 static void ProcessEvents(vtkObject* object, unsigned long event, void* clientdata, void* calldata);
130
132 static void DisplayableManagerCallback(vtkObject* object, unsigned long event, void* clientData, void* callData);
133 virtual void ProcessDisplayableManagerEvents(vtkMRMLAbstractDisplayableManager* displayableManager, unsigned long event, void* callData);
134
135 void SetMouseCursor(int cursor);
136
138
139 vtkWeakPointer<vtkMRMLDisplayableManagerGroup> DisplayableManagers;
141
142private:
144 void operator=(const vtkMRMLViewInteractorStyle&) = delete;
145};
146
147#endif
Superclass for displayable manager classes.
DisplayableManagerGroup is a collection of DisplayableManager.
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()
vtkRenderWindowInteractor * Interactor
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()