VTK
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 "vtkRenderingCoreModule.h" // For export macro
37 #include "vtkImageMapper3D.h"
38 
39 class vtkCamera;
40 class vtkPoints;
41 
42 class VTKRENDERINGCORE_EXPORT vtkImageSliceMapper : public vtkImageMapper3D
43 {
44 public:
45  static vtkImageSliceMapper *New();
47  void PrintSelf(ostream& os, vtkIndent indent);
48 
50 
53  virtual void SetSliceNumber(int slice);
54  virtual int GetSliceNumber();
56 
58 
63  virtual int GetSliceNumberMinValue();
64  virtual int GetSliceNumberMaxValue();
66 
68 
72  vtkSetClampMacro(Orientation, int, 0, 2);
73  vtkGetMacro(Orientation, int);
74  void SetOrientationToX() { this->SetOrientation(0); }
75  void SetOrientationToY() { this->SetOrientation(1); }
76  void SetOrientationToZ() { this->SetOrientation(2); }
78 
80 
84  vtkSetMacro(Cropping, int);
85  vtkBooleanMacro(Cropping, int);
86  vtkGetMacro(Cropping, int);
88 
90 
94  vtkSetVector6Macro(CroppingRegion, int);
95  vtkGetVector6Macro(CroppingRegion, int);
97 
101  virtual void Render(vtkRenderer *renderer, vtkImageSlice *prop);
102 
108  virtual void ReleaseGraphicsResources(vtkWindow *);
109 
114 
116 
120  double *GetBounds();
121  void GetBounds(double bounds[6]) {
122  this->vtkAbstractMapper3D::GetBounds(bounds); };
124 
130  virtual void GetSlicePlaneInDataCoords(vtkMatrix4x4 *propMatrix,
131  double plane[4]);
132 
136  virtual int ProcessRequest(vtkInformation* request,
137  vtkInformationVector** inInfo,
138  vtkInformationVector* outInfo);
139 
140 protected:
143 
148  void SetPoints(vtkPoints *points);
149  vtkPoints *GetPoints() { return this->Points; }
150 
155  void SetExactPixelMatch(int v) {
156  this->ExactPixelMatch = (v != 0); }
157 
162  void SetPassColorData(int v) {
163  this->PassColorData = (v != 0); }
164 
166 
170  void SetDisplayExtent(int extent[6]) {
171  this->DisplayExtent[0] = extent[0];
172  this->DisplayExtent[1] = extent[1];
173  this->DisplayExtent[2] = extent[2];
174  this->DisplayExtent[3] = extent[3];
175  this->DisplayExtent[4] = extent[4];
176  this->DisplayExtent[5] = extent[5]; }
178 
184  int GetOrientationFromCamera(vtkMatrix4x4 *propMatrix, vtkCamera *camera);
185 
189  int GetSliceFromCamera(vtkMatrix4x4 *propMatrix, vtkCamera *camera);
190 
194  static void GetDimensionIndices(int orientation, int &xdim, int &ydim);
195 
200  int Cropping;
201  int CroppingRegion[6];
202  int DisplayExtent[6];
206 
207 private:
208  vtkImageSliceMapper(const vtkImageSliceMapper&) VTK_DELETE_FUNCTION;
209  void operator=(const vtkImageSliceMapper&) VTK_DELETE_FUNCTION;
210 
211  friend class vtkImageResliceMapper;
212 };
213 
214 #endif
void SetExactPixelMatch(int v)
Force linear interpolation.
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:41
Store vtkAlgorithm input/output information.
virtual vtkMTimeType GetMTime()
Override Modifiedtime as we have added Clipping planes.
void SetDisplayExtent(int extent[6])
Set the display extent.
abstract specification for renderers
Definition: vtkRenderer.h:63
void GetBounds(double bounds[6])
The bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax, zmin,zmax).
virtual void ReleaseGraphicsResources(vtkWindow *)=0
Release any graphics resources that are being consumed by this mapper.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
void SetPassColorData(int v)
Pass color data.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
void SetOrientationToX()
Set the orientation of the slices to display.
a simple class to control print indentation
Definition: vtkIndent.h:39
abstract class for mapping images to the screen
map a slice of a vtkImageData to the screen
a virtual camera for 3D rendering
Definition: vtkCamera.h:50
virtual void Render(vtkRenderer *renderer, vtkImageSlice *prop)=0
This should only be called by the renderer.
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax, zmin,zmax).
void SetOrientationToZ()
Set the orientation of the slices to display.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual int ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
Handle requests from the pipeline executive.
represents an image in a 3D scene
Definition: vtkImageSlice.h:52
void SetOrientationToY()
Set the orientation of the slices to display.
Store zero or more vtkInformation instances.
map a slice of a vtkImageData to the screen
static vtkAlgorithm * New()
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual void GetSlicePlaneInDataCoords(vtkMatrix4x4 *propMatrix, double plane[4])
Get the plane as a homogeneous 4-vector that gives the plane equation coefficients.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
represent and manipulate 3D points
Definition: vtkPoints.h:39