osg::ShadowVolumeOccluder Class Reference

`#include <ShadowVolumeOccluder>`

## 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

## Detailed Description

ShadowVolumeOccluder is a helper class for implementing shadow occlusion culling.

## Member Typedef Documentation

## HoleList

typedef std::vector<Polytope> osg::ShadowVolumeOccluder::HoleList

## Constructor & Destructor Documentation

## ShadowVolumeOccluder() [1/2]

osg::ShadowVolumeOccluder::ShadowVolumeOccluder | ( | const ShadowVolumeOccluder & | svo | ) |

inline

References _holeList, _nodePath, _occluderVolume, _projectionMatrix, _volume, and ShadowVolumeOccluder().

Referenced by operator<(), and ShadowVolumeOccluder().

## ShadowVolumeOccluder() [2/2]

osg::ShadowVolumeOccluder::ShadowVolumeOccluder | ( |  | ) |

inline

References _volume.

## Member Function Documentation

## computeOccluder()

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

compute the shadow volume occluder.

References disableResultMasks(), popCurrentMask(), and pushCurrentMask().

## 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

References _holeList, and _occluderVolume.

Referenced by computeOccluder().

## getHoleList() [1/2]

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

inline

return the list of holes.

References _holeList.

## getHoleList() [2/2]

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

inline

return the const list of holes.

References _holeList.

## getNodePath() [1/2]

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

inline

References _nodePath.

## getNodePath() [2/2]

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

inline

References _nodePath.

## getOccluder() [1/2]

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

inline

return the occluder polytope.

References _occluderVolume.

## getOccluder() [2/2]

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

inline

return the const occluder polytope.

References _occluderVolume.

## 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.

References _volume.

Referenced by operator<().

## 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.

References _projectionMatrix.

## operator<()

bool osg::ShadowVolumeOccluder::operator< | ( | const ShadowVolumeOccluder & | svo | ) | const

inline

References getVolume(), and ShadowVolumeOccluder().

## popCurrentMask()

void osg::ShadowVolumeOccluder::popCurrentMask | ( |  | ) |

inline

References _holeList, and _occluderVolume.

Referenced by computeOccluder().

## pushCurrentMask()

void osg::ShadowVolumeOccluder::pushCurrentMask | ( |  | ) |

inline

References _holeList, and _occluderVolume.

Referenced by computeOccluder().

## 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.

References _nodePath.

## transformProvidingInverse()

void osg::ShadowVolumeOccluder::transformProvidingInverse | ( | const osg::Matrix & | matrix | ) |

inline

References _holeList, and _occluderVolume.

## Member Data Documentation

## _holeList

HoleList osg::ShadowVolumeOccluder::_holeList

protected

Referenced by disableResultMasks(), getHoleList(), getHoleList(), popCurrentMask(), pushCurrentMask(), ShadowVolumeOccluder(), and transformProvidingInverse().

## _nodePath

NodePath osg::ShadowVolumeOccluder::_nodePath

protected

Referenced by getNodePath(), getNodePath(), setNodePath(), and ShadowVolumeOccluder().

## _occluderVolume

Polytope osg::ShadowVolumeOccluder::_occluderVolume

protected

Referenced by disableResultMasks(), getOccluder(), getOccluder(), popCurrentMask(), pushCurrentMask(), ShadowVolumeOccluder(), and transformProvidingInverse().

## _projectionMatrix

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

protected

Referenced by matchProjectionMatrix(), and ShadowVolumeOccluder().

## _volume

float osg::ShadowVolumeOccluder::_volume

protected

Referenced by getVolume(), ShadowVolumeOccluder(), and ShadowVolumeOccluder().

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

- ShadowVolumeOccluder