Crystal Space: csCoverageTile Class Reference (Crystal Space Public API Reference)

| ## Public API Reference

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

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

# csCoverageTile Class Reference
[Geometry utilities]

Coverage tile. More...

`#include <csgeom/tcovbuf.h>`

List of all members.

## Public Member Functions
void | ClearOperations ()
| Clear all operations.
| csCoverageTile ()
csPtr< iString > | Debug_Dump ()
| Give a textual dump of this tile.
csPtr< iString > | Debug_Dump_Cache ()
| Give a textual dump of the coverage cache.
bool | Flush (csTileCol &fvalue, float maxdepth)
| Flush all operations in a tile given the fvalue from the previous tile and return the new fvalue (also in fvalue).
bool | FlushForEmpty (csTileCol &fvalue, float maxdepth)
| Version of Flush that handles the case where the tile is empty.
void | FlushForEmptyConstFValue (csTileCol &fvalue, float maxdepth)
| Version of Flush that handles the case where the tile is empty.
bool | FlushForEmptyNoDepth (csTileCol &fvalue)
| Version of Flush that handles the case where the tile is empty.
bool | FlushForFull (csTileCol &fvalue, float maxdepth)
| Version of Flush that handles the case where the tile is full.
void | FlushForFullConstFValue (csTileCol &fvalue, float maxdepth)
| Version of Flush that handles the case where the tile is full.
bool | FlushGeneral (csTileCol &fvalue, float maxdepth)
| General Flush (slowest version).
bool | FlushGeneralConstFValue (csTileCol &fvalue, float maxdepth)
| General Flush (slowest version).
bool | FlushIgnoreDepth (csTileCol &fvalue)
| Version of Flush that ignores depth.
bool | FlushNoDepth (csTileCol &fvalue)
| Version of Flush that handles the case where there is no depth checking.
bool | FlushNoDepthConstFValue (csTileCol &fvalue, float maxdepth)
| Version of Flush that handles the case where there is no depth checking.
void | FlushOperations ()
| Flush all operations in a tile and render them on the coverage_cache.
void | FlushOperationsOnlyFValue (csTileCol &fvalue)
| Flush all operations in a tile and only update the fvalue.
bool | IsEmpty () const
| Return true if tile is surely empty.
bool | IsFull () const
| Return true if tile is full.
void | MakeEmpty ()
| Really make the tile empty (as opposed to just marking it as empty with queue_tile_empty).
void | MakeEmptyQuick ()
| Faster version of MakeEmpty() that assumes that several of the fields will be correctly updated directly after calling this function.
void | MarkEmpty ()
| Mark the tile as empty but don't perform any other cleaning operations.
void | PerformOperations ()
| Perform all operations in a tile and render them on the coverage_cache.
void | PerformOperationsOnlyFValue (csTileCol &fvalue)
| Perform all operations in a tile and only update the fvalue.
void | PushFullVLine (int x)
| Add a full vertical line operation to the operations queue.
void | PushLine (int x1, int y1, int x2, int y2, int dx)
| Add a general line operation to the operations queue.
void | PushVLine (int x, int y1, int y2)
| Add a vertical line operation to the operations queue.
bool | TestCoverageFlush (csTileCol &fvalue, float mindepth, bool &do_depth_test)
| Perform a non-modifying flush and return true if Flush would have affected the coverage buffer.
bool | TestCoverageFlushForFull (csTileCol &fvalue, float mindepth, bool &do_depth_test)
| Version of TestFlush that handles the case where the tile is full.
bool | TestCoverageFlushGeneral (csTileCol &fvalue, float maxdepth, bool &do_depth_test)
| General TestFlush version (least efficient).
bool | TestCoverageRect (const csTileCol &vermask, int start, int end, float testdepth, bool &do_depth_test)
| Test if a given rectangle is visible.
bool | TestCoverageRect (int start, int end, float testdepth, bool &do_depth_test)
| Test if a given rectangle is visible.
bool | TestDepthFlush (csTileCol &fvalue, float mindepth)
| Perform a non-modifying flush and return true if Flush would have affected the coverage buffer.
bool | TestDepthFlushGeneral (csTileCol &fvalue, float maxdepth)
| General TestFlush version (least efficient).
bool | TestDepthRect (const csTileCol &vermask, int start, int end, float testdepth)
| Test if a given rectangle is visible.
bool | TestDepthRect (int start, int end, float testdepth)
| Test if a given rectangle is visible.
bool | TestFullRect (float testdepth)
| Test if a given rectangle with exactly the size of this tile (or bigger) is visible somewhere in this tile.
bool | TestPoint (int x, int y, float testdepth)
| Test if a given point is visible in this tile.
| ~csCoverageTile ()
## Friends
class | csTiledCoverageBuffer

