Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

csShadowBlock Class Reference

A single block of shadows. More...

#include <lview.h>

Inheritance diagram for csShadowBlock:

iShadowBlock iBase List of all members.

Public Methods

 csShadowBlock (iSector *sector, int draw_busy, int max_shadows=30, int delta=30)
 Create a new empty list for a sector.

 csShadowBlock (int max_shadows=30, int delta=30)
 Create a new empty list.

virtual ~csShadowBlock ()
 Destroy the list and release all shadow references.

virtual void DeleteShadows ()
 Dereference all shadows in the list.

void AddRelevantShadows (csShadowBlock *source, csTransform *trans=NULL)
 Copy all relevant shadow frustums from another shadow block into this block. More...

virtual void AddRelevantShadows (iShadowBlock *source, csTransform *trans=NULL)
 Copy all relevant shadow frustums from another shadow block into this block. More...

void AddRelevantShadows (csShadowBlockList *source)
 Copy all relevant shadow frustums from another shadow block list into this block. More...

virtual void AddRelevantShadows (iShadowBlockList *source)
 Copy all relevant shadow frustums from another shadow block list into this block. More...

void AddAllShadows (csShadowBlockList *source)
 Copy all shadow frustums from another shadow block list into this block. More...

virtual void AddAllShadows (iShadowBlockList *source)
 Copy all shadow frustums from another shadow block list into this block. More...

void AddUniqueRelevantShadows (csShadowBlockList *source)
 Add unique shadows. More...

virtual void AddUniqueRelevantShadows (iShadowBlockList *source)
 Add unique shadows. More...

virtual csFrustumAddShadow (const csVector3 &origin, void *userData, int num_verts, csPlane3 &backplane)
 Add a new frustum and return a reference. More...

virtual void UnlinkShadow (int idx)
 Unlink a shadow frustum from the list and dereference it.

virtual int GetShadowCount ()
 Get the number of shadows in this list.

csFrustumGetShadow (int idx)
 Get the specified shadow.

void Transform (csTransform *trans)
 Apply a transformation to all frustums in this list.

csShadowIteratorGetCsShadowIterator (bool reverse=false)
 Get iterator to iterate over all shadows in this block.

iShadowIteratorGetShadowIterator (bool reverse=false)
 Get iterator to iterate over all shadows in this block.

virtual iSectorGetSector ()
 Get Sector.

virtual int GetRecLevel ()
 Get draw_busy for sector.


Public Attributes

 SCF_DECLARE_IBASE

Friends

class  csShadowBlockList
class  csShadowIterator

Detailed Description

A single block of shadows.

This block will use IncRef()/DecRef() on the shadow frustums so that it is possible and legal to put a single shadow in several blocks.


Member Function Documentation

void csShadowBlock::AddAllShadows ( iShadowBlockList * source ) [virtual]
 

Copy all shadow frustums from another shadow block list into this block.

The frustums are not really copied but a new reference is kept.

Reimplemented from iShadowBlock.

void csShadowBlock::AddAllShadows ( csShadowBlockList * source )
 

Copy all shadow frustums from another shadow block list into this block.

The frustums are not really copied but a new reference is kept.

void csShadowBlock::AddRelevantShadows ( iShadowBlockList * source ) [virtual]
 

Copy all relevant shadow frustums from another shadow block list into this block.

The frustums are not really copied but a new reference is kept.

Reimplemented from iShadowBlock.

void csShadowBlock::AddRelevantShadows ( csShadowBlockList * source )
 

Copy all relevant shadow frustums from another shadow block list into this block.

The frustums are not really copied but a new reference is kept.

void csShadowBlock::AddRelevantShadows ( iShadowBlock * source,
csTransform * trans = NULL ) [virtual]
 

Copy all relevant shadow frustums from another shadow block into this block.

The frustums are not really copied but a new reference is kept. However, if a transformation is given then a copy is made and the shadows are transformed.

Reimplemented from iShadowBlock.

void csShadowBlock::AddRelevantShadows ( csShadowBlock * source,
csTransform * trans = NULL )
 

Copy all relevant shadow frustums from another shadow block into this block.

The frustums are not really copied but a new reference is kept. However, if a transformation is given then a copy is made and the shadows are transformed.

csFrustum * csShadowBlock::AddShadow ( const csVector3 & origin,
void * userData,
int num_verts,
csPlane3 & backplane ) [virtual]
 

Add a new frustum and return a reference.

The frustum will have the specified number of vertices but the vertices still need to be initialized.

Reimplemented from iShadowBlock.

void csShadowBlock::AddUniqueRelevantShadows ( iShadowBlockList * source ) [virtual]
 

Add unique shadows.

Only add relevant shadow frustums that are not already in the current list. The frustums are not really copied but a new reference is kept.

Reimplemented from iShadowBlock.

void csShadowBlock::AddUniqueRelevantShadows ( csShadowBlockList * source )
 

Add unique shadows.

Only add relevant shadow frustums that are not already in the current list. The frustums are not really copied but a new reference is kept.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000