42 template <
typename T_MATRIX_LAYOUT,
typename T_TILE_LAYOUT>
class NeoTiles
45 NeoTiles(uint16_t topoWidth, uint16_t topoHeight,
46 uint16_t tilesWidth, uint16_t tilesHeight) :
47 _topo(topoWidth, topoHeight),
53 uint16_t
Map(int16_t x, int16_t y)
const
58 if (x >=
static_cast<int16_t
>(totalWidth))
67 if (y >=
static_cast<int16_t
>(totalHeight))
79 calculate(x, y, &localIndex, &tileOffset);
81 return localIndex + tileOffset;
89 if (x < 0 || x >= totalWidth || y < 0 || y >= totalHeight)
91 return totalWidth * totalHeight;
97 calculate(x, y, &localIndex, &tileOffset);
99 return localIndex + tileOffset;
107 if (x < 0 || x >=
static_cast<int16_t
>(totalWidth) ||
108 y < 0 || y >=
static_cast<int16_t
>(totalHeight))
117 calculate(x, y, &localIndex, &tileOffset);
147 const uint16_t _width;
148 const uint16_t _height;
150 void calculate(uint16_t x, uint16_t y, uint16_t* pLocalIndex, uint16_t* pTileOffset)
const
152 uint16_t tileX = x / _topo.
getWidth();
153 uint16_t topoX = x % _topo.
getWidth();
158 *pTileOffset = T_TILE_LAYOUT::Map(_width, _height, tileX, tileY) * _topo.
getWidth() * _topo.
getHeight();
159 *pLocalIndex = _topo.
Map(topoX, topoY);
NeoTopologyHint
Definition: NeoTopology.h:30
@ NeoTopologyHint_LastOnPanel
Definition: NeoTopology.h:33
@ NeoTopologyHint_OutOfBounds
Definition: NeoTopology.h:34
@ NeoTopologyHint_InPanel
Definition: NeoTopology.h:32
@ NeoTopologyHint_FirstOnPanel
Definition: NeoTopology.h:31
Definition: NeoTiles.h:43
NeoTopologyHint TopologyHint(int16_t x, int16_t y) const
Definition: NeoTiles.h:102
uint16_t getWidth() const
Definition: NeoTiles.h:135
NeoTiles(uint16_t topoWidth, uint16_t topoHeight, uint16_t tilesWidth, uint16_t tilesHeight)
Definition: NeoTiles.h:45
uint16_t getHeight() const
Definition: NeoTiles.h:140
uint16_t Map(int16_t x, int16_t y) const
Definition: NeoTiles.h:53
uint16_t MapProbe(int16_t x, int16_t y) const
Definition: NeoTiles.h:84
uint16_t Map(int16_t x, int16_t y) const
Definition: NeoTopology.h:55
uint16_t getWidth() const
Definition: NeoTopology.h:85
uint16_t getHeight() const
Definition: NeoTopology.h:90