VTK  9.1.0
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=========================================================================*/
26#ifndef vtkAMRVolumeMapper_h
27#define vtkAMRVolumeMapper_h
28
29#include "vtkImageReslice.h" // for VTK_RESLICE_NEAREST, VTK_RESLICE_CUBIC
30#include "vtkRenderingVolumeAMRModule.h" // For export macro
31#include "vtkVolumeMapper.h"
32
34class vtkCamera;
35class vtkImageData;
38class vtkUniformGrid;
39
40class VTKRENDERINGVOLUMEAMR_EXPORT vtkAMRVolumeMapper : public vtkVolumeMapper
41{
42public:
45 void PrintSelf(ostream& os, vtkIndent indent) override;
46
48
51 void SetInputData(vtkImageData*) override;
52 void SetInputData(vtkDataSet*) override;
55 void SetInputConnection(int port, vtkAlgorithmOutput* input) override;
57 {
58 this->SetInputConnection(0, input);
59 }
61
63
67 double* GetBounds() override;
68 void GetBounds(double bounds[6]) override { this->vtkVolumeMapper::GetBounds(bounds); }
70
82 void SetScalarMode(int mode) override;
83
85
90 void SetBlendMode(int mode) override;
91 int GetBlendMode() override;
93
95
101 void SelectScalarArray(int arrayNum) override;
102 void SelectScalarArray(const char* arrayName) override;
104
106
109 char* GetArrayName() override;
110 int GetArrayId() override;
111 int GetArrayAccessMode() override;
113
119
123 void SetCropping(vtkTypeBool) override;
126
128
134 double arg1, double arg2, double arg3, double arg4, double arg5, double arg6) override;
135 void SetCroppingRegionPlanes(const double* planes) override
136 {
137 this->SetCroppingRegionPlanes(planes[0], planes[1], planes[2], planes[3], planes[4], planes[5]);
138 }
139 void GetCroppingRegionPlanes(double* planes) override;
143
154 void SetCroppingRegionFlags(int mode) override;
155 int GetCroppingRegionFlags() override;
157
158 // The possible values for the default and current render mode ivars
159 enum
160 {
161 DefaultRenderMode = 0,
167 InvalidRenderMode
168 };
169
171
178
185 {
186 this->SetRequestedRenderMode(vtkAMRVolumeMapper::DefaultRenderMode);
187 }
188
197 {
198 this->SetRequestedRenderMode(vtkAMRVolumeMapper::RayCastAndTextureRenderMode);
199 }
200
207 {
208 this->SetRequestedRenderMode(vtkAMRVolumeMapper::RayCastRenderMode);
209 }
210
218 {
219 this->SetRequestedRenderMode(vtkAMRVolumeMapper::TextureRenderMode);
220 }
221
228 {
229 this->SetRequestedRenderMode(vtkAMRVolumeMapper::GPURenderMode);
230 }
231
233
237 void SetInterpolationMode(int mode);
240
241 void SetInterpolationModeToNearestNeighbor() { this->SetInterpolationMode(VTK_RESLICE_NEAREST); }
242
243 void SetInterpolationModeToLinear() { this->SetInterpolationMode(VTK_RESLICE_LINEAR); }
244
245 void SetInterpolationModeToCubic() { this->SetInterpolationMode(VTK_RESLICE_CUBIC); }
246
248
252 vtkSetVector3Macro(NumberOfSamples, int);
253 vtkGetVector3Macro(NumberOfSamples, int);
255
261 void Render(vtkRenderer* ren, vtkVolume* vol) override;
262
270
272 vtkInformationVector** inputVector, vtkInformationVector* outputVector);
274 vtkInformationVector** inputVector, vtkInformationVector* outputVector);
277
279
282 vtkSetMacro(RequestedResamplingMode, int);
283 vtkGetMacro(RequestedResamplingMode, int);
284 vtkSetMacro(FreezeFocalPoint, bool);
285 vtkGetMacro(FreezeFocalPoint, bool);
287
289
293 vtkSetMacro(ResamplerUpdateTolerance, double);
294 vtkGetMacro(ResamplerUpdateTolerance, double);
296
298
303 vtkSetMacro(UseDefaultThreading, bool);
304 vtkGetMacro(UseDefaultThreading, bool);
306
312 vtkCamera* camera, vtkRenderer* renderer, const double data_bounds[6], double out_bounds[6]);
313
314protected:
317
318 // see algorithm for more info
319 int FillInputPortInformation(int port, vtkInformation* info) override;
321
325 int NumberOfSamples[3];
326
327 // This indicates that the input has meta data for
328 // doing demand driven operations.
332 // Cached values for camera focal point and
333 // the distance between the camera position and
334 // focal point
335 double LastFocalPointPosition[3];
337 // This is used when determining if
338 // either the camera or focal point has
339 // move enough to cause the resampler to update
343
344private:
345 vtkAMRVolumeMapper(const vtkAMRVolumeMapper&) = delete;
346 void operator=(const vtkAMRVolumeMapper&) = delete;
347};
348
349#endif
This filter is a concrete instance of vtkMultiBlockDataSetAlgorithm and provides functionality for ex...
AMR class for a volume mapper.
void SetInputData(vtkRectilinearGrid *) override
Set the input data.
void SetInterpolationMode(int mode)
Set interpolation mode for downsampling (lowres GPU) (initial value: cubic).
vtkTypeBool GetCropping() override
Turn On/Off orthogonal cropping.
int GetBlendMode() override
Set/Get the blend mode.
void UpdateResampler(vtkRenderer *ren, vtkOverlappingAMR *amr)
void SetRequestedRenderModeToRayCast()
Set the requested render mode to vtkAMRVolumeMapper::RayCastRenderMode.
void SetInputData(vtkImageData *) override
Set the input data.
void SetInputData(vtkDataSet *) override
Set the input data.
const char * GetScalarModeAsString()
Return the method for obtaining scalar data.
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...
void UpdateResamplerFrustrumMethod(vtkRenderer *ren, vtkOverlappingAMR *amr)
void SetInputConnection(int port, vtkAlgorithmOutput *input) override
Set the input data.
void ProcessUpdateExtentRequest(vtkRenderer *renderer, vtkInformation *info, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void SelectScalarArray(const char *arrayName) override
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which scalar array t...
vtkSmartVolumeMapper * InternalMapper
vtkUniformGrid * Grid
void GetCroppingRegionPlanes(double *planes) override
Set/Get the Cropping Region Planes ( xmin, xmax, ymin, ymax, zmin, zmax ) These planes are defined in...
virtual void SetInputData(vtkOverlappingAMR *)
Set the input data.
double * GetCroppingRegionPlanes() override
Set/Get the Cropping Region Planes ( xmin, xmax, ymin, ymax, zmin, zmax ) These planes are defined in...
~vtkAMRVolumeMapper() override
int GetArrayId() override
Get the array name or number and component to use for rendering.
char * GetArrayName() override
Get the array name or number and component to use for rendering.
void SetBlendMode(int mode) override
Set/Get the blend mode.
static vtkAMRVolumeMapper * New()
int GetInterpolationMode()
Set interpolation mode for downsampling (lowres GPU) (initial value: cubic).
void SetRequestedRenderModeToTexture()
Set the requested render mode to vtkAMRVolumeMapper::TextureRenderMode.
void SetScalarMode(int mode) override
Control how the mapper works with scalar point data and cell attribute data.
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
void ProcessInformationRequest(vtkRenderer *renderer, vtkInformation *info, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void GetBounds(double bounds[6]) override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
void SetInterpolationModeToNearestNeighbor()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetRequestedRenderMode(int mode)
Set the requested render mode.
void SetRequestedRenderModeToRayCastAndTexture()
Set the requested render mode to vtkAMRVolumeMapper::RayCastAndTextureRenderMode.
int GetArrayAccessMode() override
Get the array name or number and component to use for rendering.
void SelectScalarArray(int arrayNum) override
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which scalar array t...
void SetCropping(vtkTypeBool) override
Turn On/Off orthogonal cropping.
void SetRequestedRenderModeToGPU()
Set the requested render mode to vtkAMRVolumeMapper::GPURenderMode.
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetRequestedRenderMode()
Set the requested render mode.
void SetInputConnection(vtkAlgorithmOutput *input) override
Set the input data.
void SetRequestedRenderModeToDefault()
Set the requested render mode to vtkAMRVolumeMapper::DefaultRenderMode.
void SetCroppingRegionPlanes(const double *planes) override
Set/Get the Cropping Region Planes ( xmin, xmax, ymin, ymax, zmin, zmax ) These planes are defined in...
void Render(vtkRenderer *ren, vtkVolume *vol) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkAMRResampleFilter * Resampler
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
Proxy object to connect input/output ports.
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
hierarchical dataset of vtkUniformGrids
a dataset that is topologically regular with variable spacing in the three coordinate directions
abstract specification for renderers
Definition: vtkRenderer.h:182
Adaptive volume mapper.
image data with blanking
Abstract class for a volume mapper.
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...
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:144
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_RESLICE_CUBIC
#define VTK_RESLICE_NEAREST
#define VTK_RESLICE_LINEAR
#define VTK_SIZEHINT(...)