VTK  9.1.20211115
vtkImageViewer2.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageViewer2.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 =========================================================================*/
167 #ifndef vtkImageViewer2_h
168 #define vtkImageViewer2_h
169 
170 #include "vtkInteractionImageModule.h" // For export macro
171 #include "vtkObject.h"
172 
173 class vtkAlgorithm;
174 class vtkAlgorithmOutput;
175 class vtkImageActor;
176 class vtkImageData;
178 class vtkInformation;
180 class vtkRenderWindow;
181 class vtkRenderer;
183 
184 class VTKINTERACTIONIMAGE_EXPORT vtkImageViewer2 : public vtkObject
185 {
186 public:
187  static vtkImageViewer2* New();
188  vtkTypeMacro(vtkImageViewer2, vtkObject);
189  void PrintSelf(ostream& os, vtkIndent indent) override;
190 
194  virtual const char* GetWindowName();
195 
199  virtual void Render(void);
200 
202 
205  virtual void SetInputData(vtkImageData* in);
206  virtual vtkImageData* GetInput();
209 
214  enum
215  {
216  SLICE_ORIENTATION_YZ = 0,
217  SLICE_ORIENTATION_XZ = 1,
218  SLICE_ORIENTATION_XY = 2
219  };
220 
221  vtkGetMacro(SliceOrientation, int);
222  virtual void SetSliceOrientation(int orientation);
223  virtual void SetSliceOrientationToXY()
224  {
225  this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_XY);
226  }
227  virtual void SetSliceOrientationToYZ()
228  {
229  this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_YZ);
230  }
231  virtual void SetSliceOrientationToXZ()
232  {
233  this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_XZ);
234  }
235 
237 
241  vtkGetMacro(Slice, int);
242  virtual void SetSlice(int s);
244 
257  virtual void UpdateDisplayExtent();
258 
260 
264  virtual int GetSliceMin();
265  virtual int GetSliceMax();
266  virtual void GetSliceRange(int range[2]) { this->GetSliceRange(range[0], range[1]); }
267  virtual void GetSliceRange(int& min, int& max);
268  virtual int* GetSliceRange();
270 
272 
275  virtual double GetColorWindow();
276  virtual double GetColorLevel();
277  virtual void SetColorWindow(double s);
278  virtual void SetColorLevel(double s);
280 
282 
285  virtual void SetDisplayId(void* a);
286  virtual void SetWindowId(void* a);
287  virtual void SetParentId(void* a);
289 
291 
295  virtual int* GetPosition() VTK_SIZEHINT(2);
296 
302  virtual void SetPosition(int x, int y);
303  virtual void SetPosition(int a[2]) { this->SetPosition(a[0], a[1]); }
305 
307 
311  virtual int* GetSize() VTK_SIZEHINT(2);
312 
321  virtual void SetSize(int width, int height);
322  virtual void SetSize(int a[2]) { this->SetSize(a[0], a[1]); }
324 
326 
330  vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
331  vtkGetObjectMacro(Renderer, vtkRenderer);
332  vtkGetObjectMacro(ImageActor, vtkImageActor);
333  vtkGetObjectMacro(WindowLevel, vtkImageMapToWindowLevelColors);
334  vtkGetObjectMacro(InteractorStyle, vtkInteractorStyleImage);
336 
338 
341  virtual void SetRenderWindow(vtkRenderWindow* arg);
342  virtual void SetRenderer(vtkRenderer* arg);
344 
349 
351 
358  vtkBooleanMacro(OffScreenRendering, vtkTypeBool);
360 
361 protected:
363  ~vtkImageViewer2() override;
364 
365  virtual void InstallPipeline();
366  virtual void UnInstallPipeline();
367 
374 
377  int Slice;
378 
379  virtual void UpdateOrientation();
380 
383 
384  friend class vtkImageViewer2Callback;
385 
386 private:
387  vtkImageViewer2(const vtkImageViewer2&) = delete;
388  void operator=(const vtkImageViewer2&) = delete;
389 };
390 
391 #endif
Proxy object to connect input/output ports.
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:122
draw an image in a rendered 3D scene
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
Map an image through a lookup table and/or a window/level.
Display a 2D image.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void SetDisplayId(void *a)
These are here when using a Tk window.
virtual int GetSliceMin()
Return the minimum and maximum slice values (depending on the orientation this can be in X,...
virtual void SetSliceOrientation(int orientation)
virtual void SetColorLevel(double s)
Set window and level for mapping pixels to colors.
virtual void UnInstallPipeline()
virtual int * GetSize()
Get the size (width and height) of the rendering window in screen coordinates (in pixels).
virtual void UpdateDisplayExtent()
Update the display extent manually so that the proper slice for the given orientation is displayed.
virtual int * GetPosition()
Get the position (x and y) of the rendering window in screen coordinates (in pixels).
virtual void SetWindowId(void *a)
These are here when using a Tk window.
virtual void SetOffScreenRendering(vtkTypeBool)
Create a window in memory instead of on the screen.
vtkAlgorithm * GetInputAlgorithm()
vtkInformation * GetInputInformation()
vtkRenderer * Renderer
virtual vtkImageData * GetInput()
Set/Get the input image to the viewer.
virtual void SetSlice(int s)
Set/Get the current slice to display (depending on the orientation this can be in X,...
virtual void SetSliceOrientationToXZ()
virtual void GetSliceRange(int &min, int &max)
Return the minimum and maximum slice values (depending on the orientation this can be in X,...
vtkImageActor * ImageActor
virtual void SetupInteractor(vtkRenderWindowInteractor *)
Attach an interactor for the internal render window.
virtual void SetSize(int a[2])
Get the size (width and height) of the rendering window in screen coordinates (in pixels).
virtual void SetPosition(int a[2])
Get the position (x and y) of the rendering window in screen coordinates (in pixels).
virtual double GetColorLevel()
Set window and level for mapping pixels to colors.
virtual void SetInputConnection(vtkAlgorithmOutput *input)
Set/Get the input image to the viewer.
virtual void SetSliceOrientationToYZ()
~vtkImageViewer2() override
virtual void GetSliceRange(int range[2])
Return the minimum and maximum slice values (depending on the orientation this can be in X,...
virtual int GetSliceMax()
Return the minimum and maximum slice values (depending on the orientation this can be in X,...
virtual double GetColorWindow()
Set window and level for mapping pixels to colors.
virtual void SetRenderWindow(vtkRenderWindow *arg)
Set your own renderwindow and renderer.
virtual vtkTypeBool GetOffScreenRendering()
Create a window in memory instead of on the screen.
vtkRenderWindow * RenderWindow
virtual void SetColorWindow(double s)
Set window and level for mapping pixels to colors.
static vtkImageViewer2 * New()
virtual void Render(void)
Render the resulting image.
virtual void SetParentId(void *a)
These are here when using a Tk window.
virtual const char * GetWindowName()
Get the name of rendering window.
vtkRenderWindowInteractor * Interactor
virtual void SetSliceOrientationToXY()
virtual void SetRenderer(vtkRenderer *arg)
Set your own renderwindow and renderer.
virtual void SetInputData(vtkImageData *in)
Set/Get the input image to the viewer.
virtual int * GetSliceRange()
Return the minimum and maximum slice values (depending on the orientation this can be in X,...
vtkImageMapToWindowLevelColors * WindowLevel
vtkInteractorStyleImage * InteractorStyle
virtual void InstallPipeline()
virtual void UpdateOrientation()
a simple class to control print indentation
Definition: vtkIndent.h:113
Store vtkAlgorithm input/output information.
interactive manipulation of the camera specialized for images
abstract base class for most VTK objects
Definition: vtkObject.h:82
platform-independent render window interaction including picking and frame rate control.
create a window for renderers to draw into
abstract specification for renderers
Definition: vtkRenderer.h:182
@ orientation
Definition: vtkX3D.h:268
@ range
Definition: vtkX3D.h:244
@ height
Definition: vtkX3D.h:260
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_SIZEHINT(...)
#define max(a, b)