VTK  9.1.0
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
173class vtkAlgorithm;
175class vtkImageActor;
176class vtkImageData;
178class vtkInformation;
180class vtkRenderWindow;
181class vtkRenderer;
183
184class VTKINTERACTIONIMAGE_EXPORT vtkImageViewer2 : public vtkObject
185{
186public:
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);
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);
224 {
225 this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_XY);
226 }
228 {
229 this->SetSliceOrientation(vtkImageViewer2::SLICE_ORIENTATION_YZ);
230 }
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
342 virtual void SetRenderer(vtkRenderer* arg);
344
349
351
358 vtkBooleanMacro(OffScreenRendering, vtkTypeBool);
360
361protected:
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
386private:
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:123
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.
vtkAlgorithm * GetInputAlgorithm()
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 int * GetSliceRange()
Return the minimum and maximum slice values (depending on the orientation this can be in X,...
virtual void SetColorLevel(double s)
Set window and level for mapping pixels to colors.
virtual void UnInstallPipeline()
virtual const char * GetWindowName()
Get the name of rendering window.
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 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.
vtkRenderer * Renderer
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 int * GetPosition()
Get the position (x and y) of the rendering window in screen coordinates (in pixels).
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 vtkImageData * GetInput()
Set/Get the input image to the viewer.
vtkInformation * GetInputInformation()
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.
virtual void Render(void)
Render the resulting image.
virtual void SetParentId(void *a)
These are here when using a Tk window.
vtkRenderWindowInteractor * Interactor
virtual void SetSliceOrientationToXY()
static vtkImageViewer2 * New()
virtual void SetRenderer(vtkRenderer *arg)
Set your own renderwindow and renderer.
virtual void SetInputData(vtkImageData *in)
Set/Get the input image to the viewer.
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
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_SIZEHINT(...)
#define max(a, b)