Classes |
| struct | Edge |
Public Types |
| typedef std::vector< osg::Vec3 > | Vec3List |
| typedef std::vector< GLuint > | UIntList |
Public Member Functions |
| | OccluderGeometry () |
| | OccluderGeometry (const OccluderGeometry &oc, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) |
| virtual Object * | cloneType () const |
| virtual Object * | clone (const osg::CopyOp ©op) const |
| virtual bool | isSameKindAs (const osg::Object *obj) const |
| virtual const char * | libraryName () const |
| virtual const char * | className () const |
| void | computeOccluderGeometry (osg::Node *subgraph, osg::Matrix *matrix=0, float sampleRatio=1.0f) |
| void | computeOccluderGeometry (osg::Drawable *drawable, osg::Matrix *matrix=0, float sampleRatio=1.0f) |
| void | computeShadowVolumeGeometry (const osg::Vec4 &lightpos, ShadowVolumeGeometry &svg) const |
| void | setBoundingPolytope (const osg::Polytope &polytope) |
| osg::Polytope & | getBoundingPolytope () |
| const osg::Polytope & | getBoundingPolytope () const |
| virtual void | drawImplementation (osg::RenderInfo &renderInfo) const |
| virtual osg::BoundingBox | computeBound () const |
| void | processGeometry (osg::Drawable *drawable, osg::Matrix *matrix=0, float sampleRatio=1.0f) |
Protected Types |
| typedef std::vector< Edge > | EdgeList |
Protected Member Functions |
| virtual | ~OccluderGeometry () |
| bool | isLightPointSilhouetteEdge (const osg::Vec3 &lightpos, const Edge &edge) const |
| bool | isLightDirectionSilhouetteEdge (const osg::Vec3 &lightdirection, const Edge &edge) const |
| void | setUpInternalStructures () |
| void | removeDuplicateVertices () |
| void | removeNullTriangles () |
| void | computeNormals () |
| void | buildEdgeMaps () |
| void | computeLightDirectionSilhouetteEdges (const osg::Vec3 &lightdirection, UIntList &silhouetteIndices) const |
| void | computeLightPositionSilhouetteEdges (const osg::Vec3 &lightpos, UIntList &silhouetteIndices) const |
Protected Attributes |
| osg::Polytope | _boundingPolytope |
| Vec3List | _vertices |
| Vec3List | _normals |
| Vec3List | _triangleNormals |
| UIntList | _triangleIndices |
| EdgeList | _edges |
OccluderGeometry provides a sepecialised geometry representation of objects in scene that occlude light and therefore cast shadows. OccluderGeometry supports the computation of silhouette edges and shadow volume geometries, as well as use as geometry that one can rendering into a shadow map or end caps for the ZP+ algorithm. OccluderGeometry may be of the same resolution as an underlying geometry that it represents, or can be of lower resolution and combine manager seperate geometries together into a single shadow casting object. OccluderGeometry may be attached as UserData to Nodes or to Drawables.