|  | OGRE
    1.12.13
    Object-Oriented Graphics Rendering Engine | 
This class defines the interface that must be implemented by shadow casters. More...
#include <OgreShadowCaster.h>
 Inheritance diagram for Ogre::ShadowCaster:
 Inheritance diagram for Ogre::ShadowCaster:| Public Types | |
| typedef std::vector< ShadowRenderable * > | ShadowRenderableList | 
| typedef VectorIterator< ShadowRenderableList > | ShadowRenderableListIterator | 
| Public Member Functions | |
| virtual | ~ShadowCaster () | 
| virtual bool | getCastShadows (void) const =0 | 
| Returns whether or not this object currently casts a shadow.  More... | |
| virtual const AxisAlignedBox & | getDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const =0 | 
| Gets the world space bounding box of the dark cap, as extruded using the light provided.  More... | |
| virtual EdgeData * | getEdgeList (void)=0 | 
| Returns details of the edges which might be used to determine a silhouette.  More... | |
| virtual const AxisAlignedBox & | getLightCapBounds (void) const =0 | 
| Gets the world space bounding box of the light cap.  More... | |
| virtual Real | getPointExtrusionDistance (const Light *l) const =0 | 
| Get the distance to extrude for a point/spot light.  More... | |
| virtual ShadowRenderableListIterator | getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, size_t *indexBufferUsedSize, bool extrudeVertices, Real extrusionDistance, unsigned long flags=0) | 
| virtual const ShadowRenderableList & | getShadowVolumeRenderableList (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, size_t *indexBufferUsedSize, bool extrudeVertices, Real extrusionDistance, unsigned long flags=0) | 
| Gets an list of the renderables required to render the shadow volume.  More... | |
| virtual const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const =0 | 
| Get the world bounding box of the caster.  More... | |
| bool | hasEdgeList () | 
| Returns whether the object has a valid edge list.  More... | |
| Static Public Member Functions | |
| static void | clearShadowRenderableList (ShadowRenderableList &shadowRenderables) | 
| Common implementation of releasing shadow renderables.  More... | |
| static void | extrudeVertices (const HardwareVertexBufferSharedPtr &vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist) | 
| Utility method for extruding vertices based on a light.  More... | |
This class defines the interface that must be implemented by shadow casters.
| typedef std::vector<ShadowRenderable*> Ogre::ShadowCaster::ShadowRenderableList | 
| 
 | inlinevirtual | 
| 
 | pure virtual | 
Returns whether or not this object currently casts a shadow.
Implemented in Ogre::MovableObject.
| 
 | pure virtual | 
Returns details of the edges which might be used to determine a silhouette.
Implemented in Ogre::Entity, Ogre::ManualObject, Ogre::StaticGeometry::Region, and Ogre::MovableObject.
| 
 | inline | 
Returns whether the object has a valid edge list.
| 
 | pure virtual | 
Get the world bounding box of the caster.
Implemented in Ogre::Entity, Ogre::MovableObject, and Ogre::PortalBase.
| 
 | pure virtual | 
Gets the world space bounding box of the light cap.
Implemented in Ogre::MovableObject.
| 
 | pure virtual | 
Gets the world space bounding box of the dark cap, as extruded using the light provided.
Implemented in Ogre::MovableObject.
| 
 | inlinevirtual | 
Gets an list of the renderables required to render the shadow volume.
| shadowTechnique | The technique being used to generate the shadow. | 
| light | The light to generate the shadow from. | 
| indexBuffer | The index buffer to build the renderables into, the current contents are assumed to be disposable. | 
| indexBufferUsedSize | If the rest of buffer is enough than it would be locked with HBL_NO_OVERWRITE semantic and indexBufferUsedSize would be increased, otherwise HBL_DISCARD would be used and indexBufferUsedSize would be reset. | 
| extrudeVertices | If true, this means this class should extrude the vertices of the back of the volume in software. If false, it will not be done (a vertex program is assumed). | 
| extrusionDistance | The distance to extrude the shadow volume. | 
| flags | Technique-specific flags, see ShadowRenderableFlags. | 
Reimplemented in Ogre::Entity, Ogre::StaticGeometry::Region, Ogre::ManualObject, and Ogre::MovableObject.
| 
 | inlinevirtual | 
| 
 | static | 
Common implementation of releasing shadow renderables.
| 
 | static | 
Utility method for extruding vertices based on a light.
| vertexBuffer | The vertex buffer containing ONLY xyz position values, which must be originalVertexCount * 2 * 3 floats long. | 
| originalVertexCount | The count of the original number of vertices, i.e. the number in the mesh, not counting the doubling which has already been done (by VertexData::prepareForShadowVolume) to provide the extruded area of the buffer. | 
| lightPos | 4D light position in object space, when w=0.0f this represents a directional light. | 
| extrudeDist | The distance to extrude. | 
Get the distance to extrude for a point/spot light.
Implemented in Ogre::MovableObject.