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