VTK
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
vtkVolumeInputHelper Class Reference

Convenience container for internal structures specific to a volume input. More...

#include <vtkVolumeInputHelper.h>

Collaboration diagram for vtkVolumeInputHelper:
[legend]

Public Types

enum  ComponentMode { INVALID = 0, INDEPENDENT = 1, LA = 2, RGBA = 4 }
 Defines the various component modes supported by vtkGPUVolumeRayCastMapper. More...
 

Public Member Functions

 vtkVolumeInputHelper ()=default
 
 vtkVolumeInputHelper (vtkSmartPointer< vtkVolumeTexture > tex, vtkVolume *vol)
 
void RefreshTransferFunction (vtkRenderer *ren, const int uniformIndex, const int blendMode, const float samplingDist)
 
void ForceTransferInit ()
 
void ActivateTransferFunction (vtkShaderProgram *prog, const int blendMode)
 
void DeactivateTransferFunction (const int blendMode)
 
void ReleaseGraphicsResources (vtkWindow *window)
 

Public Attributes

vtkSmartPointer< vtkVolumeTextureTexture
 
vtkVolumeVolume = nullptr
 
int ComponentMode = INDEPENDENT
 
vtkSmartPointer< vtkOpenGLVolumeGradientOpacityTablesGradientOpacityTables
 Transfer function internal structures and helpers. More...
 
vtkSmartPointer< vtkOpenGLVolumeOpacityTablesOpacityTables
 
vtkSmartPointer< vtkOpenGLVolumeRGBTablesRGBTables
 
vtkSmartPointer< vtkOpenGLTransferFunctions2DTransferFunctions2D
 
std::map< int, std::string > RGBTablesMap
 Maps uniform texture variable names to its corresponding texture unit. More...
 
std::map< int, std::string > OpacityTablesMap
 
std::map< int, std::string > GradientOpacityTablesMap
 
std::map< int, std::string > TransferFunctions2DMap
 
int ColorRangeType = 0
 These values currently stored in vtkGPUVolumeRCMapper but should be moved into vtkVolumeProperty in order to store them closer to the relevant transfer functions and separately for each input. More...
 
int ScalarOpacityRangeType = 0
 
int GradientOpacityRangeType = 0
 
std::string GradientCacheName
 Stores the uniform variable name where the gradient will be stored for this input in the fragment shader. More...
 

Protected Member Functions

void InitializeTransferFunction (vtkRenderer *ren, const int index)
 
void CreateTransferFunction1D (vtkRenderer *ren, const int index)
 
void CreateTransferFunction2D (vtkRenderer *ren, const int index)
 
void UpdateTransferFunctions (vtkRenderer *ren, const int blendMode, const float samplingDist)
 
int UpdateOpacityTransferFunction (vtkRenderer *ren, vtkVolume *vol, unsigned int component, const int blendMode, const float samplingDist)
 
int UpdateColorTransferFunction (vtkRenderer *ren, vtkVolume *vol, unsigned int component)
 
int UpdateGradientOpacityTransferFunction (vtkRenderer *ren, vtkVolume *vol, unsigned int component, const float samplingDist)
 
void UpdateTransferFunction2D (vtkRenderer *ren, unsigned int component)
 
void ReleaseGraphicsTransfer1D (vtkWindow *window)
 
void ReleaseGraphicsTransfer2D (vtkWindow *window)
 

Protected Attributes

vtkTimeStamp LutInit
 
bool InitializeTransfer = true
 

Detailed Description

Convenience container for internal structures specific to a volume input.

This class stores together vtkVolumeTexture, Lookup tables internal and other input specific parameters. It also provides convenience methods to manage the lookup tables.

Warning
This is an internal class of vtkOpenGLGPUVolumeRayCastMapper. It assumes there is an active OpenGL context in methods involving GL calls (MakeCurrent() is expected to be called in the mapper beforehand).
See also
vtkOpenGLGPUVolumeRayCastMapper

Definition at line 49 of file vtkVolumeInputHelper.h.

Member Enumeration Documentation

Defines the various component modes supported by vtkGPUVolumeRayCastMapper.

Enumerator
INVALID 
INDEPENDENT 
LA 
RGBA 

Definition at line 71 of file vtkVolumeInputHelper.h.

Constructor & Destructor Documentation

vtkVolumeInputHelper::vtkVolumeInputHelper ( )
default
vtkVolumeInputHelper::vtkVolumeInputHelper ( vtkSmartPointer< vtkVolumeTexture tex,
vtkVolume vol 
)

Member Function Documentation

