Go to the documentation of this file.
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;
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,
241 Real extrudeDist)
const;
250 #endif // __ShadowCaster_H__
ShadowRenderable()
Used only if isLightCapSeparate == true.
For shadow volume techniques only, generate a dark cap on the volume.
For shadow volume techniques only, indicates volume is extruded to infinity.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
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...
Real getSquaredViewDepth(const Camera *) const
Returns the camera-relative squared depth of this renderable.
RenderOperation * getRenderOperationForUpdate(void)
Get the internal render operation for set up.
vector< ShadowRenderable * >::type ShadowRenderableList
A viewpoint from which the scene will be rendered.
For shadow volume techniques only, generate a light cap on the volume.
Class which represents the renderable aspects of a set of shadow volume faces.
This class defines the interface that must be implemented by shadow casters.
ShadowTechnique
An enumeration of broad shadow techniques.
Concrete IteratorWrapper for nonconst access to the underlying container.
Representation of a dynamic light source in the scene.
bool isLightCapSeparate(void) const
Does this renderable require a separate light cap?
Shared pointer implementation used to share index buffers.
VectorIterator< ShadowRenderableList > ShadowRenderableListIterator
virtual bool isVisible(void) const
Should this ShadowRenderable be treated as visible?
void getRenderOperation(RenderOperation &op)
Gets the render operation required to send this object to the frame buffer.
ShadowRenderableFlags
A set of flags that can be used to influence ShadowRenderable creation.
virtual ~ShadowRenderable()
Class encapsulating a standard 4x4 homogeneous matrix.
Shared pointer implementation used to share vertex buffers.
A 3D box aligned with the x/y/z axes.
const MaterialPtr & getMaterial(void) const
Retrieves a weak reference to the material this renderable object uses.
RenderOperation mRenderOp
ShadowRenderable * getLightCapRenderable(void)
Get the light cap version of this renderable.
4-dimensional homogeneous vector.
Abstract class defining the interface all renderable objects must implement.
float Real
Software floating point type.
This class contains the information required to describe the edge connectivity of a given set of vert...
ShadowRenderable * mLightCap
Standard 3-dimensional vector.
'New' rendering operation using vertex buffers.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.