34 #include "../base/assert.h" 35 #include "../base/vector.h" 41 template <
typename CELL_TYPE>
class Cell;
42 template <
typename EDGE_TYPE>
class VEdge;
43 template <
typename EDGE_TYPE>
class HEdge;
44 template <
typename POINT_TYPE>
class Point;
52 Layout(
int w,
int h) : width(w), height(h) { ; }
65 int GetX(
int id)
const {
return id % width; }
66 int GetY(
int id)
const {
return id / width; }
67 int GetID(
int x,
int y)
const {
return y*width + x; }
75 template <
typename STATE_TYPE>
82 StateSet(
int _w,
int _h) : width(_w), states(_w*_h) { ; }
91 STATE_TYPE
operator()(
int x,
int y) {
return states[y*width+x]; }
103 StateSet(
int _w,
int _h) : width(_w), states(_w*_h) { ; }
135 template <
typename CELL_TYPE=
int,
typename EDGE_TYPE=
void,
class POINT_TYPE=
void>
166 void SetCellValue(
int id, CELL_TYPE value) { cell_states[id] = value; }
172 template <
typename CELL_TYPE>
186 template <
typename EDGE_TYPE>
200 template <
typename EDGE_TYPE>
214 template <
typename POINT_TYPE>
StateSet(int _w, int _h)
Definition: grid.h:121
int GetTopID(int id) const
Definition: grid.h:69
int GetRightID(int id) const
Definition: grid.h:72
size_t size() const
Function to allow drop-in replacement with std::vector<bool>.
Definition: BitVector.h:765
int GetNumRegions() const
Definition: grid.h:59
STATE_TYPE operator[](int id)
Definition: grid.h:93
int GetWidth() const
Definition: grid.h:57
void SetPointValue(int id, POINT_TYPE value)
Definition: grid.h:169
int GetX(int id) const
Definition: grid.h:65
POINT_TYPE GetValue() const
Definition: grid.h:224
void SetValue(POINT_TYPE value)
Definition: grid.h:225
int GetID(int x, int y) const
Definition: grid.h:67
int GetLeftID(int id) const
Definition: grid.h:71
A drop-in replacement for std::vector<bool>, but with extra bitwise logic features.
Definition: BitVector.h:39
void SetValue(CELL_TYPE value)
Definition: grid.h:183
int GetHeight() const
Definition: grid.h:127
int GetHeight() const
Definition: grid.h:109
A drop-in replacement for std::vector<bool>, with additional bitwise logic features.
const emp::vector< int > & GetRegion(int id)
Definition: grid.h:60
void push_back(PB_Ts &&...args)
Definition: vector.h:189
VEdge(Board &b, int in_id)
Definition: grid.h:192
const Layout & GetLayout() const
Definition: grid.h:159
int GetSize() const
Definition: grid.h:89
StateSet(int _w, int _h)
Definition: grid.h:103
~Layout()
Definition: grid.h:54
size_t size() const
Definition: vector.h:151
EDGE_TYPE GetValue() const
Definition: grid.h:210
Point2D<> Point
Definition: Point2D.h:99
Layout(int w, int h)
Definition: grid.h:52
bool operator()(int id)
Definition: grid.h:113
Board(const Layout &in_layout)
Definition: grid.h:145
StateSet(int _w, int _h)
Definition: grid.h:82
EDGE_TYPE GetEdgeHValue(int id) const
Definition: grid.h:162
POINT_TYPE GetPointValue(int id) const
Definition: grid.h:164
Layout & operator=(const Layout &)=default
Point(Board &b, int in_id)
Definition: grid.h:220
~StateSet()
Definition: grid.h:105
int GetWidth() const
Definition: grid.h:108
int GetHeight() const
Definition: grid.h:58
void AddRegion(const emp::vector< int > &in_region)
Definition: grid.h:62
bool operator[](int id)
Definition: grid.h:114
StateSet(const StateSet &)
Definition: grid.h:122
void SetEdgeHValue(int id, EDGE_TYPE value)
Definition: grid.h:167
HEdge(Board &b, int in_id)
Definition: grid.h:206
EDGE_TYPE GetEdgeVValue(int id) const
Definition: grid.h:163
int GetSize() const
Definition: grid.h:128
void SetValue(EDGE_TYPE value)
Definition: grid.h:211
void operator()(int x, int y)
Definition: grid.h:130
bool operator()(int x, int y)
Definition: grid.h:112
void operator[](int id)
Definition: grid.h:132
If we are in emscripten, make sure to include the header.
Definition: array.h:37
Cell(Board &b, int in_id)
Definition: grid.h:178
void SetEdgeVValue(int id, EDGE_TYPE value)
Definition: grid.h:168
int GetWidth() const
Definition: grid.h:126
Build a debug wrapper emp::vector around std::vector.
Definition: vector.h:42
void SetCellValue(int id, CELL_TYPE value)
Definition: grid.h:166
int GetSize() const
Definition: grid.h:110
int GetY(int id) const
Definition: grid.h:66
EDGE_TYPE GetValue() const
Definition: grid.h:196
int GetBottomID(int id) const
Definition: grid.h:70
STATE_TYPE operator()(int x, int y)
Definition: grid.h:91
STATE_TYPE operator()(int id)
Definition: grid.h:92
StateSet & operator=(const StateSet &)
Definition: grid.h:124
~StateSet()
Definition: grid.h:123
CELL_TYPE GetCellValue(int id) const
Definition: grid.h:161
void SetValue(EDGE_TYPE value)
Definition: grid.h:197
int GetWidth() const
Definition: grid.h:87
void operator()(int id)
Definition: grid.h:131
int GetHeight() const
Definition: grid.h:88
~StateSet()
Definition: grid.h:84
CELL_TYPE GetValue() const
Definition: grid.h:182