76 #ifndef vtkSmartVolumeMapper_h
77 #define vtkSmartVolumeMapper_h
80 #include "vtkRenderingVolumeOpenGL2Module.h"
111 vtkSetMacro(FinalColorWindow,
float);
118 vtkGetMacro(FinalColorWindow,
float);
129 vtkSetMacro(FinalColorLevel,
float);
136 vtkGetMacro(FinalColorLevel,
float);
142 DefaultRenderMode = 0,
143 RayCastRenderMode = 1,
145 OSPRayRenderMode = 3,
146 UndefinedRenderMode = 4,
147 InvalidRenderMode = 5
154 void SetRequestedRenderMode(
int mode);
161 void SetRequestedRenderModeToDefault();
168 void SetRequestedRenderModeToRayCast();
175 void SetRequestedRenderModeToGPU();
181 void SetRequestedRenderModeToOSPRay();
187 vtkGetMacro(RequestedRenderMode,
int);
194 int GetLastUsedRenderMode();
204 vtkSetMacro(MaxMemoryInBytes,
vtkIdType);
205 vtkGetMacro(MaxMemoryInBytes,
vtkIdType);
215 vtkSetClampMacro(MaxMemoryFraction,
float, 0.1f, 1.0f);
216 vtkGetMacro(MaxMemoryFraction,
float);
225 vtkGetMacro(InterpolationMode,
int);
226 void SetInterpolationModeToNearestNeighbor();
227 void SetInterpolationModeToLinear();
228 void SetInterpolationModeToCubic();
246 vtkSetClampMacro(InteractiveUpdateRate,
double, 1.0e-10, 1.0e10);
255 vtkGetMacro(InteractiveUpdateRate,
double);
267 vtkSetClampMacro(InteractiveAdjustSampleDistances,
vtkTypeBool, 0, 1);
268 vtkGetMacro(InteractiveAdjustSampleDistances,
vtkTypeBool);
269 vtkBooleanMacro(InteractiveAdjustSampleDistances,
vtkTypeBool);
282 vtkSetClampMacro(AutoAdjustSampleDistances,
vtkTypeBool, 0, 1);
283 vtkGetMacro(AutoAdjustSampleDistances,
vtkTypeBool);
284 vtkBooleanMacro(AutoAdjustSampleDistances,
vtkTypeBool);
295 vtkSetMacro(SampleDistance,
float);
296 vtkGetMacro(SampleDistance,
float);
306 vtkSetClampMacro(GlobalIlluminationReach,
float, 0.0f, 1.0f);
307 vtkGetMacro(GlobalIlluminationReach,
float);
317 vtkSetClampMacro(VolumetricScatteringBlending,
float, 0.0f, 2.0f);
318 vtkGetMacro(VolumetricScatteringBlending,
float);
350 void SetVectorMode(
int mode);
351 vtkGetMacro(VectorMode,
int);
353 vtkSetClampMacro(VectorComponent,
int, 0, 3);
354 vtkGetMacro(VectorComponent,
int);
361 vtkSetStringMacro(Transfer2DYAxisArray);
362 vtkGetStringMacro(Transfer2DYAxisArray);
487 float GlobalIlluminationReach = 0.0;
492 float VolumetricScatteringBlending = 0.0;
represents a volume (data & properties) in a rendered scene
#define VTK_RESLICE_NEAREST
Abstract class for a volume mapper.
int VectorComponent
VectorMode is a special rendering mode for 3-component vectors which makes use of GPURayCastMapper's ...
vtkDataSet * LastInput
Keep a cache of the last input to the mapper so that input data changes can be propagated to the resa...
#define VTK_RESLICE_CUBIC
abstract class to specify dataset behavior
int RayCastSupported
Initialization variables.
record modification and/or execution time
vtkTimeStamp SupportStatusCheckTime
Initialization variables.
Resamples an image to be larger or smaller.
int LowResGPUNecessary
Initialization variables.
vtkFixedPointVolumeRayCastMapper * RayCastMapper
The three potential mappers.
vtkTypeBool InteractiveAdjustSampleDistances
If the InteractiveAdjustSampleDistances flag is enabled, vtkSmartVolumeMapper interactively sets and ...
vtkGPUVolumeRayCastMapper * GPULowResMapper
The three potential mappers.
abstract specification for renderers
int RequestedRenderMode
The requested render mode is used to compute the current render mode.
vtkImageResample * GPUResampleFilter
This is the resample filter that may be used if we need to create a low resolution version of the vol...
float SampleDistance
The distance between sample points along the ray.
vtkIdType MaxMemoryInBytes
GPU mapper-specific memory ivars.
Mapper to render volumes defined as vtkMultiBlockDataSet.
int VectorMode
VectorMode is a special rendering mode for 3-component vectors which makes use of GPURayCastMapper's ...
vtkImageMagnitude * ImageMagnitude
This filter is used to compute the magnitude of 3-component data.
void Render(vtkRenderer *ren, vtkVolume *vol) override=0
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
window superclass for vtkRenderWindow
VectorModeType
VectorMode is a special rendering mode for 3-component vectors which makes use of GPURayCastMapper's ...
float FinalColorLevel
Window / level ivars.
char * Transfer2DYAxisArray
Define the array used for the Y axis of transfer 2D.
a simple class to control print indentation
double InteractiveUpdateRate
If the DesiredUpdateRate of the vtkRenderWindow causing the Render is at or above this value...
vtkTypeBool AutoAdjustSampleDistances
Set whether or not the sample distance should be automatically calculated within the internal volume ...
topologically and geometrically regular array of data
abstract superclass for arrays of numeric data
int CurrentRenderMode
The requested render mode is used to compute the current render mode.
represents the common properties for rendering a volume.
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
A fixed point mapper for volumes.
create a window for renderers to draw into
Removes link dependence on optional ospray module.
vtkTimeStamp MagnitudeUploadTime
VectorMode is a special rendering mode for 3-component vectors which makes use of GPURayCastMapper's ...
vtkGPUVolumeRayCastMapper * GPUMapper
The three potential mappers.
int InitializedBlendMode
We need to keep track of the blend mode we had when we initialized because we need to reinitialize (a...
int Initialized
Initialization variables.
int GPUSupported
Initialization variables.
static vtkAlgorithm * New()
vtkImageData * InputDataMagnitude
This filter is used to compute the magnitude of 3-component data.
float MaxMemoryFraction
GPU mapper-specific memory ivars.
int InterpolationMode
Used for downsampling.
Ray casting performed on the GPU.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float FinalColorWindow
Window / level ivars.
vtkDataSet * LastFilterInput
Keep a cache of the last input to the mapper so that input data changes can be propagated to the resa...