|
Public Types |
enum | Direction {
NORTH,
EAST,
SOUTH,
WEST,
NE,
SE,
SW,
NW
} |
enum | SmoothType { BEGIN,
END,
TWO_BACK
} |
Public Member Functions |
| craStar () |
virtual | ~craStar () |
virtual path * | getPath (graphAbstraction *aMap, node *from, node *to, reservationProvider *rp=0) |
virtual const char * | getName () |
void | setPartialPathLimit (int limit) |
int | getPartialPathLimit () |
void | setSmoothing (bool smooth) |
| Set whether the path will be smoothed or not.
|
void | setSmoothType (SmoothType s) |
| Set the smoothing type.Default is BEGIN.
|
void | setAbstractLevel (int level) |
| set the abstract level
|
Protected Member Functions |
void | setupSearch (graphAbstraction *aMap, std::vector< node * > &fromChain, node *from, std::vector< node * > &toChain, node *to) |
void | findGoalNode (graphAbstraction *aMap, node *n, std::vector< node * > &toChain) |
| GIven an abstract level parent node n, find a new goal that is a 0-level child of n as well as the parent chain linking them.
|
path * | buildNextAbstractPath (graphAbstraction *, path *lastPath, std::vector< node * > &fromChain, std::vector< node * > &toChain, reservationProvider *) |
path * | trimPath (path *lastPath, node *origDest) |
path * | buildAbstractPath (graphAbstraction *aMap, std::vector< node * > &fromChain, std::vector< node * > &toChain, reservationProvider *rp) |
| Build an abstract path for quick refinement.
|
path * | doRefinement (graphAbstraction *aMap, path *absPath, std::vector< node * > &fromChain, std::vector< node * > &toChain) |
| Do a quick refinement of an abstract path.
|
node * | getNextNode (graphAbstraction *aMap, node *currentLow, path *returnPath, path *apath, graph *g, int abstractLevel) |
| Find the next node of the refined path.
|
path * | smoothPath (graphAbstraction *m, path *p) |
| copied from hpaStar.cpp
|
path * | nextPathNode (graphAbstraction *m, 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 you hit a wall or obstacle (ie.
|
node * | getNextNode (mapAbstraction *m, int x, int y, int dir) |
| get the next node from map coordinates (x,y) in direction dir.
|
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.
|
int | backTwoNodes (int i, std::vector< node * > lookup) |
| Find the index of the node two nodes back in the path.
|
void | findMinMax (path *p) |
| Find the box that bounds the path for more efficient path smoothing.
|
Protected Attributes |
int | partialLimit |
bool | expandSearchRadius |
corridorAStar | cAStar |
char | algName [30] |
std::vector< node * > | lookup |
SmoothType | smType |
bool | smoothing |
int | absLevel |
int | minx |
int | maxx |
int | miny |
int | maxy |