 |
VTK
9.1.0
|
Go to the documentation of this file.
36 #ifndef vtkGPUVolumeRayCastMapper_h
37 #define vtkGPUVolumeRayCastMapper_h
38 #include <unordered_map>
41 #include "vtkRenderingVolumeModule.h"
62 vtkSetClampMacro(AutoAdjustSampleDistances,
vtkTypeBool, 0, 1);
73 vtkSetClampMacro(LockSampleDistanceToInputSpacing,
vtkTypeBool, 0, 1);
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);
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);
270 vtkSetClampMacro(MaskBlendFactor,
float, 0.0f, 1.0f);
271 vtkGetMacro(MaskBlendFactor,
float);
300 vtkSetMacro(DepthImageScalarType,
int);
301 vtkGetMacro(DepthImageScalarType,
int);
397 vtkSetMacro(ColorRangeType,
int);
398 vtkGetMacro(ColorRangeType,
int);
399 vtkSetMacro(ScalarOpacityRangeType,
int);
400 vtkGetMacro(ScalarOpacityRangeType,
int);
401 vtkSetMacro(GradientOpacityRangeType,
int);
402 vtkGetMacro(GradientOpacityRangeType,
int);
434 vtkSetStringMacro(Transfer2DYAxisArray);
435 vtkGetStringMacro(Transfer2DYAxisArray);
495 double scalarRange[2],
int numberOfScalarComponents,
unsigned int numberOfLevels) = 0;
586 using DataMap = std::unordered_map<int, vtkDataSet*>;
590 double ClippedCroppingRegionPlanes[6];
static vtkGPUVolumeRayCastMapper * New()
vtkTypeBool LockSampleDistanceToInputSpacing
int GeneratingCanonicalView
Abstract class for a volume mapper.
virtual void GetDepthImage(vtkImageData *)
Low level API to export the depth texture as vtkImageData in RenderToImage mode.
void SetTransformedInput(vtkDataSet *)
virtual void PreRender(vtkRenderer *ren, vtkVolume *vol, double datasetBounds[6], double scalarRange[2], int numberOfScalarComponents, unsigned int numberOfLevels)=0
vtkDataSet * GetInput(const int port) override
Set/Get the input data.
vtkDataSet * GetInput() override
Set/Get the input data.
void SetMaskInput(vtkImageData *mask)
Optionally, set a mask input.
void SetMaskTypeToBinary()
Set the mask type, if mask is to be used.
represents a volume (data & properties) in a rendered scene
int GradientOpacityRangeType
vtkTypeBool AutoAdjustSampleDistances
vtkDataSet * FindData(int port, DataMap &container)
void SetCellFlag(int cellFlag)
Called by the AMR Volume Mapper.
void SetDepthImageScalarTypeToUnsignedChar()
Set/Get the scalar type of the depth texture in RenderToImage mode.
int ValidateRender(vtkRenderer *, vtkVolume *)
This method is used by the Render() method to validate everything before attempting to render.
std::unordered_map< int, vtkDataSet * > DataMap
void CloneInput(vtkDataSet *input, const int port)
Shallow-copy the inputs into a transform-adjusted clone.
virtual void RenderBlock(vtkRenderer *ren, vtkVolume *vol, unsigned int level)=0
double * GetBoundsFromPort(const int port)
virtual void PostRender(vtkRenderer *ren, int numberOfScalarComponents)=0
float MaximumImageSampleDistance
int ScalarOpacityRangeType
vtkTypeBool ClampDepthToBackface
vtkGPUVolumeRayCastMapper()
float MinimumImageSampleDistance
vtkImageData * CanonicalViewImageData
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
void SetDepthImageScalarTypeToFloat()
Set/Get the scalar type of the depth texture in RenderToImage mode.
window superclass for vtkRenderWindow
int ValidateInputs()
This method is used by the Render() method to validate everything before attempting to render.
void Render(vtkRenderer *, vtkVolume *) override
Initialize rendering for this volume.
virtual void ClipCroppingRegionPlanes()
Compute the cropping planes clipped by the bounds of the volume.
int GetInputCount()
Number of currently active ports.
DataMap LastInputs
This is needed only to check if the input data has been changed since the last Render() call.
int ValidateInput(vtkVolumeProperty *property, const int port)
This method is used by the Render() method to validate everything before attempting to render.
#define VTK_SIZEHINT(...)
vtkTypeBool RenderToImage
void SetInputConnection(int port, vtkAlgorithmOutput *input) override
Add/Remove input connections.
helper object to manage setting and generating contour values
DataMap TransformedInputs
topologically and geometrically regular array of data
a simple class to control print indentation
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::vector< int > RemovedPorts
Ray casting performed on the GPU.
void SetDepthImageScalarTypeToUnsignedShort()
Set/Get the scalar type of the depth texture in RenderToImage mode.
float ImageSampleDistance
virtual void GetColorImage(vtkImageData *)
Low level API to export the color texture as vtkImageData in RenderToImage mode.
void SetInputConnection(vtkAlgorithmOutput *input) override
Add/Remove input connections.
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.
abstract class to specify dataset behavior
void CreateCanonicalView(vtkRenderer *ren, vtkVolume *volume, vtkImageData *image, int blend_mode, double viewDirection[3], double viewUp[3])
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
void CanonicalViewRender(vtkRenderer *, vtkVolume *)
void RemoveInputConnection(int port, int idx) override
Add/Remove input connections.
void RemovePortInternal(const int port)
~vtkGPUVolumeRayCastMapper() override
Proxy object to connect input/output ports.
abstract specification for renderers
virtual void GPURender(vtkRenderer *, vtkVolume *)
Handled in the subclass - the actual render method.
void SetMaskTypeToLabelMap()
Set the mask type, if mask is to be used.
char * Transfer2DYAxisArray
Define the array used for the Y axis of transfer 2D.
int FillInputPortInformation(int port, vtkInformation *info) override
Handle inputs.
void RemoveInputConnection(int port, vtkAlgorithmOutput *input) override
Add/Remove input connections.
create a window for renderers to draw into
void TransformInput(const int port)
A transformation is applied (translation) to the input.
void CloneInputs()
Shallow-copy the inputs into a transform-adjusted clone.
vtkContourValues * GetDepthPassContourValues()
Return handle to contour values container so that values can be set by the application.
vtkIdType MaxMemoryInBytes
vtkDataSet * GetTransformedInput(const int port=0)
vtkContourValues * DepthPassContourValues
represents the common properties for rendering a volume.
virtual void GetReductionRatio(double ratio[3])=0
Return how much the dataset has to be reduced in each dimension to fit on the GPU.