OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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