36 #ifndef vtkGPUVolumeRayCastMapper_h
37 #define vtkGPUVolumeRayCastMapper_h
38 #include <unordered_map>
41 #include "vtkRenderingVolumeModule.h"
62 vtkSetClampMacro(AutoAdjustSampleDistances,
vtkTypeBool, 0, 1);
63 vtkGetMacro(AutoAdjustSampleDistances,
vtkTypeBool);
64 vtkBooleanMacro(AutoAdjustSampleDistances,
vtkTypeBool);
73 vtkSetClampMacro(LockSampleDistanceToInputSpacing,
vtkTypeBool, 0, 1);
74 vtkGetMacro(LockSampleDistanceToInputSpacing,
vtkTypeBool);
75 vtkBooleanMacro(LockSampleDistanceToInputSpacing,
vtkTypeBool);
117 vtkSetMacro(SampleDistance,
float);
118 vtkGetMacro(SampleDistance,
float);
129 vtkSetClampMacro(ImageSampleDistance,
float, 0.1f, 100.0f);
130 vtkGetMacro(ImageSampleDistance,
float);
138 vtkSetClampMacro(MinimumImageSampleDistance,
float, 0.1f, 100.0f);
139 vtkGetMacro(MinimumImageSampleDistance,
float);
147 vtkSetClampMacro(MaximumImageSampleDistance,
float, 0.1f, 100.0f);
148 vtkGetMacro(MaximumImageSampleDistance,
float);
165 vtkSetMacro(FinalColorWindow,
float);
166 vtkGetMacro(FinalColorWindow,
float);
167 vtkSetMacro(FinalColorLevel,
float);
168 vtkGetMacro(FinalColorLevel,
float);
177 vtkSetMacro(MaxMemoryInBytes,
vtkIdType);
178 vtkGetMacro(MaxMemoryInBytes,
vtkIdType);
187 vtkSetClampMacro(MaxMemoryFraction,
float, 0.1f, 1.0f);
188 vtkGetMacro(MaxMemoryFraction,
float);
200 vtkSetMacro(ReportProgress,
bool);
201 vtkGetMacro(ReportProgress,
bool);
217 double viewDirection[3],
double viewUp[3]);
255 vtkSetMacro(MaskType,
int);
256 vtkGetMacro(MaskType,
int);
257 void SetMaskTypeToBinary();
258 void SetMaskTypeToLabelMap();
270 vtkSetClampMacro(MaskBlendFactor,
float, 0.0f, 1.0f);
271 vtkGetMacro(MaskBlendFactor,
float);
282 vtkSetClampMacro(GlobalIlluminationReach,
float, 0.0f, 1.0f);
283 vtkGetMacro(GlobalIlluminationReach,
float);
298 vtkSetClampMacro(VolumetricScatteringBlending,
float, 0.0f, 2.0f);
299 vtkGetMacro(VolumetricScatteringBlending,
float);
328 vtkSetMacro(DepthImageScalarType,
int);
329 vtkGetMacro(DepthImageScalarType,
int);
330 void SetDepthImageScalarTypeToUnsignedChar();
331 void SetDepthImageScalarTypeToUnsignedShort();
332 void SetDepthImageScalarTypeToFloat();
349 vtkBooleanMacro(ClampDepthToBackface,
vtkTypeBool);
400 virtual void GetReductionRatio(
double ratio[3]) = 0;
425 vtkSetMacro(ColorRangeType,
int);
426 vtkGetMacro(ColorRangeType,
int);
427 vtkSetMacro(ScalarOpacityRangeType,
int);
428 vtkGetMacro(ScalarOpacityRangeType,
int);
429 vtkSetMacro(GradientOpacityRangeType,
int);
430 vtkGetMacro(GradientOpacityRangeType,
int);
462 vtkSetStringMacro(Transfer2DYAxisArray);
463 vtkGetStringMacro(Transfer2DYAxisArray);
491 void TransformInput(
const int port);
504 int ValidateInputs();
523 double scalarRange[2],
int numberOfScalarComponents,
unsigned int numberOfLevels) = 0;
528 virtual void PostRender(
vtkRenderer* ren,
int numberOfScalarComponents) = 0;
536 void SetCellFlag(
int cellFlag);
537 void RemovePortInternal(
const int port);
559 float GlobalIlluminationReach = 0.0;
561 float VolumetricScatteringBlending = 0.0;
617 virtual void ClipCroppingRegionPlanes();
619 using DataMap = std::unordered_map<int, vtkDataSet*>;
623 double ClippedCroppingRegionPlanes[6];
virtual void GPURender(vtkRenderer *, vtkVolume *)
Handled in the subclass - the actual render method.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
helper object to manage setting and generating contour values
represents a volume (data & properties) in a rendered scene
int GradientOpacityRangeType
Abstract class for a volume mapper.
vtkTypeBool LockSampleDistanceToInputSpacing
abstract class to specify dataset behavior
virtual void GetDepthImage(vtkImageData *)
Low level API to export the depth texture as vtkImageData in RenderToImage mode.
vtkTypeBool AutoAdjustSampleDistances
virtual void GetColorImage(vtkImageData *)
Low level API to export the color texture as vtkImageData in RenderToImage mode.
int ScalarOpacityRangeType
abstract specification for renderers
vtkIdType MaxMemoryInBytes
std::unordered_map< int, vtkDataSet * > DataMap
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...
Proxy object to connect input/output ports.
window superclass for vtkRenderWindow
virtual vtkDataSet * GetInput()
Set/Get the input data.
vtkTypeBool RenderToImage
a simple class to control print indentation
int FillInputPortInformation(int, vtkInformation *) override
Fill the input port information objects for this algorithm.
float ImageSampleDistance
topologically and geometrically regular array of data
float MaximumImageSampleDistance
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
vtkContourValues * DepthPassContourValues
#define VTK_SIZEHINT(...)
represents the common properties for rendering a volume.
DataMap TransformedInputs
virtual int IsRenderSupported(vtkRenderWindow *vtkNotUsed(window), vtkVolumeProperty *vtkNotUsed(property))
Based on hardware and properties, we may or may not be able to render using 3D texture mapping...
create a window for renderers to draw into
int GeneratingCanonicalView
vtkTypeBool ClampDepthToBackface
DataMap LastInputs
This is needed only to check if the input data has been changed since the last Render() call...
float MinimumImageSampleDistance
std::vector< int > RemovedPorts
static vtkAlgorithm * New()
char * Transfer2DYAxisArray
Define the array used for the Y axis of transfer 2D.
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.
vtkImageData * CanonicalViewImageData
void SetInputConnection(vtkAlgorithmOutput *input) override
Add/Remove input connections.
vtkDataSet * GetInput() override
Set/Get the input data.
virtual void RemoveInputConnection(int port, vtkAlgorithmOutput *input)
Remove a connection from the given input port index.