VTK  9.2.5
vtkImageSliceMapper.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImageSliceMapper.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=========================================================================*/
33#ifndef vtkImageSliceMapper_h
34#define vtkImageSliceMapper_h
35
36#include "vtkImageMapper3D.h"
37#include "vtkRenderingCoreModule.h" // For export macro
38
39class vtkCamera;
40class vtkPoints;
41
42class VTKRENDERINGCORE_EXPORT vtkImageSliceMapper : public vtkImageMapper3D
43{
44public:
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
50
53 virtual void SetSliceNumber(int slice);
54 virtual int GetSliceNumber();
56
58
66
68
73 vtkSetClampMacro(Orientation, int, 0, 2);
74 vtkGetMacro(Orientation, int);
75 void SetOrientationToI() { this->SetOrientation(0); }
76 void SetOrientationToJ() { this->SetOrientation(1); }
77 void SetOrientationToK() { this->SetOrientation(2); }
78 // old methods
79 void SetOrientationToX() { this->SetOrientation(0); }
80 void SetOrientationToY() { this->SetOrientation(1); }
81 void SetOrientationToZ() { this->SetOrientation(2); }
83
85
89 vtkSetMacro(Cropping, vtkTypeBool);
90 vtkBooleanMacro(Cropping, vtkTypeBool);
91 vtkGetMacro(Cropping, vtkTypeBool);
93
95
99 vtkSetVector6Macro(CroppingRegion, int);
100 vtkGetVector6Macro(CroppingRegion, int);
102
106 void Render(vtkRenderer* renderer, vtkImageSlice* prop) override;
107
114
119
121
125 double* GetBounds() override;
126 void GetBounds(double bounds[6]) override { this->vtkAbstractMapper3D::GetBounds(bounds); }
128
129 // return the bounds in index space
130 void GetIndexBounds(double extent[6]) override;
131
137 void GetSlicePlaneInDataCoords(vtkMatrix4x4* propMatrix, double plane[4]) override;
138
143 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo) override;
144
146
150 void SetDisplayExtent(const int extent[6])
151 {
152 this->DisplayExtent[0] = extent[0];
153 this->DisplayExtent[1] = extent[1];
154 this->DisplayExtent[2] = extent[2];
155 this->DisplayExtent[3] = extent[3];
156 this->DisplayExtent[4] = extent[4];
157 this->DisplayExtent[5] = extent[5];
158 }
160
161protected:
164
169 void SetPoints(vtkPoints* points);
170 vtkPoints* GetPoints() { return this->Points; }
171
176 void SetExactPixelMatch(int v) { this->ExactPixelMatch = (v != 0); }
177
182 void SetPassColorData(int v) { this->PassColorData = (v != 0); }
183
189 int GetOrientationFromCamera(double const* propMatrix, vtkCamera* camera);
190
194 int GetSliceFromCamera(double const* propMatrix, vtkCamera* camera);
195
199 static void GetDimensionIndices(int orientation, int& xdim, int& ydim);
200
206 int CroppingRegion[6];
207 int DisplayExtent[6];
211
212private:
214 void operator=(const vtkImageSliceMapper&) = delete;
215
217};
218
219#endif
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
a virtual camera for 3D rendering
Definition: vtkCamera.h:52
abstract class for mapping images to the screen
map a slice of a vtkImageData to the screen
map a slice of a vtkImageData to the screen
int GetOrientationFromCamera(double const *propMatrix, vtkCamera *camera)
Get the camera orientation as a simple integer [0,1,2,3,4,5] that indicates one of the six major dire...
virtual int GetSliceNumberMaxValue()
Use GetSliceNumberMinValue() and GetSliceNumberMaxValue() to get the range of allowed slices.
void GetIndexBounds(double extent[6]) override
void SetOrientationToX()
Set the orientation of the slices to display.
void SetOrientationToZ()
Set the orientation of the slices to display.
virtual int GetSliceNumberMinValue()
Use GetSliceNumberMinValue() and GetSliceNumberMaxValue() to get the range of allowed slices.
void GetSlicePlaneInDataCoords(vtkMatrix4x4 *propMatrix, double plane[4]) override
Get the plane as a homogeneous 4-vector that gives the plane equation coefficients.
virtual void SetSliceNumber(int slice)
The slice to display, if there are multiple slices.
void GetBounds(double bounds[6]) override
The bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
void SetExactPixelMatch(int v)
Force linear interpolation.
int GetSliceFromCamera(double const *propMatrix, vtkCamera *camera)
Get the current slice as the one closest to the focal point.
void SetPoints(vtkPoints *points)
Set points that describe a polygon on which the slice will be rendered.
static void GetDimensionIndices(int orientation, int &xdim, int &ydim)
Get the dimension indices according to the orientation.
void SetPassColorData(int v)
Pass color data.
vtkMTimeType GetMTime() override
Get the mtime for the mapper.
~vtkImageSliceMapper() override
void Render(vtkRenderer *renderer, vtkImageSlice *prop) override
This should only be called by the renderer.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetDisplayExtent(const int extent[6])
Set the display extent.
virtual int GetSliceNumber()
The slice to display, if there are multiple slices.
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo) override
Handle requests from the pipeline executive.
double * GetBounds() override
The bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
void SetOrientationToK()
Set the orientation of the slices to display.
void SetOrientationToI()
Set the orientation of the slices to display.
static vtkImageSliceMapper * New()
void SetOrientationToJ()
Set the orientation of the slices to display.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
void SetOrientationToY()
Set the orientation of the slices to display.
represents an image in a 3D scene
Definition: vtkImageSlice.h:50
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:42
represent and manipulate 3D points
Definition: vtkPoints.h:40
abstract specification for renderers
Definition: vtkRenderer.h:73
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287