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 =========================================================================*/
29 #ifndef vtkAMRVolumeMapper_h
30 #define vtkAMRVolumeMapper_h
31 
32 #include "vtkRenderingVolumeAMRModule.h" // For export macro
33 #include "vtkVolumeMapper.h"
34 #include "vtkImageReslice.h" // for VTK_RESLICE_NEAREST, VTK_RESLICE_CUBIC
35 
37 class vtkCamera;
38 class vtkImageData;
39 class vtkOverlappingAMR;
41 class vtkUniformGrid;
42 
43 class VTKRENDERINGVOLUMEAMR_EXPORT vtkAMRVolumeMapper : public vtkVolumeMapper
44 {
45 public:
48  void PrintSelf( ostream& os, vtkIndent indent ) override;
49 
51 
54  void SetInputData( vtkImageData* ) override;
55  void SetInputData( vtkDataSet* ) override;
56  virtual void SetInputData( vtkOverlappingAMR* );
57  void SetInputConnection (int port, vtkAlgorithmOutput *input) override;
58  void SetInputConnection (vtkAlgorithmOutput *input) override
59  {this->SetInputConnection(0, input);}
61 
63 
67  double *GetBounds() override;
68  void GetBounds(double bounds[6]) override
69  {this->vtkVolumeMapper::GetBounds(bounds); };
71 
83  void SetScalarMode(int mode) override;
84 
86 
91  void SetBlendMode(int mode) override;
92  int GetBlendMode() override;
94 
96 
102  void SelectScalarArray(int arrayNum) override;
103  void SelectScalarArray(const char* arrayName) override;
105 
107 
110  char* GetArrayName() override;
111  int GetArrayId() override;
112  int GetArrayAccessMode() override;
114 
118  const char *GetScalarModeAsString();
120 
124  void SetCropping(vtkTypeBool) override;
127 
129 
134  void SetCroppingRegionPlanes(double arg1, double arg2, double arg3,
135  double arg4, double arg5, double arg6) override;
136  void SetCroppingRegionPlanes(double *planes) override
138  planes[0],planes[1],planes[2],
139  planes[3],planes[4],planes[5]);}
140  void GetCroppingRegionPlanes(double *planes) override;
141  double *GetCroppingRegionPlanes() VTK_SIZEHINT(6) override;
143 
144 
155  void SetCroppingRegionFlags(int mode) override;
156  int GetCroppingRegionFlags() override;
158 
159 // The possible values for the default and current render mode ivars
160  enum
161  {
162  DefaultRenderMode=0,
168  InvalidRenderMode
169  };
170 
172 
179 
186  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::DefaultRenderMode);}
187 
196  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::RayCastAndTextureRenderMode);}
197 
204  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::RayCastRenderMode);}
205 
213  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::TextureRenderMode);}
214 
221  {this->SetRequestedRenderMode(vtkAMRVolumeMapper::GPURenderMode);}
222 
224 
231 
233  {this->SetInterpolationMode(VTK_RESLICE_NEAREST);}
234 
236  {this->SetInterpolationMode(VTK_RESLICE_LINEAR);}
237 
239  {this->SetInterpolationMode(VTK_RESLICE_CUBIC);}
240 
242 
246  vtkSetVector3Macro(NumberOfSamples,int);
247  vtkGetVector3Macro(NumberOfSamples,int);
249 
255  void Render(vtkRenderer *ren, vtkVolume *vol) override;
256 
264 
266  vtkInformationVector **inputVector,
267  vtkInformationVector *outputVector);
269  vtkInformationVector **inputVector,
270  vtkInformationVector *outputVector);
273 
275 
278  vtkSetMacro(RequestedResamplingMode, int);
279  vtkGetMacro(RequestedResamplingMode, int);
280  vtkSetMacro(FreezeFocalPoint, bool);
281  vtkGetMacro(FreezeFocalPoint, bool);
283 
285 
289  vtkSetMacro(ResamplerUpdateTolerance, double);
290  vtkGetMacro(ResamplerUpdateTolerance, double);
292 
294 
299  vtkSetMacro(UseDefaultThreading, bool);
300  vtkGetMacro(UseDefaultThreading, bool);
302 
308  vtkCamera* camera, vtkRenderer* renderer,
309  const double data_bounds[6], double out_bounds[6]);
310 
311 protected:
314 
315  // see algorithm for more info
317  void UpdateGrid();
318 
322  int NumberOfSamples[3];
323  double Bounds[6];
324  // This indicates that the input has meta data for
325  // doing demand driven operations.
329  // Cached values for camera focal point and
330  // the distance between the camera position and
331  // focal point
332  double LastFocalPointPosition[3];
334  // This is used when determining if
335  // either the camera or focal point has
336  // move enough to cause the resampler to update
340 
341 private:
342  vtkAMRVolumeMapper(const vtkAMRVolumeMapper&) = delete;
343  void operator=(const vtkAMRVolumeMapper&) = delete;
344 };
345 
346 
347 #endif
vtkAMRVolumeMapper::DefaultRenderMode
@ DefaultRenderMode
Definition: vtkAMRVolumeMapper.h:162
vtkVolumeMapper
Abstract class for a volume mapper.
Definition: vtkVolumeMapper.h:47
vtkAMRVolumeMapper::UpdateResamplerFrustrumMethod
void UpdateResamplerFrustrumMethod(vtkRenderer *ren, vtkOverlappingAMR *amr)
vtkImageReslice.h
vtkAMRVolumeMapper::SetCroppingRegionPlanes
void SetCroppingRegionPlanes(double arg1, double arg2, double arg3, double arg4, double arg5, double arg6) override
Set/Get the Cropping Region Planes ( xmin, xmax, ymin, ymax, zmin, zmax ) These planes are defined in...
vtkAMRVolumeMapper::InternalMapper
vtkSmartVolumeMapper * InternalMapper
Definition: vtkAMRVolumeMapper.h:319
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:51
vtkAMRVolumeMapper::New
static vtkAMRVolumeMapper * New()
vtkAMRVolumeMapper::ResamplerUpdateTolerance
double ResamplerUpdateTolerance
Definition: vtkAMRVolumeMapper.h:337
vtkAMRVolumeMapper::SetInputData
void SetInputData(vtkDataSet *) override
vtkAMRVolumeMapper::GetBlendMode
int GetBlendMode() override
vtkAMRVolumeMapper::LastPostionFPDistance
double LastPostionFPDistance
Definition: vtkAMRVolumeMapper.h:333
vtkAMRVolumeMapper::SetCropping
void SetCropping(vtkTypeBool) override
Turn On/Off orthogonal cropping.
vtkAMRVolumeMapper::GetCroppingRegionPlanes
double * GetCroppingRegionPlanes() override
vtkAMRVolumeMapper::GetInterpolationMode
int GetInterpolationMode()
vtkAMRVolumeMapper::UseDefaultThreading
bool UseDefaultThreading
Definition: vtkAMRVolumeMapper.h:339
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:42
vtkAMRVolumeMapper::RequestedResamplingMode
int RequestedResamplingMode
Definition: vtkAMRVolumeMapper.h:327
vtkAMRVolumeMapper::vtkAMRVolumeMapper
vtkAMRVolumeMapper()
vtkAMRVolumeMapper::UpdateResampler
void UpdateResampler(vtkRenderer *ren, vtkOverlappingAMR *amr)
vtkAMRVolumeMapper::FreezeFocalPoint
bool FreezeFocalPoint
Definition: vtkAMRVolumeMapper.h:328
vtkUniformGrid
image data with blanking
Definition: vtkUniformGrid.h:41
vtkVolumeMapper::SetCroppingRegionPlanes
virtual void SetCroppingRegionPlanes(double, double, double, double, double, double)
Set/Get the Cropping Region Planes ( xmin, xmax, ymin, ymax, zmin, zmax ) These planes are defined in...
vtkAMRVolumeMapper::GetCropping
vtkTypeBool GetCropping() override
vtkAMRVolumeMapper::SetRequestedRenderModeToDefault
void SetRequestedRenderModeToDefault()
Set the requested render mode to vtkAMRVolumeMapper::DefaultRenderMode.
Definition: vtkAMRVolumeMapper.h:185
vtkAMRVolumeMapper::HasMetaData
bool HasMetaData
Definition: vtkAMRVolumeMapper.h:326
vtkAMRVolumeMapper::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkAMRVolumeMapper::GetCroppingRegionPlanes
void GetCroppingRegionPlanes(double *planes) override
vtkAMRVolumeMapper::GetScalarModeAsString
const char * GetScalarModeAsString()
Return the method for obtaining scalar data.
vtkAMRVolumeMapper::ComputeResamplerBoundsFrustumMethod
static bool ComputeResamplerBoundsFrustumMethod(vtkCamera *camera, vtkRenderer *renderer, const double data_bounds[6], double out_bounds[6])
Utility method used by UpdateResamplerFrustrumMethod() to compute the bounds.
vtkAMRVolumeMapper::SelectScalarArray
void SelectScalarArray(int arrayNum) override
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which scalar array t...
vtkAMRVolumeMapper::SetScalarMode
void SetScalarMode(int mode) override
Control how the mapper works with scalar point data and cell attribute data.
vtkAMRVolumeMapper::SetInterpolationModeToNearestNeighbor
void SetInterpolationModeToNearestNeighbor()
Definition: vtkAMRVolumeMapper.h:232
vtkAMRVolumeMapper::~vtkAMRVolumeMapper
~vtkAMRVolumeMapper() override
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:38
vtkAMRVolumeMapper::SetInterpolationModeToCubic
void SetInterpolationModeToCubic()
Definition: vtkAMRVolumeMapper.h:238
vtkAMRVolumeMapper::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkAMRVolumeMapper::GetBounds
void GetBounds(double bounds[6]) override
Get the bounds for this mapper as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
Definition: vtkAMRVolumeMapper.h:68
VTK_SIZEHINT
#define VTK_SIZEHINT(...)
Definition: vtkWrappingHints.h:42
VTK_RESLICE_CUBIC
#define VTK_RESLICE_CUBIC
Definition: vtkImageReslice.h:68
vtkVolumeMapper.h
vtkAMRVolumeMapper::GetBounds
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
vtkAMRVolumeMapper::SelectScalarArray
void SelectScalarArray(const char *arrayName) override
vtkAMRVolumeMapper::GetArrayId
int GetArrayId() override
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkSmartVolumeMapper
Adaptive volume mapper.
Definition: vtkSmartVolumeMapper.h:97
vtkAMRVolumeMapper::Grid
vtkUniformGrid * Grid
Definition: vtkAMRVolumeMapper.h:321
vtkAMRVolumeMapper::SetRequestedRenderMode
void SetRequestedRenderMode(int mode)
Set the requested render mode.
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:51
vtkAMRVolumeMapper::GridNeedsToBeUpdated
bool GridNeedsToBeUpdated
Definition: vtkAMRVolumeMapper.h:338
vtkAMRVolumeMapper::GPURenderMode
@ GPURenderMode
Definition: vtkAMRVolumeMapper.h:166
vtkAMRVolumeMapper::SetInputConnection
void SetInputConnection(vtkAlgorithmOutput *input) override
Definition: vtkAMRVolumeMapper.h:58
VTK_RESLICE_NEAREST
#define VTK_RESLICE_NEAREST
Definition: vtkImageReslice.h:66
vtkAMRVolumeMapper::SetInterpolationModeToLinear
void SetInterpolationModeToLinear()
Definition: vtkAMRVolumeMapper.h:235
vtkOverlappingAMR
hierarchical dataset of vtkUniformGrids
Definition: vtkOverlappingAMR.h:47
vtkAMRVolumeMapper::SetRequestedRenderModeToRayCast
void SetRequestedRenderModeToRayCast()
Set the requested render mode to vtkAMRVolumeMapper::RayCastRenderMode.
Definition: vtkAMRVolumeMapper.h:203
vtkAMRVolumeMapper::RayCastAndTextureRenderMode
@ RayCastAndTextureRenderMode
Definition: vtkAMRVolumeMapper.h:163
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
vtkAlgorithm::SetInputConnection
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:87
vtkAMRVolumeMapper::SetInterpolationMode
void SetInterpolationMode(int mode)
Set interpolation mode for downsampling (lowres GPU) (initial value: cubic).
vtkAMRVolumeMapper::SetInputData
virtual void SetInputData(vtkOverlappingAMR *)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkAMRVolumeMapper::UpdateGrid
void UpdateGrid()
vtkAMRVolumeMapper::GetArrayAccessMode
int GetArrayAccessMode() override
vtkAMRVolumeMapper::SetInputConnection
void SetInputConnection(int port, vtkAlgorithmOutput *input) override
Set the connection for the given input port index.
vtkAMRVolumeMapper::TextureRenderMode
@ TextureRenderMode
Definition: vtkAMRVolumeMapper.h:165
vtkAMRVolumeMapper::SetRequestedRenderModeToTexture
void SetRequestedRenderModeToTexture()
Set the requested render mode to vtkAMRVolumeMapper::TextureRenderMode.
Definition: vtkAMRVolumeMapper.h:212
vtkAMRVolumeMapper::Render
void Render(vtkRenderer *ren, vtkVolume *vol) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:40
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkAMRVolumeMapper::SetInputData
void SetInputData(vtkImageData *) override
Set the input data.
VTK_RESLICE_LINEAR
#define VTK_RESLICE_LINEAR
Definition: vtkImageReslice.h:67
vtkAbstractVolumeMapper::GetBounds
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
vtkAMRVolumeMapper::RayCastRenderMode
@ RayCastRenderMode
Definition: vtkAMRVolumeMapper.h:164
vtkAMRVolumeMapper::SetRequestedRenderModeToGPU
void SetRequestedRenderModeToGPU()
Set the requested render mode to vtkAMRVolumeMapper::GPURenderMode.
Definition: vtkAMRVolumeMapper.h:220
vtkAMRVolumeMapper::UndefinedRenderMode
@ UndefinedRenderMode
Definition: vtkAMRVolumeMapper.h:167
vtkAMRVolumeMapper::GetRequestedRenderMode
int GetRequestedRenderMode()
vtkAMRVolumeMapper::SetBlendMode
void SetBlendMode(int mode) override
Set/Get the blend mode.
vtkAMRVolumeMapper
AMR class for a volume mapper.
Definition: vtkAMRVolumeMapper.h:44
vtkAMRVolumeMapper::ProcessInformationRequest
void ProcessInformationRequest(vtkRenderer *renderer, vtkInformation *info, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkAMRVolumeMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAMRVolumeMapper::Resampler
vtkAMRResampleFilter * Resampler
Definition: vtkAMRVolumeMapper.h:320
vtkX3D::mode
@ mode
Definition: vtkX3D.h:247
vtkAMRVolumeMapper::SetRequestedRenderModeToRayCastAndTexture
void SetRequestedRenderModeToRayCastAndTexture()
Set the requested render mode to vtkAMRVolumeMapper::RayCastAndTextureRenderMode.
Definition: vtkAMRVolumeMapper.h:195
vtkAMRVolumeMapper::GetArrayName
char * GetArrayName() override
Get the array name or number and component to use for rendering.
vtkAMRResampleFilter
This filter is a concrete instance of vtkMultiBlockDataSetAlgorithm and provides functionality for ex...
Definition: vtkAMRResampleFilter.h:56
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkAMRVolumeMapper::ProcessUpdateExtentRequest
void ProcessUpdateExtentRequest(vtkRenderer *renderer, vtkInformation *info, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkAMRVolumeMapper::SetCroppingRegionPlanes
void SetCroppingRegionPlanes(double *planes) override
Definition: vtkAMRVolumeMapper.h:136