VTK
vtkAMRVolumeMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAMRVolumeMapper.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 =========================================================================*/
25 #ifndef vtkAMRVolumeMapper_h
26 #define vtkAMRVolumeMapper_h
27 
28 #include "vtkRenderingVolumeAMRModule.h" // For export macro
29 #include "vtkVolumeMapper.h"
30 #include "vtkImageReslice.h" // for VTK_RESLICE_NEAREST, VTK_RESLICE_CUBIC
31 
33 class vtkCamera;
34 class vtkImageData;
35 class vtkOverlappingAMR;
37 class vtkUniformGrid;
38 
40 {
41 public:
44  void PrintSelf( ostream& os, vtkIndent indent );
45 
47 
48  virtual void SetInputData( vtkImageData* );
49  virtual void SetInputData( vtkDataSet* );
50  virtual void SetInputData( vtkOverlappingAMR* );
53  {this->SetInputConnection(0, input);}
55 
57 
59  virtual double *GetBounds();
60  virtual void GetBounds(double bounds[6])
61  {this->vtkVolumeMapper::GetBounds(bounds); };
63 
73  virtual void SetScalarMode(int mode);
74 
76 
82  virtual void SetBlendMode(int mode);
83  virtual int GetBlendMode();
85 
87 
91  virtual void SelectScalarArray(int arrayNum);
92  virtual void SelectScalarArray(const char* arrayName);
94 
96 
97  virtual char* GetArrayName();
98  virtual int GetArrayId();
99  virtual int GetArrayAccessMode();
101 
103  const char *GetScalarModeAsString();
105 
107  virtual void SetCropping(int mode);
108  virtual int GetCropping();
110 
112 
115  virtual void SetCroppingRegionPlanes(double arg1, double arg2, double arg3,
116  double arg4, double arg5, double arg6);
117  virtual void SetCroppingRegionPlanes(double *planes)
119  planes[0],planes[1],planes[2],
120  planes[3],planes[4],planes[5]);}
121  virtual void GetCroppingRegionPlanes(double *planes);
122  virtual double *GetCroppingRegionPlanes();
124 
125 
134  virtual void SetCroppingRegionFlags(int mode);
135  virtual int GetCroppingRegionFlags();
137 
138 //BTX
139 // The possible values for the default and current render mode ivars
140  enum
141  {
142  DefaultRenderMode=0,
148  InvalidRenderMode
149  };
150 //ETX
151 
153 
158 
160 
165  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::DefaultRenderMode);}
167 
169 
175  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::RayCastAndTextureRenderMode);}
177 
179 
184  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::RayCastRenderMode);}
186 
188 
193  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::TextureRenderMode);}
195 
197 
200  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::GPURenderMode);}
202 
204 
209 
211  {this->SetInterpolationMode(VTK_RESLICE_NEAREST);}
212 
214  {this->SetInterpolationMode(VTK_RESLICE_LINEAR);}
215 
217  {this->SetInterpolationMode(VTK_RESLICE_CUBIC);}
218 
220 
222  vtkSetVector3Macro(NumberOfSamples,int);
223  vtkGetVector3Macro(NumberOfSamples,int);
225 
226 //BTX
229  virtual void Render(vtkRenderer *ren, vtkVolume *vol);
230 
236 
238  vtkInformationVector **inputVector,
239  vtkInformationVector *outputVector);
241  vtkInformationVector **inputVector,
242  vtkInformationVector *outputVector);
245 //ETX
246 
248 
249  vtkSetMacro(RequestedResamplingMode, int);
250  vtkGetMacro(RequestedResamplingMode, int);
251  vtkSetMacro(FreezeFocalPoint, bool);
252  vtkGetMacro(FreezeFocalPoint, bool);
254 
256 
258  vtkSetMacro(ResamplerUpdateTolerance, double);
259  vtkGetMacro(ResamplerUpdateTolerance, double);
261 
263 
267  vtkSetMacro(UseDefaultThreading, bool);
268  vtkGetMacro(UseDefaultThreading, bool);
270 
272 
275  vtkCamera* camera, vtkRenderer* renderer,
276  const double data_bounds[6], double out_bounds[6]);
277 protected:
281 
282  // see algorithm for more info
284  void UpdateGrid();
285 
289  int NumberOfSamples[3];
290  double Bounds[6];
291  // This indicates that the input has meta data for
292  // doing demand driven operations.
296  // Cached values for camera focal point and
297  // the distance between the camera position and
298  // focal point
299  double LastFocalPointPosition[3];
301  // This is used when determing if
302  // either the camera or focal point has
303  // move enough to cause the resampler to update
307 
308 private:
309  vtkAMRVolumeMapper(const vtkAMRVolumeMapper&); // Not implemented.
310  void operator=(const vtkAMRVolumeMapper&); // Not implemented.
311 };
312 
313 
314 #endif
vtkVolumeMapper
Abstract class for a volume mapper.
Definition: vtkVolumeMapper.h:46
vtkAMRVolumeMapper::SetInputConnection
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
vtkAMRVolumeMapper::SetInputConnection
virtual void SetInputConnection(vtkAlgorithmOutput *input)
Definition: vtkAMRVolumeMapper.h:52
vtkAMRVolumeMapper::UpdateResamplerFrustrumMethod
void UpdateResamplerFrustrumMethod(vtkRenderer *ren, vtkOverlappingAMR *amr)
vtkImageReslice.h
vtkAMRVolumeMapper::SetCroppingRegionFlags
virtual void SetCroppingRegionFlags(int mode)
vtkAMRVolumeMapper::InternalMapper
vtkSmartVolumeMapper * InternalMapper
Definition: vtkAMRVolumeMapper.h:286
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:50
vtkAMRVolumeMapper::New
static vtkAMRVolumeMapper * New()
vtkAMRVolumeMapper::ResamplerUpdateTolerance
double ResamplerUpdateTolerance
Definition: vtkAMRVolumeMapper.h:304
vtkAMRVolumeMapper::LastPostionFPDistance
double LastPostionFPDistance
Definition: vtkAMRVolumeMapper.h:300
vtkSetVector3Macro
#define vtkSetVector3Macro(name, type)
Definition: vtkSetGet.h:287
vtkAMRVolumeMapper::SetCroppingRegionPlanes
virtual void SetCroppingRegionPlanes(double *planes)
Definition: vtkAMRVolumeMapper.h:117
vtkAMRVolumeMapper::Render
virtual void Render(vtkRenderer *ren, vtkVolume *vol)
vtkAMRVolumeMapper::GetInterpolationMode
int GetInterpolationMode()
vtkAMRVolumeMapper::UseDefaultThreading
bool UseDefaultThreading
Definition: vtkAMRVolumeMapper.h:306
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkAMRVolumeMapper::RequestedResamplingMode
int RequestedResamplingMode
Definition: vtkAMRVolumeMapper.h:294
vtkAMRVolumeMapper::vtkAMRVolumeMapper
vtkAMRVolumeMapper()
vtkAMRVolumeMapper::GetBounds
virtual double * GetBounds()
vtkAMRVolumeMapper::UpdateResampler
void UpdateResampler(vtkRenderer *ren, vtkOverlappingAMR *amr)
vtkAMRVolumeMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkAMRVolumeMapper::FreezeFocalPoint
bool FreezeFocalPoint
Definition: vtkAMRVolumeMapper.h:295
vtkUniformGrid
image data with blanking
Definition: vtkUniformGrid.h:40
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkVolumeMapper::SetCroppingRegionPlanes
virtual void SetCroppingRegionPlanes(double, double, double, double, double, double)
vtkAMRVolumeMapper::SetRequestedRenderModeToDefault
void SetRequestedRenderModeToDefault()
Definition: vtkAMRVolumeMapper.h:164
vtkAMRVolumeMapper::HasMetaData
bool HasMetaData
Definition: vtkAMRVolumeMapper.h:293
vtkAMRVolumeMapper::GetScalarModeAsString
const char * GetScalarModeAsString()
vtkAMRVolumeMapper::ComputeResamplerBoundsFrustumMethod
static bool ComputeResamplerBoundsFrustumMethod(vtkCamera *camera, vtkRenderer *renderer, const double data_bounds[6], double out_bounds[6])
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkAMRVolumeMapper::UndefinedRenderMode
@ UndefinedRenderMode
Definition: vtkAMRVolumeMapper.h:147
vtkgl::arg3
GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg3
Definition: vtkgl.h:16717
vtkAMRVolumeMapper::SetInterpolationModeToNearestNeighbor
void SetInterpolationModeToNearestNeighbor()
Definition: vtkAMRVolumeMapper.h:210
vtkAMRVolumeMapper::GetArrayId
virtual int GetArrayId()
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkAMRVolumeMapper::GetBounds
virtual void GetBounds(double bounds[6])
Definition: vtkAMRVolumeMapper.h:60
vtkAMRVolumeMapper::SetInterpolationModeToCubic
void SetInterpolationModeToCubic()
Definition: vtkAMRVolumeMapper.h:216
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkAMRVolumeMapper::DefaultRenderMode
@ DefaultRenderMode
Definition: vtkAMRVolumeMapper.h:142
vtkGetVector3Macro
#define vtkGetVector3Macro(name, type)
Definition: vtkSetGet.h:304
vtkAMRVolumeMapper::SelectScalarArray
virtual void SelectScalarArray(const char *arrayName)
vtkAMRVolumeMapper::RayCastRenderMode
@ RayCastRenderMode
Definition: vtkAMRVolumeMapper.h:144
vtkAMRVolumeMapper::GetArrayName
virtual char * GetArrayName()
vtkAMRVolumeMapper::TextureRenderMode
@ TextureRenderMode
Definition: vtkAMRVolumeMapper.h:145
VTK_RESLICE_CUBIC
#define VTK_RESLICE_CUBIC
Definition: vtkImageReslice.h:67
vtkgl::arg2
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
Definition: vtkgl.h:16716
vtkVolumeMapper.h
vtkAMRVolumeMapper::SetScalarMode
virtual void SetScalarMode(int mode)
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSmartVolumeMapper
Adaptive volume mapper.
Definition: vtkSmartVolumeMapper.h:124
vtkAMRVolumeMapper::Grid
vtkUniformGrid * Grid
Definition: vtkAMRVolumeMapper.h:288
vtkAMRVolumeMapper::SetRequestedRenderMode
void SetRequestedRenderMode(int mode)
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:49
vtkAMRVolumeMapper::GPURenderMode
@ GPURenderMode
Definition: vtkAMRVolumeMapper.h:146
vtkAMRVolumeMapper::GetCroppingRegionPlanes
virtual void GetCroppingRegionPlanes(double *planes)
vtkAMRVolumeMapper::GridNeedsToBeUpdated
bool GridNeedsToBeUpdated
Definition: vtkAMRVolumeMapper.h:305
vtkAMRVolumeMapper::SetInputData
virtual void SetInputData(vtkImageData *)
VTK_RESLICE_NEAREST
#define VTK_RESLICE_NEAREST
Definition: vtkImageReslice.h:65
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkAMRVolumeMapper::SetInterpolationModeToLinear
void SetInterpolationModeToLinear()
Definition: vtkAMRVolumeMapper.h:213
vtkAMRVolumeMapper::SetCropping
virtual void SetCropping(int mode)
vtkAMRVolumeMapper::GetCroppingRegionFlags
virtual int GetCroppingRegionFlags()
vtkOverlappingAMR
hierarchical dataset of vtkUniformGrids
Definition: vtkOverlappingAMR.h:46
vtkAMRVolumeMapper::SetRequestedRenderModeToRayCast
void SetRequestedRenderModeToRayCast()
Definition: vtkAMRVolumeMapper.h:183
vtkAMRVolumeMapper::GetCroppingRegionPlanes
virtual double * GetCroppingRegionPlanes()
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkAlgorithm::SetInputConnection
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkAbstractVolumeMapper::GetBounds
virtual double * GetBounds()
vtkAMRVolumeMapper::SetInterpolationMode
void SetInterpolationMode(int mode)
vtkAMRVolumeMapper::SetInputData
virtual void SetInputData(vtkOverlappingAMR *)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkAMRVolumeMapper::UpdateGrid
void UpdateGrid()
vtkAMRVolumeMapper::~vtkAMRVolumeMapper
~vtkAMRVolumeMapper()
vtkAMRVolumeMapper::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkAMRVolumeMapper::SetRequestedRenderModeToTexture
void SetRequestedRenderModeToTexture()
Definition: vtkAMRVolumeMapper.h:192
VTKRENDERINGVOLUMEAMR_EXPORT
#define VTKRENDERINGVOLUMEAMR_EXPORT
Definition: vtkRenderingVolumeAMRModule.h:15
vtkAMRVolumeMapper::GetCropping
virtual int GetCropping()
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:39
vtkAMRVolumeMapper::GetBlendMode
virtual int GetBlendMode()
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
VTK_RESLICE_LINEAR
#define VTK_RESLICE_LINEAR
Definition: vtkImageReslice.h:66
vtkAMRVolumeMapper::SetRequestedRenderModeToGPU
void SetRequestedRenderModeToGPU()
Definition: vtkAMRVolumeMapper.h:199
vtkAMRVolumeMapper::GetRequestedRenderMode
int GetRequestedRenderMode()
vtkRenderingVolumeAMRModule.h
vtkAMRVolumeMapper
AMR class for a volume mapper.
Definition: vtkAMRVolumeMapper.h:40
vtkAMRVolumeMapper::SetInputData
virtual void SetInputData(vtkDataSet *)
vtkAMRVolumeMapper::ProcessInformationRequest
void ProcessInformationRequest(vtkRenderer *renderer, vtkInformation *info, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkAMRVolumeMapper::Resampler
vtkAMRResampleFilter * Resampler
Definition: vtkAMRVolumeMapper.h:287
vtkAMRVolumeMapper::SetRequestedRenderModeToRayCastAndTexture
void SetRequestedRenderModeToRayCastAndTexture()
Definition: vtkAMRVolumeMapper.h:174
vtkgl::arg1
GLuint GLuint GLuint GLuint arg1
Definition: vtkgl.h:16715
vtkAMRVolumeMapper::RayCastAndTextureRenderMode
@ RayCastAndTextureRenderMode
Definition: vtkAMRVolumeMapper.h:143
vtkgl::mode
GLenum mode
Definition: vtkgl.h:12325
vtkAMRVolumeMapper::SetBlendMode
virtual void SetBlendMode(int mode)
vtkAMRResampleFilter
Definition: vtkAMRResampleFilter.h:55
vtkAMRVolumeMapper::GetArrayAccessMode
virtual int GetArrayAccessMode()
vtkAMRVolumeMapper::SetCroppingRegionPlanes
virtual void SetCroppingRegionPlanes(double arg1, double arg2, double arg3, double arg4, double arg5, double arg6)
vtkAMRVolumeMapper::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
vtkAMRVolumeMapper::SelectScalarArray
virtual void SelectScalarArray(int arrayNum)
vtkAMRVolumeMapper::ProcessUpdateExtentRequest
void ProcessUpdateExtentRequest(vtkRenderer *renderer, vtkInformation *info, vtkInformationVector **inputVector, vtkInformationVector *outputVector)