OpenTTD
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 TileAreaGetArea () 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
TThe type of the stored items.
NGrid 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
tileThe 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)
inlineprivate

Allocates space for a new tile in the matrix.

Parameters
tileTile 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
tileThe 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 
)
inlinestatic

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

Parameters
Thetile to get the map area for.
extendExtend 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: