| ## Public API Reference

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

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

# iShadowBlockList Struct Reference
[Lighting]

This is a list of shadow blocks. More...

`#include <iengine/shadows.h>`

Inheritance diagram for iShadowBlockList:

[legend]
List of all members.

## Public Member Functions
virtual void | DeleteAllShadows ()=0
| Destroy all shadow lists and shadows in the list.
virtual bool | FromCurrentRegion (iShadowBlock *block)=0
| Returns true if the shadow block belongs to the current region.
virtual iShadowBlock * | GetFirstShadowBlock ()=0
| Get first shadow block in the list.
virtual iShadowBlock * | GetLastShadowBlock ()=0
| Get last shadow block in the list.
virtual iShadowBlock * | GetNextShadowBlock (iShadowBlock *s)=0
| Get next shadow block.
virtual iShadowBlock * | GetPreviousShadowBlock (iShadowBlock *s)=0
| Get previous shadow block.
virtual iShadowIterator * | GetShadowIterator (const csBox3 &bbox, bool reverse=false)=0
| Get an iterator to iterate over all shadows in this list.
virtual iShadowIterator * | GetShadowIterator (bool reverse=false)=0
| Get an iterator to iterate over all shadows in this list.
virtual uint32 | MarkNewRegion ()=0
| Mark a new region of shadow blocks.
virtual iShadowBlock * | NewShadowBlock (int num_shadows=30)=0
| Create a new shadow block and append to the list.
virtual void | RemoveLastShadowBlock ()=0
| Remove the last shadow block from this list.
virtual void | RestoreRegion (uint32 prev)=0
| Restore a region (as parameter use the number returned by MarkNewRegion()).

## Detailed Description

This is a list of shadow blocks.

An iShadowReceiver will get such a list.

Definition at line 140 of file shadows.h.

## Member Function Documentation

virtual void iShadowBlockList::DeleteAllShadows | ( |  | ) | `[pure virtual]`

Destroy all shadow lists and shadows in the list.

virtual bool iShadowBlockList::FromCurrentRegion | ( | iShadowBlock * | block | ) | `[pure virtual]`

Returns true if the shadow block belongs to the current region.

virtual iShadowBlock* iShadowBlockList::GetFirstShadowBlock | ( |  | ) | `[pure virtual]`

Get first shadow block in the list.

virtual iShadowBlock* iShadowBlockList::GetLastShadowBlock | ( |  | ) | `[pure virtual]`

Get last shadow block in the list.

virtual iShadowBlock* iShadowBlockList::GetNextShadowBlock | ( | iShadowBlock * | s | ) | `[pure virtual]`

Get next shadow block.

virtual iShadowBlock* iShadowBlockList::GetPreviousShadowBlock | ( | iShadowBlock * | s | ) | `[pure virtual]`

Get previous shadow block.

virtual iShadowIterator* iShadowBlockList::GetShadowIterator | ( | const csBox3 & | bbox,
|  | bool | reverse = `false` |
| ) |  |  | `[pure virtual]`

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

This version will test the bounding boxes of all shadow blocks and only iterate over the shadow blocks that are potentially relevant (i.e. that potentially shadow the given bounding box).

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

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

virtual uint32 iShadowBlockList::MarkNewRegion | ( |  | ) | `[pure virtual]`

Mark a new region of shadow blocks.

This is usually called after entering a portal and it allows us to easily restore the shadow list upto the point of the last portal traversal. Returns the original region.

virtual iShadowBlock* iShadowBlockList::NewShadowBlock | ( | int | num_shadows = `30` | ) | `[pure virtual]`

Create a new shadow block and append to the list.

virtual void iShadowBlockList::RemoveLastShadowBlock | ( |  | ) | `[pure virtual]`

Remove the last shadow block from this list.

virtual void iShadowBlockList::RestoreRegion | ( | uint32 | prev | ) | `[pure virtual]`

Restore a region (as parameter use the number returned by MarkNewRegion()).

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

- iengine/shadows.h