| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iShadowBlock Struct Reference
[Lighting]

A block of shadows represent the shadows that are casted by one iShadowCaster object. More...

`#include <iengine/shadows.h>`

Inheritance diagram for iShadowBlock:

[legend]
List of all members.

## Public Member Functions
virtual void | AddAllShadows (iShadowBlockList *source)=0
| Copy all shadow frustums from another shadow block list into this block.
virtual void | AddRelevantShadows (iShadowBlockList *source)=0
| Copy all relevant shadow frustums from another shadow block list into this block.
virtual void | AddRelevantShadows (iShadowBlock *source, csTransform *trans=0)=0
| Copy all relevant shadow frustums from another shadow block into this block.
virtual csFrustum * | AddShadow (const csVector3 &origin, void *userData, int num_verts, csPlane3 &backplane)=0
| Add a new frustum and return a reference.
virtual void | AddUniqueRelevantShadows (iShadowBlockList *source)=0
| Add unique shadows.
virtual void | DeleteShadows ()=0
| Dereference all shadows in the list.
virtual const csBox3 & | GetBoundingBox ()=0
| Get the bounding box of this shadow block.
virtual csFrustum * | GetShadow (int idx)=0
| Get the specified shadow.
virtual int | GetShadowCount ()=0
| Get the number of shadows in this list.
virtual iShadowIterator * | GetShadowIterator (bool reverse=false)=0
| Get an iterator to iterate over all shadows in this block.
virtual void | Transform (csTransform *trans)=0
| Apply a transformation to all frustums in this list.
virtual void | UnlinkShadow (int idx)=0
| Unlink a shadow frustum from the list and dereference it.

## Detailed Description

A block of shadows represent the shadows that are casted by one iShadowCaster object.

Definition at line 72 of file shadows.h.

## Member Function Documentation

virtual void iShadowBlock::AddAllShadows | ( | iShadowBlockList * | source | ) | `[pure 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.

virtual void iShadowBlock::AddRelevantShadows | ( | iShadowBlockList * | source | ) | `[pure 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.

virtual void iShadowBlock::AddRelevantShadows | ( | iShadowBlock * | source,
|  | csTransform * | trans = `0` |
| ) |  |  | `[pure 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.

virtual csFrustum* iShadowBlock::AddShadow | ( | const csVector3 & | origin,
|  | void * | userData,
|  | int | num_verts,
|  | csPlane3 & | backplane |
| ) |  |  | `[pure 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.

virtual void iShadowBlock::AddUniqueRelevantShadows | ( | iShadowBlockList * | source | ) | `[pure 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.

virtual void iShadowBlock::DeleteShadows | ( |  | ) | `[pure virtual]`

Dereference all shadows in the list.

virtual const csBox3& iShadowBlock::GetBoundingBox | ( |  | ) | `[pure virtual]`

Get the bounding box of this shadow block.

virtual csFrustum* iShadowBlock::GetShadow | ( | int | idx | ) | `[pure virtual]`

Get the specified shadow.

virtual int iShadowBlock::GetShadowCount | ( |  | ) | `[pure virtual]`

Get the number of shadows in this list.

virtual iShadowIterator* iShadowBlock::GetShadowIterator | ( | bool | reverse = `false` | ) | `[pure virtual]`

Get an iterator to iterate over all shadows in this block.

virtual void iShadowBlock::Transform | ( | csTransform * | trans | ) | `[pure virtual]`

Apply a transformation to all frustums in this list.

virtual void iShadowBlock::UnlinkShadow | ( | int | idx | ) | `[pure virtual]`

Unlink a shadow frustum from the list and dereference it.

The documentation for this struct was generated from the following file:

- iengine/shadows.h