Cytopia  0.3
A city building simulation game
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MapGrid.inl.hxx
Go to the documentation of this file.
1 #include <algorithm>
2 
3 template <class T> MapGrid<T>::MapGrid(T node) : m_gridNodes{node} {}
4 
5 template <class T> MapGrid<T>::~MapGrid() { m_gridNodes.clear(); }
6 
7 template <class T> void MapGrid<T>::addNode(T node) { m_gridNodes.push_back(node); }
8 
9 template <class T> void MapGrid<T>::removeNode(Point coordinate)
10 {
11  m_gridNodes.erase(std::remove_if(m_gridNodes.begin(), m_gridNodes.end(),
12  [coordinate](const T &node) { return node.coordinate == coordinate; }),
13  m_gridNodes.end());
14 }
15 
16 template <class T> bool MapGrid<T>::isNeighbor(Point coordinate) const
17 {
18  return std::any_of(m_gridNodes.begin(), m_gridNodes.end(),
19  [coordinate](const T &node) { return node.coordinate.isDirectNeighborOf(coordinate); });
20 }
21 
22 template <class T> bool MapGrid<T>::isMemberOf(Point coordinate) const
23 {
24  return m_gridNodes.end() != std::find_if(m_gridNodes.begin(), m_gridNodes.end(),
25  [&coordinate](const T &node) { return node.coordinate == coordinate; });
26 }
MapGrid::addNode
virtual void addNode(T node)
Add a T node to this gridnode.
Definition: MapGrid.inl.hxx:7
MapGrid::isNeighbor
bool isNeighbor(Point coordinate) const
If this coordinate is a neighbor of one of the node in the grid.
Definition: MapGrid.inl.hxx:16
MapGrid::~MapGrid
virtual ~MapGrid()=0
Definition: MapGrid.inl.hxx:5
MapGrid::MapGrid
MapGrid(T node)
Definition: MapGrid.inl.hxx:3
MapGrid::isMemberOf
bool isMemberOf(Point coordinate) const
If this coordinate is part of the grid.
Definition: MapGrid.inl.hxx:22
MapGrid::removeNode
virtual void removeNode(Point coordinate)
Remove a node on a given coordinate from this gridnode.
Definition: MapGrid.inl.hxx:9
Point
Definition: Point.hxx:7