VAPOR3 3.9.4
VolumeCellTraversal.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace VAPoR {
6
31
33public:
36
37 static std::string GetName() { return "Curvilinear"; }
38 static Type GetType() { return Type::DVR; }
39 virtual bool RequiresChunkedRendering() { return true; }
40
41 virtual int LoadData(const Grid *grid);
42 virtual ShaderProgram *GetShader() const;
43 virtual void SetUniforms(const ShaderProgram *shader) const;
44 virtual float GuestimateFastModeSpeedupFactor() const;
45 virtual int CheckHardwareSupport(const Grid *grid) const;
46
47private:
48 Texture3D _coordTexture;
49 Texture2DArray _minTexture;
50 Texture2DArray _maxTexture;
51 Texture2D _BBLevelDimTexture;
52
53 int _coordDims[3];
54 int _BBLevels;
55 bool _useHighPrecisionTriangleRoutine;
56 bool _gridHasInvertedCoordinateSystemHandiness;
57
58 bool _needsHighPrecisionTriangleRoutine(const Grid *grid);
59 static bool _need32BitForCoordinates(const Grid *grid);
60
61protected:
63 virtual std::string _addDefinitionsToShader(std::string shaderName) const;
64};
65
76
78public:
80 static std::string GetName() { return "Iso Curvilinear"; }
81 static Type GetType() { return Type::Iso; }
82 virtual ShaderProgram *GetShader() const;
83 virtual void SetUniforms(const ShaderProgram *shader) const;
84};
85
86} // namespace VAPoR
Abstract base class for a 2D or 3D structured or unstructured grid.
Definition: Grid.h:56
Provides a C++ interface to the OpenGL shader program construct.
Definition: ShaderProgram.h:25
Curvilinear grid isosurface rendering algorithm.
VolumeCellTraversalIso(GLManager *gl, VolumeRenderer *renderer)
virtual ShaderProgram * GetShader() const
virtual void SetUniforms(const ShaderProgram *shader) const
Curvilinear grid rendering algorithm.
virtual bool RequiresChunkedRendering()
VolumeCellTraversal(GLManager *gl, VolumeRenderer *renderer)
int _getHeuristicBBLevels() const
static std::string GetName()
virtual float GuestimateFastModeSpeedupFactor() const
virtual int LoadData(const Grid *grid)
virtual void SetUniforms(const ShaderProgram *shader) const
virtual int CheckHardwareSupport(const Grid *grid) const
virtual std::string _addDefinitionsToShader(std::string shaderName) const
virtual ShaderProgram * GetShader() const
Regular grid rendering algorithm.
Definition: VolumeRegular.h:21
Contains references to context scope OpenGL data.
Definition: GLManager.h:18