24 #ifndef __PolyVox_AStarPathfinderImpl_H__
25 #define __PolyVox_AStarPathfinderImpl_H__
36 class OpenNodesContainer;
37 class ClosedNodesContainer;
38 class ThermiteGameLogic;
54 :
gVal(std::numeric_limits<
float>::quiet_NaN())
55 ,
hVal(std::numeric_limits<
float>::quiet_NaN())
104 bool operator() (
const AllNodesContainer::iterator& lhs,
const AllNodesContainer::iterator& rhs)
const
106 return (&(*lhs)) < (&(*rhs));
113 bool operator() (
const AllNodesContainer::iterator& lhs,
const AllNodesContainer::iterator& rhs)
const
115 return lhs->f() > rhs->f();
122 typedef std::vector<AllNodesContainer::iterator>::iterator
iterator;
135 void insert(AllNodesContainer::iterator node)
137 open.push_back(node);
138 push_heap(open.begin(), open.end(),
NodeSort());
148 pop_heap(open.begin(), open.end(),
NodeSort());
154 open.erase(iterToRemove);
155 make_heap(open.begin(), open.end(),
NodeSort());
170 std::vector<AllNodesContainer::iterator>::iterator openIter =
std::find(open.begin(), open.end(), node);
175 std::vector<AllNodesContainer::iterator> open;
181 typedef std::set<AllNodesContainer::iterator, AllNodesContainerIteratorComparator>::iterator
iterator;
189 void insert(AllNodesContainer::iterator node)
196 closed.erase(iterToRemove);
201 return closed.begin();
216 std::set<AllNodesContainer::iterator, AllNodesContainerIteratorComparator> closed;
223 #endif //__PolyVox_AStarPathfinderImpl_H__