Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages

StencilShadowGenerator Class Reference

#include <shadow.h>

Inheritance diagram for StencilShadowGenerator:

Inheritance graph
[legend]
Collaboration diagram for StencilShadowGenerator:

Collaboration graph
[legend]
List of all members.

Detailed Description

Shadow generator using stencil buffer Generates self-shadowing dynamic shadows using the stencil buffer (support for stencil buffer must be present in render device).

Author:
Mattias Jansson (mattias@realityrift.com)


Public Types

enum  FRAMECALLBACKTYPE { PERLIGHT = 0, FRAMEEND = 1, NUMCALLBACKS = 2 }
 Callback type identifiers. More...


Public Member Functions

 StencilShadowGenerator (float fShadowLength=100.0f)
virtual ~StencilShadowGenerator ()
virtual void GenerateShadow (VertexBufferPtr &pkVertexBuffer, PolygonBufferPtr &pkPolygonBuffer, BoundingVolume *pkBoundingVolume, const Matrix &rkTransform, const Matrix &rkInvTransform)
virtual void FrameEvent (FrameCallback::FRAMECALLBACKTYPE eType, void *pData)
bool IsActive () const
virtual void Activate ()
virtual void Deactivate ()
bool Toggle ()
virtual void FrameEvent (FRAMECALLBACKTYPE eType, void *pData)=0

Protected Attributes

std::vector< ShadowOp * > m_vpkOps
unsigned int m_uiNumUsedOps
float m_fShadowLength
Vertexm_pkVertices
Polygonm_pkPolygons
unsigned int m_uiMaxVertices
unsigned int m_uiMaxPolygons
MaterialPtr m_pkStencilMat
MaterialPtr m_pkFrameBufferMat
bool m_bActive


Member Enumeration Documentation

enum FRAMECALLBACKTYPE [inherited]
 

Callback type identifiers.

Enumeration values:
PERLIGHT  Per light
FRAMEEND  Frame end
NUMCALLBACKS  Number of callback types


Constructor & Destructor Documentation

StencilShadowGenerator float  fShadowLength = 100.0f  ) 
 

Check that device supports stencil shadows, if so register as frame listener

Parameters:
fShadowLength Length of shadow volume

virtual ~StencilShadowGenerator  )  [virtual]
 

Deregister as frame listener


Member Function Documentation

virtual void GenerateShadow VertexBufferPtr pkVertexBuffer,
PolygonBufferPtr &  pkPolygonBuffer,
BoundingVolume pkBoundingVolume,
const Matrix rkTransform,
const Matrix rkInvTransform
[virtual]
 

Generate shadow

Parameters:
pkVertexBuffer Vertex buffer for input geometry
pkPolygonBuffer Polygon buffer for input geometry
pkBoundingVolume Bounding volume for input geometry
rkTransform Transformation matrix
rkInvTransform Inverse transformation matrix

Implements ShadowGenerator.

virtual void FrameEvent FrameCallback::FRAMECALLBACKTYPE  eType,
void *  pData
[virtual]
 

Frame callback, render shadow volume

Parameters:
eType Callback type
pData Data pointer (type specific)

bool IsActive  )  const [inline, inherited]
 

Query state of object

Returns:
true if active, false if not

void Activate  )  [inline, virtual, inherited]
 

Activate object

void Deactivate  )  [inline, virtual, inherited]
 

Deactivate object

bool Toggle  )  [inline, inherited]
 

Toggle active state. This method does not need to be overloaded, it is only a wrapper to Activate and Deactivate

Returns:
true if activated, false if deactivated

virtual void FrameEvent FRAMECALLBACKTYPE  eType,
void *  pData
[pure virtual, inherited]
 

Frame callback method

Parameters:
eType Callback type
pData Data pointer (type specific)


Member Data Documentation

std::vector< ShadowOp* > m_vpkOps [protected]
 

Shadow primitive ops

unsigned int m_uiNumUsedOps [protected]
 

Number of used ops

float m_fShadowLength [protected]
 

Shadow length

Vertex* m_pkVertices [protected]
 

Temporary buffer for vertices

Polygon* m_pkPolygons [protected]
 

Temporary buffer for polygons

unsigned int m_uiMaxVertices [protected]
 

Number of maximum vertices in temporary buffer

unsigned int m_uiMaxPolygons [protected]
 

Number of maximum polygons in temporary buffer

MaterialPtr m_pkStencilMat [protected]
 

Material during stencil buffer rendering

MaterialPtr m_pkFrameBufferMat [protected]
 

Material during frame buffer rendering

bool m_bActive [protected, inherited]
 

Active flag


The documentation for this class was generated from the following file:
Generated on Wed Jan 21 14:21:15 2004 for NeoEngine by doxygen 1.3.5