version 3.3

VRS::ShadowTechniqueGL Class Reference

#include <vrs/opengl/shadowtechniquegl.h>

Inheritance diagram for VRS::ShadowTechniqueGL:

VRS::TechniqueGL VRS::Technique VRS::RenderObj VRS::SharedObj VRS::Visitable

List of all members.

Public Member Functions

 ShadowTechniqueGL ()
virtual bool canBeUsed (Engine *) const
virtual void start (Engine *)
virtual void stop (Engine *)
virtual void activatePass (int pass)
virtual bool usesPass (int pass) const
virtual bool preparePass (Engine *)
virtual void finishPass (Engine *)
virtual void nextPass (Engine *)
virtual bool prepareEval (Engine *, const Shape *)
virtual void finishEval (Engine *, const Shape *)
 VRS_TYPEINFO (ShadowTechniqueGL, TechniqueGL)
 VRS_SERIALIZABLE (ShadowTechniqueGL)

Static Public Member Functions

static void install (ShadowTechniqueTemplateGL *)
static bool uninstall (ShadowTechniqueTemplateGL *)
static Iterator< SO
< ShadowTechniqueTemplateGL > > * 
shadowTechniques ()
 Add/remove a shadow technique.


Constructor & Destructor Documentation

VRS::ShadowTechniqueGL::ShadowTechniqueGL (  ) 

Factory class for concreate shadow technique implementations. The shadow techniques, that must be derived from the ShadowTechniqueTemplateGL-class, must register themselves to this class. Then, in canBeUsed, the best matching technique is chosen for shadow computation. All technique- specific methods then are forwarded to the shadow technique.

The task of a ShadowTechniqueGL is to render a shadow on shapes with active shadowed attribute, caused by other shapes with active shadow casting attribute, regarding the position and intensity of the light source given in those shadow-related attributes. Hang an ShadowTechniqueGL-object in the scene graph if you want to have shadows.


Member Function Documentation

static void VRS::ShadowTechniqueGL::install ( ShadowTechniqueTemplateGL  )  [static]

static bool VRS::ShadowTechniqueGL::uninstall ( ShadowTechniqueTemplateGL  )  [static]

static Iterator<SO<ShadowTechniqueTemplateGL> >* VRS::ShadowTechniqueGL::shadowTechniques (  )  [static]

Add/remove a shadow technique.

virtual bool VRS::ShadowTechniqueGL::canBeUsed ( Engine  )  const [virtual]

Iterates through installed shadow techniques, looks whether a technique can be found that suits the hardware, sets the realShadowTechnique_ as shadow technique that is used for shadow evaluation (hopefully the best matching technique), and returns true when a suitable technique has been found.

canBeUsed must be only called if realShadowTechnique_ has not yet been started, or is already stopped, else an assertion will occur.

Reimplemented from VRS::Technique.

virtual void VRS::ShadowTechniqueGL::start ( Engine  )  [virtual]

forwarded to realShadowTechnique_

Reimplemented from VRS::Technique.

virtual void VRS::ShadowTechniqueGL::stop ( Engine  )  [virtual]

forwarded to realShadowTechnique_

Reimplemented from VRS::Technique.

virtual void VRS::ShadowTechniqueGL::activatePass ( int  pass  )  [virtual]

forwarded to realShadowTechnique_

Reimplemented from VRS::Technique.

virtual bool VRS::ShadowTechniqueGL::usesPass ( int  pass  )  const [virtual]

forwarded to realShadowTechnique_

Reimplemented from VRS::Technique.

virtual bool VRS::ShadowTechniqueGL::preparePass ( Engine  )  [virtual]

forwarded to realShadowTechnique_

Implements VRS::Technique.

virtual void VRS::ShadowTechniqueGL::finishPass ( Engine  )  [virtual]

forwarded to realShadowTechnique_

Implements VRS::Technique.

virtual void VRS::ShadowTechniqueGL::nextPass ( Engine  )  [virtual]

forwarded to realShadowTechnique_

Reimplemented from VRS::Technique.

virtual bool VRS::ShadowTechniqueGL::prepareEval ( Engine ,
const Shape  
) [virtual]

forwarded to realShadowTechnique_

Implements VRS::Technique.

virtual void VRS::ShadowTechniqueGL::finishEval ( Engine ,
const Shape  
) [virtual]

forwarded to realShadowTechnique_

Implements VRS::Technique.

VRS::ShadowTechniqueGL::VRS_TYPEINFO ( ShadowTechniqueGL  ,
TechniqueGL   
)

VRS::ShadowTechniqueGL::VRS_SERIALIZABLE ( ShadowTechniqueGL   ) 


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

Generated on Wed May 22 06:00:27 2013 by Doxygen 1.5.6
© 2001-2010 Hasso-Plattner-Institut | Impressum | Contact