#include <OgreShadowCaster.h>
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. | |
virtual EdgeData * | getEdgeList (void)=0 |
Returns details of the edges which might be used to determine a silhouette. | |
virtual const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const=0 |
Get the world bounding box of the caster. | |
virtual const AxisAlignedBox & | getLightCapBounds (void) const=0 |
Gets the world space bounding box of the light cap. | |
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. | |
virtual ShadowRenderableListIterator | getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, bool extrudeVertices, Real extrusionDistance, unsigned long flags=0)=0 |
Gets an iterator over the renderables required to render the shadow volume. | |
virtual Real | getPointExtrusionDistance (const Light *l) const=0 |
Get the distance to extrude for a point/spot light. | |
Static Public Member Functions | |
void | extrudeVertices (HardwareVertexBufferSharedPtr vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist) |
Utility method for extruding vertices based on a light. | |
Protected Member Functions | |
Real | getExtrusionDistance (const Vector3 &objectPos, const Light *light) const |
Helper moethod for calculating extrusion distance. | |
virtual void | updateEdgeListLightFacing (EdgeData *edgeData, const Vector4 &lightPos) |
Tells the caster to perform the tasks necessary to update the edge data's light listing. | |
virtual void | generateShadowVolume (EdgeData *edgeData, HardwareIndexBufferSharedPtr indexBuffer, const Light *light, ShadowRenderableList &shadowRenderables, unsigned long flags) |
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it. | |
virtual void | extrudeBounds (AxisAlignedBox &box, const Vector4 &lightPos, Real extrudeDist) const |
Utility method for extruding a bounding box. |
Definition at line 104 of file OgreShadowCaster.h.
|
Definition at line 121 of file OgreShadowCaster.h. |
|
Definition at line 122 of file OgreShadowCaster.h. |
|
Definition at line 107 of file OgreShadowCaster.h. |
|
Utility method for extruding a bounding box.
|
|
Utility method for extruding vertices based on a light.
|
|
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.
|
|
Returns whether or not this object currently casts a shadow.
Implemented in Ogre::MovableObject. |
|
Gets the world space bounding box of the dark cap, as extruded using the light provided.
Implemented in Ogre::MovableObject. |
|
Returns details of the edges which might be used to determine a silhouette.
Implemented in Ogre::Entity, Ogre::ManualObject, Ogre::MovableObject, and Ogre::StaticGeometry::Region. |
|
Helper moethod for calculating extrusion distance.
|
|
Gets the world space bounding box of the light cap.
Implemented in Ogre::MovableObject. |
|
Get the distance to extrude for a point/spot light.
Implemented in Ogre::MovableObject. |
|
Gets an iterator over the renderables required to render the shadow volume.
Implemented in Ogre::Entity, Ogre::ManualObject, Ogre::MovableObject, and Ogre::StaticGeometry::Region. |
|
Get the world bounding box of the caster.
Implemented in Ogre::Entity, and Ogre::MovableObject. |
|
Tells the caster to perform the tasks necessary to update the edge data's light listing. Can be overridden if the subclass needs to do additional things.
|
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:44:07 2006