VTK
vtkInteractorStyleImage.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkInteractorStyleImage.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
65#ifndef vtkInteractorStyleImage_h
66#define vtkInteractorStyleImage_h
67
68#include "vtkInteractionStyleModule.h" // For export macro
70
71// Motion flags
72
73#define VTKIS_WINDOW_LEVEL 1024
74#define VTKIS_PICK 1025
75#define VTKIS_SLICE 1026
76
77// Style flags
78
79#define VTKIS_IMAGE2D 2
80#define VTKIS_IMAGE3D 3
81#define VTKIS_IMAGE_SLICING 4
82
84
85class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleImage : public vtkInteractorStyleTrackballCamera
86{
87public:
90 void PrintSelf(ostream& os, vtkIndent indent);
91
93
96 vtkGetVector2Macro(WindowLevelStartPosition,int);
97 vtkGetVector2Macro(WindowLevelCurrentPosition,int);
99
101
105 virtual void OnMouseMove();
106 virtual void OnLeftButtonDown();
107 virtual void OnLeftButtonUp();
108 virtual void OnMiddleButtonDown();
109 virtual void OnMiddleButtonUp();
110 virtual void OnRightButtonDown();
111 virtual void OnRightButtonUp();
113
117 virtual void OnChar();
118
119 // These methods for the different interactions in different modes
120 // are overridden in subclasses to perform the correct motion. Since
121 // they might be called from OnTimer, they do not have mouse coord parameters
122 // (use interactor's GetEventPosition and GetLastEventPosition)
123 virtual void WindowLevel();
124 virtual void Pick();
125 virtual void Slice();
126
127 // Interaction mode entry points used internally.
128 virtual void StartWindowLevel();
129 virtual void EndWindowLevel();
130 virtual void StartPick();
131 virtual void EndPick();
132 virtual void StartSlice();
133 virtual void EndSlice();
134
136
142 vtkSetClampMacro(InteractionMode, int, VTKIS_IMAGE2D, VTKIS_IMAGE_SLICING);
143 vtkGetMacro(InteractionMode, int);
145 this->SetInteractionMode(VTKIS_IMAGE2D); }
147 this->SetInteractionMode(VTKIS_IMAGE3D); }
149 this->SetInteractionMode(VTKIS_IMAGE_SLICING); }
151
153
157 vtkSetVector3Macro(XViewRightVector, double);
158 vtkGetVector3Macro(XViewRightVector, double);
159 vtkSetVector3Macro(XViewUpVector, double);
160 vtkGetVector3Macro(XViewUpVector, double);
161 vtkSetVector3Macro(YViewRightVector, double);
162 vtkGetVector3Macro(YViewRightVector, double);
163 vtkSetVector3Macro(YViewUpVector, double);
164 vtkGetVector3Macro(YViewUpVector, double);
165 vtkSetVector3Macro(ZViewRightVector, double);
166 vtkGetVector3Macro(ZViewRightVector, double);
167 vtkSetVector3Macro(ZViewUpVector, double);
168 vtkGetVector3Macro(ZViewUpVector, double);
170
180 void SetImageOrientation(const double leftToRight[3],
181 const double bottomToTop[3]);
182
193 virtual void SetCurrentImageNumber(int i);
194 int GetCurrentImageNumber() { return this->CurrentImageNumber; }
195
203 return this->CurrentImageProperty; }
204
205protected:
208
209 int WindowLevelStartPosition[2];
210 int WindowLevelCurrentPosition[2];
211 double WindowLevelInitial[2];
214
216 double XViewRightVector[3];
217 double XViewUpVector[3];
218 double YViewRightVector[3];
219 double YViewUpVector[3];
220 double ZViewRightVector[3];
221 double ZViewUpVector[3];
222
223private:
224 vtkInteractorStyleImage(const vtkInteractorStyleImage&) VTK_DELETE_FUNCTION;
225 void operator=(const vtkInteractorStyleImage&) VTK_DELETE_FUNCTION;
226};
227
228#endif
image display properties
a simple class to control print indentation
Definition: vtkIndent.h:40
interactive manipulation of the camera specialized for images
virtual void OnChar()
Override the "fly-to" (f keypress) for images.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void StartWindowLevel()
virtual void OnRightButtonDown()
virtual void Slice()
virtual void StartSlice()
virtual void OnLeftButtonDown()
virtual void OnMouseMove()
Event bindings controlling the effects of pressing mouse buttons or moving the mouse.
virtual void StartPick()
virtual void EndSlice()
virtual void OnMiddleButtonDown()
virtual void OnMiddleButtonUp()
virtual void SetCurrentImageNumber(int i)
Set the image to use for WindowLevel interaction.
vtkImageProperty * CurrentImageProperty
static vtkInteractorStyleImage * New()
virtual void OnRightButtonUp()
vtkImageProperty * GetCurrentImageProperty()
Get the current image property, which is set when StartWindowLevel is called immediately before Start...
virtual void EndPick()
void SetImageOrientation(const double leftToRight[3], const double bottomToTop[3])
Set the view orientation, in terms of the horizontal and vertical directions of the computer screen.
virtual void EndWindowLevel()
virtual void OnLeftButtonUp()
virtual void WindowLevel()
interactive manipulation of the camera
@ leftToRight
Definition: vtkX3D.h:391
#define VTKIS_IMAGE2D
#define VTKIS_IMAGE3D
#define VTKIS_IMAGE_SLICING