## Detailed Description

Coverage tile.

One tile is 32x64 or 64x32 pixels. Every tile is made from 4x8 or 8x4 blocks (so one block is 8x8 pixels).

Definition at line 125 of file tcovbuf.h.

## Member Function Documentation

void csCoverageTile::ClearOperations | ( |  | ) | `[inline]`

Clear all operations.

Definition at line 243 of file tcovbuf.h.

csPtr<iString> csCoverageTile::Debug_Dump | ( |  | ) |

Give a textual dump of this tile.

csPtr<iString> csCoverageTile::Debug_Dump_Cache | ( |  | ) |

Give a textual dump of the coverage cache.

bool csCoverageTile::Flush | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

Flush all operations in a tile given the fvalue from the previous tile and return the new fvalue (also in fvalue).

This is the 1-bit implementation of Flush. A 3-bit implementation will come later. This function will correctly handle the case where the current tile is full. In that case only the fvalue will be updated. Returns true if the tile was modified.

bool csCoverageTile::FlushForEmpty | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

Version of Flush that handles the case where the tile is empty.

Returns true if the tile was modified.

void csCoverageTile::FlushForEmptyConstFValue | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

Version of Flush that handles the case where the tile is empty.

This version is for a constant fvalue for the entire tile.

bool csCoverageTile::FlushForEmptyNoDepth | ( | csTileCol & | fvalue | ) |

Version of Flush that handles the case where the tile is empty.

Returns true if the tile was modified. This version ignores depth.

bool csCoverageTile::FlushForFull | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

Version of Flush that handles the case where the tile is full.

Returns true if the tile was modified.

void csCoverageTile::FlushForFullConstFValue | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

Version of Flush that handles the case where the tile is full.

This version is for a constant fvalue for the entire tile.

bool csCoverageTile::FlushGeneral | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

General Flush (slowest version).

Returns true if the tile was modified.

bool csCoverageTile::FlushGeneralConstFValue | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

General Flush (slowest version).

This version is for a constant fvalue for the entire tile. Returns true if the tile was modified.

bool csCoverageTile::FlushIgnoreDepth | ( | csTileCol & | fvalue | ) |

Version of Flush that ignores depth.

bool csCoverageTile::FlushNoDepth | ( | csTileCol & | fvalue | ) |

Version of Flush that handles the case where there is no depth checking.

Returns true if the tile was modified.

bool csCoverageTile::FlushNoDepthConstFValue | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

Version of Flush that handles the case where there is no depth checking.

This version is for a constant fvalue for the entire tile. Returns true if the tile was modified.

void csCoverageTile::FlushOperations | ( |  | ) |

Flush all operations in a tile and render them on the coverage_cache.

This is the same as PerformOperations() except that the operations are also cleared.

void csCoverageTile::FlushOperationsOnlyFValue | ( | csTileCol & | fvalue | ) |

Flush all operations in a tile and only update the fvalue.

This version can be used if you know the tile is full. This is the same as PerformOperationsOnlyFValue() except that the operations are also cleared.

bool csCoverageTile::IsEmpty | ( |  | ) | const`[inline]`

Return true if tile is surely empty.

This can return false even if tile is empty. So don't 100% depend on this!

Definition at line 258 of file tcovbuf.h.

bool csCoverageTile::IsFull | ( |  | ) | const`[inline]`

Return true if tile is full.

Definition at line 251 of file tcovbuf.h.

void csCoverageTile::MakeEmpty | ( |  | ) | `[inline]`

Really make the tile empty (as opposed to just marking it as empty with queue_tile_empty).

Definition at line 216 of file tcovbuf.h.

References INIT_MIN_DEPTH.