void vtkVolumeInputHelper::RefreshTransferFunction ( vtkRenderer ren,
const int  uniformIndex,
const int  blendMode,
const float  samplingDist 
)
void vtkVolumeInputHelper::ForceTransferInit ( )
void vtkVolumeInputHelper::ActivateTransferFunction ( vtkShaderProgram prog,
const int  blendMode 
)
void vtkVolumeInputHelper::DeactivateTransferFunction ( const int  blendMode)
void vtkVolumeInputHelper::ReleaseGraphicsResources ( vtkWindow window)
void vtkVolumeInputHelper::InitializeTransferFunction ( vtkRenderer ren,
const int  index 
)
protected
void vtkVolumeInputHelper::CreateTransferFunction1D ( vtkRenderer ren,
const int  index 
)
protected
void vtkVolumeInputHelper::CreateTransferFunction2D ( vtkRenderer ren,
const int  index 
)
protected
void vtkVolumeInputHelper::UpdateTransferFunctions ( vtkRenderer ren,
const int  blendMode,
const float  samplingDist 
)
protected
int vtkVolumeInputHelper::UpdateOpacityTransferFunction ( vtkRenderer ren,
vtkVolume vol,
unsigned int  component,
const int  blendMode,
const float  samplingDist 
)
protected
int vtkVolumeInputHelper::UpdateColorTransferFunction ( vtkRenderer ren,
vtkVolume vol,
unsigned int  component 
)
protected
int vtkVolumeInputHelper::UpdateGradientOpacityTransferFunction ( vtkRenderer ren,
vtkVolume vol,
unsigned int  component,
const float  samplingDist 
)
protected
void vtkVolumeInputHelper::UpdateTransferFunction2D ( vtkRenderer ren,
unsigned int  component 
)
protected
void vtkVolumeInputHelper::ReleaseGraphicsTransfer1D ( vtkWindow window)
protected
void vtkVolumeInputHelper::ReleaseGraphicsTransfer2D ( vtkWindow window)
protected

Member Data Documentation

vtkSmartPointer<vtkVolumeTexture> vtkVolumeInputHelper::Texture

Definition at line 64 of file vtkVolumeInputHelper.h.

vtkVolume* vtkVolumeInputHelper::Volume = nullptr

Definition at line 65 of file vtkVolumeInputHelper.h.

Definition at line 77 of file vtkVolumeInputHelper.h.

vtkSmartPointer<vtkOpenGLVolumeGradientOpacityTables> vtkVolumeInputHelper::GradientOpacityTables

Transfer function internal structures and helpers.

Definition at line 82 of file vtkVolumeInputHelper.h.

vtkSmartPointer<vtkOpenGLVolumeOpacityTables> vtkVolumeInputHelper::OpacityTables

Definition at line 83 of file vtkVolumeInputHelper.h.

vtkSmartPointer<vtkOpenGLVolumeRGBTables> vtkVolumeInputHelper::RGBTables

Definition at line 84 of file vtkVolumeInputHelper.h.

vtkSmartPointer<vtkOpenGLTransferFunctions2D> vtkVolumeInputHelper::TransferFunctions2D

Definition at line 85 of file vtkVolumeInputHelper.h.

std::map<int, std::string> vtkVolumeInputHelper::RGBTablesMap

Maps uniform texture variable names to its corresponding texture unit.

Definition at line 90 of file vtkVolumeInputHelper.h.

std::map<int, std::string> vtkVolumeInputHelper::OpacityTablesMap

Definition at line 91 of file vtkVolumeInputHelper.h.

std::map<int, std::string> vtkVolumeInputHelper::GradientOpacityTablesMap

Definition at line 92 of file vtkVolumeInputHelper.h.

std::map<int, std::string> vtkVolumeInputHelper::TransferFunctions2DMap

Definition at line 93 of file vtkVolumeInputHelper.h.

int vtkVolumeInputHelper::ColorRangeType = 0

These values currently stored in vtkGPUVolumeRCMapper but should be moved into vtkVolumeProperty in order to store them closer to the relevant transfer functions and separately for each input.

Definition at line 100 of file vtkVolumeInputHelper.h.

int vtkVolumeInputHelper::ScalarOpacityRangeType = 0

Definition at line 101 of file vtkVolumeInputHelper.h.

int vtkVolumeInputHelper::GradientOpacityRangeType = 0

Definition at line 102 of file vtkVolumeInputHelper.h.

std::string vtkVolumeInputHelper::GradientCacheName

Stores the uniform variable name where the gradient will be stored for this input in the fragment shader.

Definition at line 108 of file vtkVolumeInputHelper.h.

vtkTimeStamp vtkVolumeInputHelper::LutInit
protected

Definition at line 129 of file vtkVolumeInputHelper.h.

bool vtkVolumeInputHelper::InitializeTransfer = true
protected

Definition at line 130 of file vtkVolumeInputHelper.h.


The documentation for this class was generated from the following file: