Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes | Private Member Functions

# TileMatrix< T, N > Class Template Reference

A simple matrix that stores one value per N*N square of the map. More...

`#include <tilematrix_type.hpp>`

## Public Member Functions
const TileArea & | GetArea () const
| Get the total covered area.
void | Add (TileIndex tile)
| Extend the coverage area to include a tile.
T * | Get (TileIndex tile)
| Get the value associated to a tile index.
T & | operator[] (TileIndex tile)
| Array access operator, see Get.
## Static Public Member Functions
static TileArea | GetAreaForTile (TileIndex tile, uint extend=0)
| Get the area of the matrix square that contains a specific tile.
## Data Fields
TileArea | area
| Area covered by the matrix.
T * | data
| Pointer to data array.
## Static Public Attributes
static const uint | GRID = N
## Private Member Functions
void | AllocateStorage (TileIndex tile)
| Allocates space for a new tile in the matrix.

## Detailed Description

### template<typename T, uint N>
class TileMatrix< T, N >

A simple matrix that stores one value per N*N square of the map.

Storage is only allocated for the part of the map that has values assigned.

Note:
  No constructor is called for newly allocated values, you have to do this yourself if needed.

Template Parameters:

  | T | The type of the stored items.
  | N | Grid size.

Definition at line 29 of file tilematrix_type.hpp.

## Member Function Documentation

template<typename T, uint N>

void TileMatrix< T, N >::Add | ( | TileIndex | tile | ) | `[inline]`

Extend the coverage area to include a tile.

Parameters:

  | tile | The tile to include.

Definition at line 116 of file tilematrix_type.hpp.

Referenced by TileMatrix< uint32, 4 >::Get().

template<typename T, uint N>

void TileMatrix< T, N >::AllocateStorage | ( | TileIndex | tile | ) | `[inline, private]`

Allocates space for a new tile in the matrix.

Parameters:

  | tile | Tile to add.

Definition at line 34 of file tilematrix_type.hpp.

Referenced by TileMatrix< uint32, 4 >::Add().

template<typename T, uint N>

T* TileMatrix< T, N >::Get | ( | TileIndex | tile | ) | `[inline]`

Get the value associated to a tile index.

Parameters:

  | tile | The tile to get the value for.

Returns:
  Pointer to the value.

Definition at line 128 of file tilematrix_type.hpp.

Referenced by TileMatrix< uint32, 4 >::operator[]().

template<typename T, uint N>

const TileArea& TileMatrix< T, N >::GetArea | ( |  | ) | const`[inline]`

Get the total covered area.

Returns:
  The area covered by the matrix.

Definition at line 83 of file tilematrix_type.hpp.

Referenced by UpdateTownCargoes(), and UpdateTownCargoTotal().

template<typename T, uint N>

static TileArea TileMatrix< T, N >::GetAreaForTile | ( | TileIndex | tile,
|  | uint | extend = `0` |
| ) |  |  | `[inline, static]`

Get the area of the matrix square that contains a specific tile.

Parameters:

  | The | tile to get the map area for.
  | extend | Extend the area by this many squares on all sides.

Returns:
  Tile area containing the tile.

Definition at line 94 of file tilematrix_type.hpp.

template<typename T, uint N>

T& TileMatrix< T, N >::operator[] | ( | TileIndex | tile | ) | `[inline]`

Array access operator, see Get.

Definition at line 140 of file tilematrix_type.hpp.

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

- src/tilematrix_type.hpp