iMSTK
Interactive Medical Simulation Toolkit
imstkVTKInteractorStyle.h
1 /*
2 ** This file is part of the Interactive Medical Simulation Toolkit (iMSTK)
3 ** iMSTK is distributed under the Apache License, Version 2.0.
4 ** See accompanying NOTICE for details.
5 */
6 
7 #pragma once
8 
9 #include <vtkInteractorStyleTrackballCamera.h>
10 #include <memory>
11 
12 namespace imstk
13 {
14 class KeyboardDeviceClient;
15 class MouseDeviceClient;
16 
22 class VTKInteractorStyle : public vtkInteractorStyleTrackballCamera
23 {
24 public:
25  static VTKInteractorStyle* New();
26  vtkTypeMacro(VTKInteractorStyle, vtkInteractorStyleTrackballCamera);
27 
29  ~VTKInteractorStyle() override;
30 
34  void OnKeyPress() override;
35 
39  void OnKeyRelease() override;
40 
44  void OnKeyDown() override { }
45  void OnKeyUp() override { }
46  void OnChar() override { }
48 
52  void OnMouseMove() override;
53 
57  void OnLeftButtonDown() override;
58 
62  void OnLeftButtonUp() override;
63 
67  void OnMiddleButtonDown() override;
68 
72  void OnMiddleButtonUp() override;
73 
77  void OnRightButtonDown() override;
78 
82  void OnRightButtonUp() override;
83 
87  void OnMouseWheelForward() override;
88 
92  void OnMouseWheelBackward() override;
93 
97  void OnFourthButtonDown() override {}
98  void OnFifthButtonDown() override {}
99  void OnFourthButtonUp() override {}
100  void OnFifthButtonUp() override {}
102 
103  std::shared_ptr<KeyboardDeviceClient> getKeyboardDeviceClient() const { return m_keyboardDeviceClient; }
104  std::shared_ptr<MouseDeviceClient> getMouseDeviceClient() const { return m_mouseDeviceClient; }
105 
106 private:
107  std::shared_ptr<KeyboardDeviceClient> m_keyboardDeviceClient;
108  std::shared_ptr<MouseDeviceClient> m_mouseDeviceClient;
109 };
110 } // namespace imstk
void OnMouseWheelBackward() override
Slot for mouse wheel rolled backward.
void OnRightButtonDown() override
Slot for mouse right button clicked.
void OnFourthButtonDown() override
Not implemented.
Compound Geometry.
void OnKeyRelease() override
Slot for key released.
void OnMiddleButtonUp() override
Slot for mouse middle button released.
void OnMiddleButtonDown() override
Slot for mouse middle button clicked.
void OnLeftButtonDown() override
Slot for mouse left button clicked.
void OnKeyDown() override
Filter out these events.
void OnLeftButtonUp() override
Slot for mouse left button released.
void OnMouseMove() override
Slot for moved mouse cursor.
void OnRightButtonUp() override
Slot for mouse right button released.
void OnMouseWheelForward() override
Slot for mouse wheel rolled forward.
Interactor styles forward their controls to imstk objects.
void OnKeyPress() override
Slot for key pressed.