28 #ifndef __ShadowCaster_H__ 29 #define __ShadowCaster_H__ 72 void getWorldTransforms(
Matrix4* xform)
const = 0;
122 virtual bool getCastShadows(
void)
const = 0;
125 virtual EdgeData* getEdgeList(
void) = 0;
127 virtual bool hasEdgeList(
void) = 0;
130 virtual const AxisAlignedBox& getWorldBoundingBox(
bool derive =
false)
const = 0;
160 virtual ShadowRenderableListIterator getShadowVolumeRenderableIterator(
163 bool extrudeVertices,
Real extrusionDistance,
unsigned long flags = 0 ) = 0;
189 size_t originalVertexCount,
const Vector4& lightPos,
Real extrudeDist);
191 virtual Real getPointExtrusionDistance(
const Light* l)
const = 0;
194 Real getExtrusionDistance(
const Vector3& objectPos,
const Light* light)
const;
203 virtual void updateEdgeListLightFacing(
EdgeData* edgeData,
228 virtual void generateShadowVolume(
EdgeData* edgeData,
230 const Light* light, ShadowRenderableList& shadowRenderables,
unsigned long flags);
241 Real extrudeDist)
const;
250 #endif // __ShadowCaster_H__ Class which represents the renderable aspects of a set of shadow volume faces.
virtual bool isVisible(void) const
Should this ShadowRenderable be treated as visible?
Concrete IteratorWrapper for nonconst access to the underlying container.
virtual ~ShadowRenderable()
Abstract class defining the interface all renderable objects must implement.
const MaterialPtr & getMaterial(void) const
Retrieves a weak reference to the material this renderable object uses.
VectorIterator< ShadowRenderableList > ShadowRenderableListIterator
Shared pointer implementation used to share index buffers.
For shadow volume techniques only, indicates volume is extruded to infinity.
vector< ShadowRenderable * >::type ShadowRenderableList
4-dimensional homogeneous vector.
void getRenderOperation(RenderOperation &op)
Gets the render operation required to send this object to the frame buffer.
float Real
Software floating point type.
void setMaterial(const MaterialPtr &mat)
Set the material to be used by the shadow, should be set by the caller before adding to a render queu...
ShadowTechnique
An enumeration of broad shadow techniques.
This class contains the information required to describe the edge connectivity of a given set of vert...
ShadowRenderableFlags
A set of flags that can be used to influence ShadowRenderable creation.
Class encapsulating a standard 4x4 homogeneous matrix.
Standard 3-dimensional vector.
Shared pointer implementation used to share vertex buffers.
ShadowRenderable * getLightCapRenderable(void)
Get the light cap version of this renderable.
This class defines the interface that must be implemented by shadow casters.
RenderOperation * getRenderOperationForUpdate(void)
Get the internal render operation for set up.
For shadow volume techniques only, generate a light cap on the volume.
bool isLightCapSeparate(void) const
Does this renderable require a separate light cap?
ShadowRenderable * mLightCap
A viewpoint from which the scene will be rendered.
For shadow volume techniques only, generate a dark cap on the volume.
This source file is part of OGRE (Object-oriented Graphics Rendering Engine) For the latest info...
Real getSquaredViewDepth(const Camera *) const
Returns the camera-relative squared depth of this renderable.
RenderOperation mRenderOp
'New' rendering operation using vertex buffers.
ShadowRenderable()
Used only if isLightCapSeparate == true.
A 3D box aligned with the x/y/z axes.
Representation of a dynamic light source in the scene.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...