virtual path * GetPath(GraphAbstraction *aMap, node *from, node *to, reservationProvider *rp=0)
Returns the HPA* path between from and to.
A generic class for basic operations on Graph abstractions.
bool nextInLookup(int last, int curr, std::vector< node * > lookup)
find out whether last is the next 'real' index in the lookup table after curr.
path * nextPathNode(node *n, int dir)
shoot a ray in direction dir and see if you hit the path Return the better path if you find it; 0 if ...
Cluster abstraction for HPA* algorithm as described in (Botea,Mueller,Schaeffer 2004).
HPA* algorithm as described in (Botea,Mueller,Schaeffer 2004).
path * smoothPath(path *p)
from HPA* smoothwizard.cpp
node * getNextNode(int x, int y, int dir)
get the next node from map coordinates (x,y) in direction dir.
void setPartialPathLimit(int limit)
void setAbstraction(ClusterAbstraction *_m)
void setSmoothType(SmoothType s)
Set the smoothing type.
int backTwoNodes(int i, std::vector< node * > lookup)
Find the index of the node two nodes back in the path.
virtual const char * GetName()
path * findAbstractPath(node *from, node *to)
path * findMapPath(path *abPath, node *from, node *to)
void setSmoothing(bool smooth)
Set whether we want to do path smoothing.
void setUpSearch(node *from, node *to)
void cleanUpSearch()
Remove the start & goal nodes from the Graph.
A generic algorithm which can be used for pathfinding.
A linked list of nodes which form a continuous path.
std::vector< node * > lookup
int getPartialPathLimit()
Nodes to be stored within a Graph.