VAPOR3 3.9.4
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
VAPoR::VolumeAlgorithm Class Referenceabstract

Strategy pattern for volume rendering algorithms. More...

#include <VolumeAlgorithm.h>

Inheritance diagram for VAPoR::VolumeAlgorithm:
VAPoR::NonCopyableMixin VAPoR::VolumeAlgorithmNull VAPoR::VolumeGLSL VAPoR::VolumeOSPRay VAPoR::VolumeRegular VAPoR::VolumeOSPRayIso VAPoR::VolumeCellTraversal VAPoR::VolumeRegularIso VAPoR::VolumeResampled VAPoR::VolumeTest VAPoR::VolumeTest2 VAPoR::VolumeCellTraversalIso

Public Types

enum class  Type { Any , DVR , Iso }
 

Public Member Functions

 VolumeAlgorithm (GLManager *gl, VolumeRenderer *renderer)
 
virtual ~VolumeAlgorithm ()
 
virtual void SaveDepthBuffer (bool fast)
 
virtual int Render (bool fast)=0
 
virtual int LoadData (const Grid *grid)=0
 
virtual int LoadSecondaryData (const Grid *grid)=0
 
virtual void DeleteSecondaryData ()=0
 
virtual void GetFinalBlendingMode (int *src, int *dst)=0
 
virtual bool RequiresChunkedRendering ()=0
 
virtual float GuestimateFastModeSpeedupFactor () const
 
virtual int CheckHardwareSupport (const Grid *grid) const
 

Static Public Member Functions

static VolumeAlgorithmNewAlgorithm (const std::string &name, GLManager *gl, VolumeRenderer *renderer)
 
static void Register (VolumeAlgorithmFactory *f)
 

Protected Member Functions

VolumeParamsGetParams () const
 
ViewpointParamsGetViewpointParams () const
 
AnnotationParamsGetAnnotationParams () const
 
TransformGetDatasetTransform () const
 
void GetExtents (glm::vec3 *dataMin, glm::vec3 *dataMax, glm::vec3 *userMin, glm::vec3 *userMax) const
 

Protected Attributes

GLManager_glManager
 

Detailed Description

Strategy pattern for volume rendering algorithms.

Author
Stanislaw Jaroszynski
Date
Feburary, 2019

Instances are created with a Factory pattern

Definition at line 30 of file VolumeAlgorithm.h.

Member Enumeration Documentation

◆ Type

enum class VAPoR::VolumeAlgorithm::Type
strong
Enumerator
Any 
DVR 
Iso 

Definition at line 32 of file VolumeAlgorithm.h.

Constructor & Destructor Documentation

◆ VolumeAlgorithm()

VAPoR::VolumeAlgorithm::VolumeAlgorithm ( GLManager gl,
VolumeRenderer renderer 
)

◆ ~VolumeAlgorithm()

virtual VAPoR::VolumeAlgorithm::~VolumeAlgorithm ( )
inlinevirtual

Definition at line 35 of file VolumeAlgorithm.h.

Member Function Documentation

◆ CheckHardwareSupport()

virtual int VAPoR::VolumeAlgorithm::CheckHardwareSupport ( const Grid grid) const
inlinevirtual

Reimplemented in VAPoR::VolumeCellTraversal, and VAPoR::VolumeRegular.

Definition at line 49 of file VolumeAlgorithm.h.

◆ DeleteSecondaryData()

virtual void VAPoR::VolumeAlgorithm::DeleteSecondaryData ( )
pure virtual

◆ GetAnnotationParams()

AnnotationParams * VAPoR::VolumeAlgorithm::GetAnnotationParams ( ) const
protected

◆ GetDatasetTransform()

Transform * VAPoR::VolumeAlgorithm::GetDatasetTransform ( ) const
protected

◆ GetExtents()

void VAPoR::VolumeAlgorithm::GetExtents ( glm::vec3 *  dataMin,
glm::vec3 *  dataMax,
glm::vec3 *  userMin,
glm::vec3 *  userMax 
) const
protected

◆ GetFinalBlendingMode()

virtual void VAPoR::VolumeAlgorithm::GetFinalBlendingMode ( int *  src,
int *  dst 
)
pure virtual

◆ GetParams()

VolumeParams * VAPoR::VolumeAlgorithm::GetParams ( ) const
protected

◆ GetViewpointParams()

ViewpointParams * VAPoR::VolumeAlgorithm::GetViewpointParams ( ) const
protected

◆ GuestimateFastModeSpeedupFactor()

virtual float VAPoR::VolumeAlgorithm::GuestimateFastModeSpeedupFactor ( ) const
inlinevirtual

Reimplemented in VAPoR::VolumeCellTraversal, and VAPoR::VolumeRegular.

Definition at line 48 of file VolumeAlgorithm.h.

◆ LoadData()

virtual int VAPoR::VolumeAlgorithm::LoadData ( const Grid grid)
pure virtual

◆ LoadSecondaryData()

virtual int VAPoR::VolumeAlgorithm::LoadSecondaryData ( const Grid grid)
pure virtual

◆ NewAlgorithm()

static VolumeAlgorithm * VAPoR::VolumeAlgorithm::NewAlgorithm ( const std::string &  name,
GLManager gl,
VolumeRenderer renderer 
)
static

◆ Register()

static void VAPoR::VolumeAlgorithm::Register ( VolumeAlgorithmFactory f)
static

◆ Render()

virtual int VAPoR::VolumeAlgorithm::Render ( bool  fast)
pure virtual

◆ RequiresChunkedRendering()

virtual bool VAPoR::VolumeAlgorithm::RequiresChunkedRendering ( )
pure virtual

On OSX, some shaders can run for a long time without problems while others will crash if the run too long. It seems to correlate with complexity. Chunked rendering splits the rendering into smaller tasks so they won't crash

Implemented in VAPoR::VolumeAlgorithmNull, VAPoR::VolumeCellTraversal, and VAPoR::VolumeRegular.

◆ SaveDepthBuffer()

virtual void VAPoR::VolumeAlgorithm::SaveDepthBuffer ( bool  fast)
inlinevirtual

Reimplemented in VAPoR::VolumeGLSL.

Definition at line 36 of file VolumeAlgorithm.h.

Member Data Documentation

◆ _glManager

GLManager* VAPoR::VolumeAlgorithm::_glManager
protected

Definition at line 56 of file VolumeAlgorithm.h.


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