49 lines
887 B
C++
49 lines
887 B
C++
/*
|
|
* Level.cpp
|
|
*
|
|
* Created on: Nov 11, 2016
|
|
* Author: tibi
|
|
*/
|
|
|
|
#include "Level.h"
|
|
#include <cassert>
|
|
|
|
namespace farmlands {
|
|
namespace model {
|
|
|
|
Level::Level(size_t layerCount, size_t rowCount, size_t columnCount)
|
|
: m_cells(new Cell[layerCount * rowCount * columnCount]),
|
|
m_layers(layerCount),
|
|
m_rows(rowCount),
|
|
m_columns(columnCount)
|
|
{
|
|
}
|
|
|
|
Level::~Level()
|
|
{
|
|
delete[] m_cells;
|
|
}
|
|
|
|
|
|
Cell Level::cell(size_t layer, size_t row, size_t col) const
|
|
{
|
|
assert(layer < m_layers);
|
|
assert(row < m_rows);
|
|
assert(col < m_columns);
|
|
|
|
return m_cells[layer * m_rows * m_columns + row * m_columns + col];
|
|
}
|
|
|
|
void Level::setCell(size_t layer, size_t row, size_t col, Cell value)
|
|
{
|
|
assert(layer < m_layers);
|
|
assert(row < m_rows);
|
|
assert(col < m_columns);
|
|
|
|
m_cells[layer * m_rows * m_columns + row * m_columns + col] = value;
|
|
}
|
|
|
|
|
|
} /* namespace model */
|
|
} /* namespace farmlands */
|