openscenegraph
osgShadow::ShadowMap Class Reference

#include <ShadowMap>

Inheritance diagram for osgShadow::ShadowMap:
osgShadow::ShadowTechnique osg::Object osg::Referenced osgShadow::SoftShadowMap

Public Types

typedef std::vector< osg::ref_ptr< osg::Uniform > > UniformList
typedef std::vector< osg::ref_ptr< osg::Shader > > ShaderList
Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

Public Member Functions

 ShadowMap ()
 ShadowMap (const ShadowMap &es, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
 META_Object (osgShadow, ShadowMap)
void setTextureUnit (unsigned int unit)
unsigned int getTextureUnit () const
void setPolygonOffset (const osg::Vec2 &polyOffset)
const osg::Vec2 & getPolygonOffset () const
void setAmbientBias (const osg::Vec2 &ambientBias)
const osg::Vec2 & getAmbientBias () const
void setTextureSize (const osg::Vec2s &textureSize)
const osg::Vec2s & getTextureSize () const
void setLight (osg::Light *light)
void setLight (osg::LightSource *ls)
void addShader (osg::Shader *shader)
template<class T>
void addShader (const osg::ref_ptr< T > &shader)
void clearShaderList ()
virtual void init ()
virtual void update (osg::NodeVisitor &nv)
virtual void cull (osgUtil::CullVisitor &cv)
virtual void cleanSceneGraph ()
virtual void resizeGLObjectBuffers (unsigned int maxSize)
virtual void releaseGLObjects (osg::State *=0) const
osg::ref_ptr< osg::Camera > makeDebugHUD ()
Public Member Functions inherited from osgShadow::ShadowTechnique
 ShadowTechnique ()
 ShadowTechnique (const ShadowTechnique &es, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual bool isSameKindAs (const osg::Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
virtual void setShadowedScene (ShadowedScene *ss)
ShadowedScene * getShadowedScene ()
const ShadowedScene * getShadowedScene () const
virtual void traverse (osg::NodeVisitor &nv)
virtual void dirty ()
Public Member Functions inherited from osg::Object
 Object ()
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * cloneType () const =0
virtual Object * clone (const CopyOp &) const =0
std::string getCompoundClassName () const
virtual Node * asNode ()
virtual const Node * asNode () const
virtual NodeVisitor * asNodeVisitor ()
virtual const NodeVisitor * asNodeVisitor () const
virtual StateSet * asStateSet ()
virtual const StateSet * asStateSet () const
virtual StateAttribute * asStateAttribute ()
virtual const StateAttribute * asStateAttribute () const
virtual Uniform * asUniform ()
virtual const Uniform * asUniform () const
virtual Camera * asCamera ()
virtual const Camera * asCamera () const
virtual Drawable * asDrawable ()
virtual const Drawable * asDrawable () const
virtual Callback * asCallback ()
virtual const Callback * asCallback () const
virtual CallbackObject * asCallbackObject ()
virtual const CallbackObject * asCallbackObject () const
virtual UserDataContainer * asUserDataContainer ()
virtual const UserDataContainer * asUserDataContainer () const
virtual ValueObject * asValueObject ()
virtual const ValueObject * asValueObject () const
virtual Image * asImage ()
virtual const Image * asImage () const
virtual void setThreadSafeRefUnref (bool threadSafe)
virtual void setName (const std::string &name)
void setName (const char *name)
const std::string & getName () const
void setDataVariance (DataVariance dv)
DataVariance getDataVariance () const
virtual void computeDataVariance ()
void setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * getUserDataContainer ()
const osg::UserDataContainer * getUserDataContainer () const
osg::UserDataContainer * getOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
template<class T>
void setUserData (const ref_ptr< T > &ud)
virtual Referenced * getUserData ()
virtual const Referenced * getUserData () const
template<typename T>
bool getUserValue (const std::string &name, T &value) const
template<typename T>
void setUserValue (const std::string &name, const T &value)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referenced & operator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::Mutex * getRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSet * getObserverSet () const
ObserverSet * getOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Protected Member Functions

virtual ~ShadowMap (void)
virtual void createUniforms ()
virtual void createShaders ()
Protected Member Functions inherited from osgShadow::ShadowTechnique
osg::Vec3 computeOrthogonalVector (const osg::Vec3 &direction) const
virtual ~ShadowTechnique ()
Protected Member Functions inherited from osg::Object
virtual ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const

Protected Attributes

osg::ref_ptr< osg::Camera > _camera
osg::ref_ptr< osg::TexGen > _texgen
osg::ref_ptr< osg::Texture2D > _texture
osg::ref_ptr< osg::StateSet > _stateset
osg::ref_ptr< osg::Program > _program
osg::ref_ptr< osg::Light > _light
osg::ref_ptr< osg::LightSource > _ls
osg::ref_ptr< osg::Uniform > _ambientBiasUniform
UniformList _uniformList
ShaderList _shaderList
unsigned int _baseTextureUnit
unsigned int _shadowTextureUnit
osg::Vec2 _polyOffset
osg::Vec2 _ambientBias
osg::Vec2s _textureSize
Protected Attributes inherited from osgShadow::ShadowTechnique
ShadowedScene * _shadowedScene
bool _dirty
Protected Attributes inherited from osg::Object
std::string _name
DataVariance _dataVariance
osg::UserDataContainer * _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * getGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * getDeleteHandler ()

Detailed Description

ShadowedTexture provides an implementation of shadow textures.

Member Typedef Documentation

◆ ShaderList

◆ UniformList

Constructor & Destructor Documentation

◆ ShadowMap() [1/2]

osgShadow::ShadowMap::ShadowMap ( )

Referenced by META_Object(), and ShadowMap().

◆ ShadowMap() [2/2]

osgShadow::ShadowMap::ShadowMap ( const ShadowMap & es,
const osg::CopyOp & copyop = osg::CopyOp::SHALLOW_COPY )

◆ ~ShadowMap()

virtual osgShadow::ShadowMap::~ShadowMap ( void )
inlineprotectedvirtual

Member Function Documentation

◆ addShader() [1/2]

template<class T>
void osgShadow::ShadowMap::addShader ( const osg::ref_ptr< T > & shader)
inline

References addShader(), and osg::ref_ptr< T >::get().

Referenced by addShader().

◆ addShader() [2/2]

void osgShadow::ShadowMap::addShader ( osg::Shader * shader)
inline

Add a shader to internal list, will be used instead of the default ones

References _shaderList.

◆ cleanSceneGraph()

virtual void osgShadow::ShadowMap::cleanSceneGraph ( )
virtual

Clean scene graph from any shadow technique specific nodes, state and drawables.

Reimplemented from osgShadow::ShadowTechnique.

◆ clearShaderList()

void osgShadow::ShadowMap::clearShaderList ( )
inline

Reset internal shader list

References _shaderList.

◆ createShaders()

virtual void osgShadow::ShadowMap::createShaders ( )
protectedvirtual

Reimplemented in osgShadow::SoftShadowMap.

◆ createUniforms()

virtual void osgShadow::ShadowMap::createUniforms ( )
protectedvirtual

Create the managed Uniforms

Reimplemented in osgShadow::SoftShadowMap.

◆ cull()

virtual void osgShadow::ShadowMap::cull ( osgUtil::CullVisitor & cv)
virtual

run the cull traversal of the ShadowedScene and set up the rendering for this ShadowTechnique.

Reimplemented from osgShadow::ShadowTechnique.

◆ getAmbientBias()

const osg::Vec2 & osgShadow::ShadowMap::getAmbientBias ( ) const
inline

Get the values that are used for the ambient bias in the shader.

References _ambientBias.

◆ getPolygonOffset()

const osg::Vec2 & osgShadow::ShadowMap::getPolygonOffset ( ) const
inline

get the used polygon offset

References _polyOffset.

Referenced by osgShadow::SoftShadowMap::getBias().

◆ getTextureSize()

const osg::Vec2s & osgShadow::ShadowMap::getTextureSize ( ) const
inline

Get the values that are used for the ambient bias in the shader.

References _textureSize.

◆ getTextureUnit()

unsigned int osgShadow::ShadowMap::getTextureUnit ( ) const
inline

Get the texture unit that the shadow texture will be applied on.

References _shadowTextureUnit.

◆ init()

virtual void osgShadow::ShadowMap::init ( )
virtual

initialize the ShadowedScene and local cached data structures.

Reimplemented from osgShadow::ShadowTechnique.

◆ makeDebugHUD()

osg::ref_ptr< osg::Camera > osgShadow::ShadowMap::makeDebugHUD ( )

◆ META_Object()

osgShadow::ShadowMap::META_Object ( osgShadow ,
ShadowMap  )

References ShadowMap().

◆ releaseGLObjects()

virtual void osgShadow::ShadowMap::releaseGLObjects ( osg::State * = 0) const
virtual

If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. Otherwise, releases OpenGL objects for all graphics contexts.

Implements osgShadow::ShadowTechnique.

◆ resizeGLObjectBuffers()

virtual void osgShadow::ShadowMap::resizeGLObjectBuffers ( unsigned int maxSize)
virtual

Resize any per context GLObject buffers to specified size.

Implements osgShadow::ShadowTechnique.

◆ setAmbientBias()

void osgShadow::ShadowMap::setAmbientBias ( const osg::Vec2 & ambientBias)

Set the values for the ambient bias the shader will use.

◆ setLight() [1/2]

void osgShadow::ShadowMap::setLight ( osg::Light * light)

Set the Light that will cast shadows

◆ setLight() [2/2]

void osgShadow::ShadowMap::setLight ( osg::LightSource * ls)

◆ setPolygonOffset()

void osgShadow::ShadowMap::setPolygonOffset ( const osg::Vec2 & polyOffset)

set the polygon offset used initially

Referenced by osgShadow::SoftShadowMap::setBias().

◆ setTextureSize()

void osgShadow::ShadowMap::setTextureSize ( const osg::Vec2s & textureSize)

set the size in pixels x / y for the shadow texture.

◆ setTextureUnit()

void osgShadow::ShadowMap::setTextureUnit ( unsigned int unit)

Set the texture unit that the shadow texture will be applied on.

◆ update()

virtual void osgShadow::ShadowMap::update ( osg::NodeVisitor & nv)
virtual

run the update traversal of the ShadowedScene and update any loca chached data structures.

Reimplemented from osgShadow::ShadowTechnique.

Member Data Documentation

◆ _ambientBias

osg::Vec2 osgShadow::ShadowMap::_ambientBias
protected

Referenced by getAmbientBias().

◆ _ambientBiasUniform

osg::ref_ptr<osg::Uniform> osgShadow::ShadowMap::_ambientBiasUniform
protected

◆ _baseTextureUnit

unsigned int osgShadow::ShadowMap::_baseTextureUnit
protected

◆ _camera

osg::ref_ptr<osg::Camera> osgShadow::ShadowMap::_camera
protected

◆ _light

osg::ref_ptr<osg::Light> osgShadow::ShadowMap::_light
protected

◆ _ls

osg::ref_ptr<osg::LightSource> osgShadow::ShadowMap::_ls
protected

◆ _polyOffset

osg::Vec2 osgShadow::ShadowMap::_polyOffset
protected

Referenced by getPolygonOffset().

◆ _program

osg::ref_ptr<osg::Program> osgShadow::ShadowMap::_program
protected

◆ _shaderList

ShaderList osgShadow::ShadowMap::_shaderList
protected

Referenced by addShader(), and clearShaderList().

◆ _shadowTextureUnit

unsigned int osgShadow::ShadowMap::_shadowTextureUnit
protected

Referenced by getTextureUnit().

◆ _stateset

osg::ref_ptr<osg::StateSet> osgShadow::ShadowMap::_stateset
protected

◆ _texgen

osg::ref_ptr<osg::TexGen> osgShadow::ShadowMap::_texgen
protected

◆ _texture

osg::ref_ptr<osg::Texture2D> osgShadow::ShadowMap::_texture
protected

◆ _textureSize

osg::Vec2s osgShadow::ShadowMap::_textureSize
protected

Referenced by getTextureSize().

◆ _uniformList

UniformList osgShadow::ShadowMap::_uniformList
protected

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