30 #ifndef vtkGPUVolumeRayCastMapper_h 31 #define vtkGPUVolumeRayCastMapper_h 32 #include <unordered_map> 35 #include <vtkRenderingVolumeModule.h> 57 vtkSetClampMacro( AutoAdjustSampleDistances,
vtkTypeBool, 0, 1 );
58 vtkGetMacro( AutoAdjustSampleDistances,
vtkTypeBool );
59 vtkBooleanMacro( AutoAdjustSampleDistances,
vtkTypeBool );
68 vtkSetClampMacro( LockSampleDistanceToInputSpacing,
vtkTypeBool, 0, 1 );
69 vtkGetMacro( LockSampleDistanceToInputSpacing,
vtkTypeBool );
70 vtkBooleanMacro( LockSampleDistanceToInputSpacing,
vtkTypeBool );
79 vtkSetClampMacro( UseJittering,
vtkTypeBool, 0, 1 );
93 vtkSetClampMacro( UseDepthPass,
vtkTypeBool, 0, 1 );
112 vtkSetMacro( SampleDistance,
float );
113 vtkGetMacro( SampleDistance,
float );
124 vtkSetClampMacro( ImageSampleDistance,
float, 0.1f, 100.0f );
125 vtkGetMacro( ImageSampleDistance,
float );
133 vtkSetClampMacro( MinimumImageSampleDistance,
float, 0.1f, 100.0f );
134 vtkGetMacro( MinimumImageSampleDistance,
float );
142 vtkSetClampMacro( MaximumImageSampleDistance,
float, 0.1f, 100.0f );
143 vtkGetMacro( MaximumImageSampleDistance,
float );
161 vtkSetMacro( FinalColorWindow,
float );
162 vtkGetMacro( FinalColorWindow,
float );
163 vtkSetMacro( FinalColorLevel,
float );
164 vtkGetMacro( FinalColorLevel,
float );
173 vtkSetMacro( MaxMemoryInBytes,
vtkIdType );
174 vtkGetMacro( MaxMemoryInBytes,
vtkIdType );
183 vtkSetClampMacro( MaxMemoryFraction,
float, 0.1f, 1.0f );
184 vtkGetMacro( MaxMemoryFraction,
float );
196 vtkSetMacro(ReportProgress,
bool);
197 vtkGetMacro(ReportProgress,
bool);
216 double viewDirection[3],
245 enum { BinaryMaskType = 0, LabelMapMaskType };
252 vtkSetMacro( MaskType,
int );
253 vtkGetMacro( MaskType,
int );
254 void SetMaskTypeToBinary();
255 void SetMaskTypeToLabelMap();
267 vtkSetClampMacro(MaskBlendFactor,
float,0.0f,1.0f);
268 vtkGetMacro(MaskBlendFactor,
float);
297 vtkSetMacro(DepthImageScalarType,
int);
298 vtkGetMacro(DepthImageScalarType,
int);
299 void SetDepthImageScalarTypeToUnsignedChar();
300 void SetDepthImageScalarTypeToUnsignedShort();
301 void SetDepthImageScalarTypeToFloat();
318 vtkBooleanMacro(ClampDepthToBackface,
vtkTypeBool);
369 virtual void GetReductionRatio(
double ratio[3])=0;
394 vtkSetMacro(ColorRangeType,
int);
395 vtkGetMacro(ColorRangeType,
int);
396 vtkSetMacro(ScalarOpacityRangeType,
int);
397 vtkGetMacro(ScalarOpacityRangeType,
int);
398 vtkSetMacro(GradientOpacityRangeType,
int);
399 vtkGetMacro(GradientOpacityRangeType,
int);
428 double* GetBoundsFromPort(
const int port)
VTK_SIZEHINT(6);
455 void TransformInput(
const int port);
468 int ValidateInputs();
488 double datasetBounds[6],
489 double scalarRange[2],
490 int numberOfScalarComponents,
491 unsigned int numberOfLevels)=0;
496 unsigned int level)=0;
499 int numberOfScalarComponents)=0;
507 void SetCellFlag(
int cellFlag);
508 void RemovePortInternal(
const int port);
583 virtual void ClipCroppingRegionPlanes();
585 using DataMap = std::unordered_map<int, vtkImageData*>;
589 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
vtkImageData * GetInput() override
Set/Get the input data.
represents a volume (data & properties) in a rendered scene
std::unordered_map< int, vtkImageData * > DataMap
int GradientOpacityRangeType
Abstract class for a volume mapper.
vtkTypeBool LockSampleDistanceToInputSpacing
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
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
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
virtual vtkImageData * GetInput()
Set/Get the input data.
#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()
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.
virtual void RemoveInputConnection(int port, vtkAlgorithmOutput *input)
Remove a connection from the given input port index.