ComputerGraphik TU WIEN
Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
SunVolumetric Class Reference

#include <sunVolumetric.hpp>

Inheritance diagram for SunVolumetric:
SceneObject

Classes

class  EffectObjectVolumetric
 
class  EffectObjectVolumetricPost
 

Public Member Functions

 SunVolumetric (const std::string &name, Scene *scene=0, Model *model=0, const glm::mat4 &modelMatrix=glm::mat4(1.0f))
 
virtual ~SunVolumetric ()
 
void firstPass ()
 
void draw () const
 
void reset ()
 
void postProcess ()
 
GLuint getFrameBufferTexture ()
 
glm::vec4 getScreenLightPos ()
 
- Public Member Functions inherited from SceneObject
 SceneObject (std::shared_ptr< SceneObject > &effectParent, const glm::mat4 &modelMatrix=glm::mat4(1))
 
 SceneObject (const std::string &name, Scene *scene=0, Model *model=0, const glm::mat4 &modelMatrix=glm::mat4(1))
 
virtual ~SceneObject ()
 
ModelgetModel () const
 
ShadergetShader () const
 
glm::mat4 getModelMatrix () const
 
glm::mat4 getGlobalModelMatrix () const
 
std::string getName () const
 
std::shared_ptr< SceneObjectgetParent () const
 
void setAnimationTime (double time)
 
bool setAnimation (const Animation &anim)
 
bool delChild (size_t idx)
 
bool getChild (size_t idx, std::shared_ptr< SceneObject > &child) const
 
bool addChild (std::shared_ptr< SceneObject > &child)
 
bool remEffect (const std::string &name)
 
SceneObjectgetEffect (const std::string &name) const
 
bool addEffect (const std::string &name, std::unique_ptr< SceneObject > &effect)
 
bool doNotRender ()
 
bool getIsVolSun ()
 
virtual bool animate (double time)
 
virtual void update (double deltaT)
 
virtual void setShader (Shader *val)
 

Private Member Functions

void setUpDepthTexture ()
 
void setUpColorTexture ()
 
void screenTest ()
 
void switchShader (Shader *newShader)
 

Private Attributes

bool isInScreen
 
int texWidth
 
int texHeight
 
GLuint frameBuffer
 
GLuint depthTexture
 
GLuint colorTexture
 
ModelquadModel
 
glm::vec4 ScreenLightPos
 

Friends

class EffectObjectVolumetric
 
class EffectObjectVolumetricPost
 

Additional Inherited Members

- Public Types inherited from SceneObject
typedef std::vector< std::pair< double, glm::mat4 > > Animation
 
- Protected Attributes inherited from SceneObject
GLuint vao
 
Scenescene
 
Modelmodel
 
Shadershader
 
glm::mat4 modelMatrix
 
std::string name
 
std::weak_ptr< SceneObjectparent
 
std::vector< std::shared_ptr< SceneObject > > childs
 
std::map< std::string, std::unique_ptr< SceneObject > > effectChilds
 
size_t animIDX
 
Animation animation
 
bool norender
 
bool isVolSun
 

Constructor & Destructor Documentation

SunVolumetric::SunVolumetric ( const std::string &  name,
Scene scene = 0,
Model model = 0,
const glm::mat4 &  modelMatrix = glm::mat4(1.0f) 
)
SunVolumetric::~SunVolumetric ( )
virtual

Member Function Documentation

void SunVolumetric::draw ( ) const
virtual

Reimplemented from SceneObject.

void SunVolumetric::firstPass ( )
GLuint SunVolumetric::getFrameBufferTexture ( )
inline
glm::vec4 SunVolumetric::getScreenLightPos ( )
inline
void SunVolumetric::postProcess ( )
void SunVolumetric::reset ( )
virtual

Reimplemented from SceneObject.

void SunVolumetric::screenTest ( )
private
void SunVolumetric::setUpColorTexture ( )
private
void SunVolumetric::setUpDepthTexture ( )
private
void SunVolumetric::switchShader ( Shader newShader)
private

Friends And Related Function Documentation

friend class EffectObjectVolumetric
friend
friend class EffectObjectVolumetricPost
friend

Member Data Documentation

GLuint SunVolumetric::colorTexture
private
GLuint SunVolumetric::depthTexture
private
GLuint SunVolumetric::frameBuffer
private
bool SunVolumetric::isInScreen
private
Model* SunVolumetric::quadModel
private
glm::vec4 SunVolumetric::ScreenLightPos
private
int SunVolumetric::texHeight
private
int SunVolumetric::texWidth
private

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