void csCoverageTile::MakeEmptyQuick | ( |  | ) | `[inline]`

Faster version of MakeEmpty() that assumes that several of the fields will be correctly updated directly after calling this function.

Don't call this unless you know what you are doing!

Definition at line 231 of file tcovbuf.h.

References INIT_MIN_DEPTH.

void csCoverageTile::MarkEmpty | ( |  | ) | `[inline]`

Mark the tile as empty but don't perform any other cleaning operations.

MakeEmpty() will do that.

Definition at line 202 of file tcovbuf.h.

void csCoverageTile::PerformOperations | ( |  | ) |

Perform all operations in a tile and render them on the coverage_cache.

void csCoverageTile::PerformOperationsOnlyFValue | ( | csTileCol & | fvalue | ) |

Perform all operations in a tile and only update the fvalue.

This version can be used if you know the tile is full.

void csCoverageTile::PushFullVLine | ( | int | x | ) |

Add a full vertical line operation to the operations queue.

void csCoverageTile::PushLine | ( | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | dx |
| ) |  |  |

Add a general line operation to the operations queue.

void csCoverageTile::PushVLine | ( | int | x,
|  | int | y1,
|  | int | y2 |
| ) |  |  |

Add a vertical line operation to the operations queue.

bool csCoverageTile::TestCoverageFlush | ( | csTileCol & | fvalue,
|  | float | mindepth,
|  | bool & | do_depth_test |
| ) |  |  |

Perform a non-modifying flush and return true if Flush would have affected the coverage buffer.

bool csCoverageTile::TestCoverageFlushForFull | ( | csTileCol & | fvalue,
|  | float | mindepth,
|  | bool & | do_depth_test |
| ) |  |  |

Version of TestFlush that handles the case where the tile is full.

bool csCoverageTile::TestCoverageFlushGeneral | ( | csTileCol & | fvalue,
|  | float | maxdepth,
|  | bool & | do_depth_test |
| ) |  |  |

General TestFlush version (least efficient).

bool csCoverageTile::TestCoverageRect | ( | const csTileCol & | vermask,
|  | int | start,
|  | int | end,
|  | float | testdepth,
|  | bool & | do_depth_test |
| ) |  |  |

Test if a given rectangle is visible.

The rectangle is defined as the vertical mask from 'start' to 'end' horizontally (inclusive range).

bool csCoverageTile::TestCoverageRect | ( | int | start,
|  | int | end,
|  | float | testdepth,
|  | bool & | do_depth_test |
| ) |  |  |

Test if a given rectangle is visible.

The rectangle is defined as a set of full vertical columns from 'start' to 'end'.

bool csCoverageTile::TestDepthFlush | ( | csTileCol & | fvalue,
|  | float | mindepth |
| ) |  |  |

Perform a non-modifying flush and return true if Flush would have affected the coverage buffer.

bool csCoverageTile::TestDepthFlushGeneral | ( | csTileCol & | fvalue,
|  | float | maxdepth |
| ) |  |  |

General TestFlush version (least efficient).

bool csCoverageTile::TestDepthRect | ( | const csTileCol & | vermask,
|  | int | start,
|  | int | end,
|  | float | testdepth |
| ) |  |  |

Test if a given rectangle is visible.

The rectangle is defined as the vertical mask from 'start' to 'end' horizontally (inclusive range).

bool csCoverageTile::TestDepthRect | ( | int | start,
|  | int | end,
|  | float | testdepth |
| ) |  |  |

Test if a given rectangle is visible.

The rectangle is defined as a set of full vertical columns from 'start' to 'end'.

bool csCoverageTile::TestFullRect | ( | float | testdepth | ) |

Test if a given rectangle with exactly the size of this tile (or bigger) is visible somewhere in this tile.

If the tile is not full this is automatically the case. If the tile is full the given depth will be used. If the given depth is smaller or equal than the maximum depth in the depth buffer then rectangle is visible.

bool csCoverageTile::TestPoint | ( | int | x,
|  | int | y,
|  | float | testdepth |
| ) |  |  |

Test if a given point is visible in this tile.

Coordinates are given relative to top-left coordinate of this tile.

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

- csgeom/tcovbuf.h