openscenegraph
|
Public Types | |
typedef std::vector< Polytope > | HoleList |
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) |
NodePath & | getNodePath () |
const NodePath & | getNodePath () const |
float | getVolume () const |
Polytope & | getOccluder () |
const Polytope & | getOccluder () const |
HoleList & | getHoleList () |
const HoleList & | getHoleList () 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 |
ShadowVolumeOccluder is a helper class for implementing shadow occlusion culling.
typedef std::vector<Polytope> osg::ShadowVolumeOccluder::HoleList |
|
inline |
|
inline |
bool osg::ShadowVolumeOccluder::computeOccluder | ( | const NodePath & | nodePath, |
const ConvexPlanarOccluder & | occluder, | ||
CullStack & | cullStack, | ||
bool | createDrawables = false |
||
) |
compute the shadow volume occluder.
bool osg::ShadowVolumeOccluder::contains | ( | const std::vector< Vec3 > & | vertices | ) |
return true if the specified vertex list is contained entirely within this shadow occluder volume.
bool osg::ShadowVolumeOccluder::contains | ( | const BoundingSphere & | bound | ) |
return true if the specified bounding sphere is contained entirely within this shadow occluder volume.
bool osg::ShadowVolumeOccluder::contains | ( | const BoundingBox & | bound | ) |
return true if the specified bounding box is contained entirely within this shadow occluder volume.
|
inline |
References _holeList, _occluderVolume, and osg::Polytope::setResultMask().
|
inline |
return the list of holes.
|
inline |
return the const list of holes.
|
inline |
|
inline |
|
inline |
return the occluder polytope.
|
inline |
return the const occluder polytope.
|
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.
Referenced by operator<().
|
inline |
return true if the matrix passed in matches the projection matrix that this ShadowVolumeOccluder is associated with.
|
inline |
References getVolume().
|
inline |
References _holeList, _occluderVolume, and osg::Polytope::popCurrentMask().
|
inline |
References _holeList, _occluderVolume, and osg::Polytope::pushCurrentMask().
Set the NodePath which describes which node in the scene graph that this occluder is attached to.
|
inline |
|
protected |
Referenced by disableResultMasks(), popCurrentMask(), and pushCurrentMask().
|
protected |
|
protected |
Referenced by disableResultMasks(), popCurrentMask(), and pushCurrentMask().
|
protected |