farmlands/src/model/Level.h

46 lines
872 B
C++

/*
* Level.h
*
* Created on: Nov 11, 2016
* Author: tibi
*/
#ifndef MODEL_LEVEL_H_
#define MODEL_LEVEL_H_
#include <cstdint>
#include <cstddef>
namespace farmlands {
namespace model {
typedef int16_t Cell;
class Level
{
public:
Level(size_t layerCount, size_t rowCount, size_t columnCount);
Level(const Level&) = delete;
Level& operator= (const Level&) = delete;
virtual ~Level();
inline size_t layerCount() const { return m_layers; }
inline size_t rowCount() const { return m_rows; }
inline size_t columnCount() const { return m_columns; }
Cell cell(size_t layer, size_t row, size_t col) const;
void setCell(size_t layer, size_t row, size_t col, Cell value);
private:
Cell* m_cells;
size_t m_layers;
size_t m_rows;
size_t m_columns;
};
} /* namespace model */
} /* namespace farmlands */
#endif /* MODEL_LEVEL_H_ */