openscenegraph
Public Types | Public Member Functions | Protected Attributes | List of all members
osg::ShadowVolumeOccluder Class Reference

#include <ShadowVolumeOccluder>

Public Types

typedef std::vector< PolytopeHoleList
 

Public Member Functions

 ShadowVolumeOccluder (const ShadowVolumeOccluder &svo)
 
 ShadowVolumeOccluder ()
 
bool operator< (const ShadowVolumeOccluder &svo) const
 
bool computeOccluder (const NodePath &nodePath, const ConvexPlanarOccluder &occluder, CullStack &cullStack, bool createDrawables=false)
 
void disableResultMasks ()
 
void pushCurrentMask ()
 
void popCurrentMask ()
 
bool matchProjectionMatrix (const osg::Matrix &matrix) const
 
void setNodePath (NodePath &nodePath)
 
NodePathgetNodePath ()
 
const NodePathgetNodePath () const
 
float getVolume () const
 
PolytopegetOccluder ()
 
const PolytopegetOccluder () const
 
HoleListgetHoleList ()
 
const HoleListgetHoleList () const
 
bool contains (const std::vector< Vec3 > &vertices)
 
bool contains (const BoundingSphere &bound)
 
bool contains (const BoundingBox &bound)
 
void transformProvidingInverse (const osg::Matrix &matrix)
 

Protected Attributes

float _volume
 
NodePath _nodePath
 
ref_ptr< const RefMatrix_projectionMatrix
 
Polytope _occluderVolume
 
HoleList _holeList
 

Detailed Description

ShadowVolumeOccluder is a helper class for implementing shadow occlusion culling.

Member Typedef Documentation

◆ HoleList

Constructor & Destructor Documentation

◆ ShadowVolumeOccluder() [1/2]

osg::ShadowVolumeOccluder::ShadowVolumeOccluder ( const ShadowVolumeOccluder svo)
inline

◆ ShadowVolumeOccluder() [2/2]

osg::ShadowVolumeOccluder::ShadowVolumeOccluder ( )
inline

Member Function Documentation

◆ computeOccluder()

bool osg::ShadowVolumeOccluder::computeOccluder ( const NodePath nodePath,
const ConvexPlanarOccluder occluder,
CullStack cullStack,
bool  createDrawables = false 
)

compute the shadow volume occluder.

◆ contains() [1/3]

bool osg::ShadowVolumeOccluder::contains ( const BoundingBox bound)

return true if the specified bounding box is contained entirely within this shadow occluder volume.

◆ contains() [2/3]

bool osg::ShadowVolumeOccluder::contains ( const BoundingSphere bound)

return true if the specified bounding sphere is contained entirely within this shadow occluder volume.

◆ contains() [3/3]

bool osg::ShadowVolumeOccluder::contains ( const std::vector< Vec3 > &  vertices)

return true if the specified vertex list is contained entirely within this shadow occluder volume.

◆ disableResultMasks()

void osg::ShadowVolumeOccluder::disableResultMasks ( )
inline

◆ getHoleList() [1/2]

HoleList & osg::ShadowVolumeOccluder::getHoleList ( )
inline

return the list of holes.

◆ getHoleList() [2/2]

const HoleList & osg::ShadowVolumeOccluder::getHoleList ( ) const
inline

return the const list of holes.

◆ getNodePath() [1/2]

NodePath & osg::ShadowVolumeOccluder::getNodePath ( )
inline

◆ getNodePath() [2/2]

const NodePath & osg::ShadowVolumeOccluder::getNodePath ( ) const
inline

◆ getOccluder() [1/2]

Polytope & osg::ShadowVolumeOccluder::getOccluder ( )
inline

return the occluder polytope.

◆ getOccluder() [2/2]

const Polytope & osg::ShadowVolumeOccluder::getOccluder ( ) const
inline

return the const occluder polytope.

◆ getVolume()

float osg::ShadowVolumeOccluder::getVolume ( ) const
inline

get the volume of the occluder minus its holes, in eye coords, the volume is normalized by dividing by the volume of the view frustum in eye coords.

◆ matchProjectionMatrix()

bool osg::ShadowVolumeOccluder::matchProjectionMatrix ( const osg::Matrix matrix) const
inline

return true if the matrix passed in matches the projection matrix that this ShadowVolumeOccluder is associated with.

◆ operator<()

bool osg::ShadowVolumeOccluder::operator< ( const ShadowVolumeOccluder svo) const
inline

◆ popCurrentMask()

void osg::ShadowVolumeOccluder::popCurrentMask ( )
inline

◆ pushCurrentMask()

void osg::ShadowVolumeOccluder::pushCurrentMask ( )
inline

◆ setNodePath()

void osg::ShadowVolumeOccluder::setNodePath ( NodePath nodePath)
inline

Set the NodePath which describes which node in the scene graph that this occluder is attached to.

◆ transformProvidingInverse()

void osg::ShadowVolumeOccluder::transformProvidingInverse ( const osg::Matrix matrix)
inline

Member Data Documentation

◆ _holeList

HoleList osg::ShadowVolumeOccluder::_holeList
protected

◆ _nodePath

NodePath osg::ShadowVolumeOccluder::_nodePath
protected

◆ _occluderVolume

Polytope osg::ShadowVolumeOccluder::_occluderVolume
protected

◆ _projectionMatrix

ref_ptr<const RefMatrix> osg::ShadowVolumeOccluder::_projectionMatrix
protected

◆ _volume

float osg::ShadowVolumeOccluder::_volume
protected

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