NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
niftkDnDDisplayInteractor.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkDnDDisplayInteractor_h
16 #define niftkDnDDisplayInteractor_h
17 
18 #include <niftkDnDDisplayExports.h>
19 
20 #include <vector>
21 
22 #include <QObject>
23 
24 #include <mitkDisplayInteractor.h>
25 
26 #include <niftkDnDDisplayEnums.h>
27 
28 class QmitkRenderWindow;
29 class QTimer;
30 
31 namespace mitk
32 {
33 class FocusManager;
34 }
35 
36 
37 namespace niftk
38 {
39 
40 class SingleViewerWidget;
41 
55 class NIFTKDNDDISPLAY_EXPORT DnDDisplayInteractor: public QObject, public mitk::DisplayInteractor
56 {
57  Q_OBJECT
58 
59 public:
60  mitkClassMacro(DnDDisplayInteractor, DisplayInteractor)
61  mitkNewMacro1Param(Self, SingleViewerWidget*)
62 
63 
69  virtual void Notify(mitk::InteractionEvent* interactionEvent, bool isHandled) override;
70 
71 protected:
73  virtual ~DnDDisplayInteractor();
74 
75  virtual void ConnectActionsAndFunctions() override;
76 
77  virtual bool StartSelectingPosition(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
78 
79  virtual bool SelectPosition(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
80 
81  virtual bool StopSelectingPosition(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
82 
84  virtual bool StartPanning(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
85 
86  virtual bool Pan(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
87 
89  virtual bool StopPanning(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
90 
93  virtual bool StartZooming(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
94 
95  virtual bool Zoom(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent) override;
96 
98  virtual bool StopZooming(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
99 
101  virtual bool SetWindowLayoutToAxial(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
102 
104  virtual bool SetWindowLayoutToSagittal(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
105 
107  virtual bool SetWindowLayoutToCoronal(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
108 
110  virtual bool SetWindowLayoutTo3D(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
111 
113  virtual bool SetWindowLayoutToMulti(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
114 
116  virtual bool ToggleMultiWindowLayout(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
117 
119  virtual bool ToggleCursorVisibility(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
120 
122  virtual bool ToggleDirectionAnnotations(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
123 
125  virtual bool ToggleIntensityAnnotation(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
126 
132  virtual bool SelectPreviousSlice(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
133 
139  virtual bool SelectNextSlice(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
140 
142  virtual bool SelectPreviousTimeStep(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
143 
145  virtual bool SelectNextTimeStep(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
146 
148  virtual bool StartScrollingThroughSlicesBackwards(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
149 
151  virtual bool StartScrollingThroughSlicesForwards(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
152 
154  virtual bool StartScrollingThroughTimeStepsBackwards(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
155 
157  virtual bool StartScrollingThroughTimeStepsForwards(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
158 
160  virtual bool StopScrolling(mitk::StateMachineAction* action, mitk::InteractionEvent* interactionEvent);
161 
162 private slots:
163 
166  void SelectPreviousSlice();
167 
170  void SelectNextSlice();
171 
174  void SelectPreviousTimeStep();
175 
178  void SelectNextTimeStep();
179 
180 private:
181 
182  QmitkRenderWindow* GetRenderWindow(mitk::BaseRenderer* renderer);
183 
184  SingleViewerWidget* m_Viewer;
185 
186  std::vector<mitk::BaseRenderer*> m_Renderers;
187 
188  mitk::FocusManager* m_FocusManager;
189 
190  QTimer* m_AutoScrollTimer;
191 
192 };
193 
194 }
195 
196 #endif
Definition: ReceptorMemberCommandTest.cxx:25
A widget to wrap a single MultiWindowWidget, providing methods for switching the render window layout...
Definition: niftkSingleViewerWidget.h:78
Definition: niftkExceptionObject.h:21
Observer that manages the interaction with the display.
Definition: niftkDnDDisplayInteractor.h:55