VTK  9.2.20230207
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 =========================================================================*/
170 #ifndef vtkImageViewer2_h
171 #define vtkImageViewer2_h
172 
173 #include "vtkInteractionImageModule.h" // For export macro
174 #include "vtkObject.h"
175 
176 VTK_ABI_NAMESPACE_BEGIN
177 class vtkAlgorithm;
178 class vtkAlgorithmOutput;
179 class vtkImageActor;
180 class vtkImageData;
182 class vtkInformation;
184 class vtkRenderWindow;
185 class vtkRenderer;
187 
188 class VTKINTERACTIONIMAGE_EXPORT vtkImageViewer2 : public vtkObject
189 {
190 public:
191  static vtkImageViewer2* New();
192  vtkTypeMacro(vtkImageViewer2, vtkObject);
193  void PrintSelf(ostream& os, vtkIndent indent) override;
194 
198  virtual const char* GetWindowName();
199 
203  virtual void Render();
204 
206 
209  virtual void SetInputData(vtkImageData* in);
210  virtual vtkImageData* GetInput();
213 
218  enum
219  {
220  SLICE_ORIENTATION_YZ = 0,
221  SLICE_ORIENTATION_XZ = 1,
222  SLICE_ORIENTATION_XY = 2
223  };
224 
225  vtkGetMacro(SliceOrientation, int);
226  virtual void SetSliceOrientation(int orientation);
227  virtual void SetSliceOrientationToXY()
228  {
229  this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_XY);
230  }
231  virtual void SetSliceOrientationToYZ()
232  {
233  this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_YZ);
234  }
235  virtual void SetSliceOrientationToXZ()
236  {
237  this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_XZ);
238  }
239 
241 
245  vtkGetMacro(Slice, int);
246  virtual void SetSlice(int s);
248 
261  virtual void UpdateDisplayExtent();
262 
264 
268  virtual int GetSliceMin();
269  virtual int GetSliceMax();
270  virtual void GetSliceRange(int range[2]) { this->GetSliceRange(range[0], range[1]); }
271  virtual void GetSliceRange(int& min, int& max);
272  virtual int* GetSliceRange();
274 
276 
279  virtual double GetColorWindow();
280  virtual double GetColorLevel();
281  virtual void SetColorWindow(double s);
282  virtual void SetColorLevel(double s);
284 
286 
289  virtual void SetDisplayId(void* a);
290  virtual void SetWindowId(void* a);
291  virtual void SetParentId(void* a);
293 
295 
299  virtual int* GetPosition() VTK_SIZEHINT(2);
300 
306  virtual void SetPosition(int x, int y);
307  virtual void SetPosition(int a[2]) { this->SetPosition(a[0], a[1]); }
309 
311 
315  virtual int* GetSize() VTK_SIZEHINT(2);
316 
325  virtual void SetSize(int width, int height);
326  virtual void SetSize(int a[2]) { this->SetSize(a[0], a[1]); }
328 
330 
334  vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
335  vtkGetObjectMacro(Renderer, vtkRenderer);
336  vtkGetObjectMacro(ImageActor, vtkImageActor);
337  vtkGetObjectMacro(WindowLevel, vtkImageMapToWindowLevelColors);
338  vtkGetObjectMacro(InteractorStyle, vtkInteractorStyleImage);
340 
342 
345  virtual void SetRenderWindow(vtkRenderWindow* arg);
346  virtual void SetRenderer(vtkRenderer* arg);
348 
353 
355 
362  vtkBooleanMacro(OffScreenRendering, vtkTypeBool);
364 
365 protected:
367  ~vtkImageViewer2() override;
368 
369  virtual void InstallPipeline();
370  virtual void UnInstallPipeline();
371 
378 
381  int Slice;
382 
383  virtual void UpdateOrientation();
384 
387 
388  friend class vtkImageViewer2Callback;
389 
390 private:
391  vtkImageViewer2(const vtkImageViewer2&) = delete;
392  void operator=(const vtkImageViewer2&) = delete;
393 };
394 
395 VTK_ABI_NAMESPACE_END
396 #endif
Proxy object to connect input/output ports.
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:123
draw an image in a rendered 3D scene
topologically and geometrically regular array of data
Definition: vtkImageData.h:164
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 Render()
Render the resulting image.
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 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:120
Store vtkAlgorithm input/output information.
interactive manipulation of the camera specialized for images
abstract base class for most VTK objects
Definition: vtkObject.h:83
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:183
@ orientation
Definition: vtkX3D.h:274
@ range
Definition: vtkX3D.h:250
@ height
Definition: vtkX3D.h:266
int vtkTypeBool
Definition: vtkABI.h:71
#define VTK_SIZEHINT(...)
#define max(a, b)