Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

praStar2 Class Reference

The pra* search algorithm which does partial pathfinding using abstraction. More...

#include <praStar2.h>

Inheritance diagram for praStar2:

Inheritance graph
[legend]
Collaboration diagram for praStar2:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 praStar2 ()
virtual ~praStar2 ()
virtual path * getPath (graphAbstraction *aMap, node *from, node *to, reservationProvider *rp=0)
virtual const char * getName ()
void setPartialPathLimit (int limit)
int getPartialPathLimit ()
void setEnhancedAbstractPathing (bool enhance)
void setExpandSearchRadius (bool _expandSearchRadius)
 Set whether we want to expand the corridor to search in.

void setPlanFromMiddle (bool _planFromMiddle)
 Set whether we want to start planning in the middle between base and top level of abstraction.

void setFixedPlanLevel (int p)
 Set the level of abstraction to start pathfinding at.

void setSkipParameter (int _skip)
 Set how many abstraction layers should be skipped at each step.

int getTopLevel ()
int getNumLevelsUsed ()

Protected Member Functions

void setupSearch (graphAbstraction *aMap, std::vector< node * > &fromChain, node *from, std::vector< node * > &toChain, node *to)
path * buildNextAbstractPath (graphAbstraction *, path *lastPath, std::vector< node * > &fromChain, std::vector< node * > &toChain, reservationProvider *)
path * trimPath (path *lastPath, node *origDest)
void selectTopAbstractionLevel (graphAbstraction *aMap, std::vector< node * > &fromChain, std::vector< node * > &toChain)

Protected Attributes

int partialLimit
bool enhancedAbstractPathing
bool expandSearchRadius
corridorAStar cAStar
char algName [30]
bool planFromMiddle
int fixedPlanLevel
int skip
int topLevel
int numLevels

Detailed Description

The pra* search algorithm which does partial pathfinding using abstraction.


Constructor & Destructor Documentation

praStar2::praStar2 (   ) 
 

virtual praStar2::~praStar2 (   )  [inline, virtual]
 


Member Function Documentation

path * praStar2::buildNextAbstractPath (  graphAbstraction *  ,
path *  lastPath,
std::vector< node * > &  fromChain,
std::vector< node * > &  toChain,
reservationProvider * 
)  [protected]
 

virtual const char* praStar2::getName (   )  [inline, virtual]
 

Implements searchAlgorithm.

int praStar2::getNumLevelsUsed (   )  [inline]
 

int praStar2::getPartialPathLimit (   )  [inline]
 

path * praStar2::getPath (  graphAbstraction *  aMap,
node *  from,
node *  to,
reservationProvider *  rp = 0
)  [virtual]
 

Implements searchAlgorithm.

int praStar2::getTopLevel (   )  [inline]
 

void praStar2::selectTopAbstractionLevel (  graphAbstraction *  aMap,
std::vector< node * > &  fromChain,
std::vector< node * > &  toChain
)  [protected]
 

void praStar2::setEnhancedAbstractPathing (  bool  enhance  )  [inline]
 

void praStar2::setExpandSearchRadius (  bool  _expandSearchRadius  )  [inline]
 

Set whether we want to expand the corridor to search in.

Set whether we want to expand the corridor from just the parents along the path to these parents and their neighbors

void praStar2::setFixedPlanLevel (  int  p  )  [inline]
 

Set the level of abstraction to start pathfinding at.

Setting the fixed plan level to -1 will do dynamic level selection if setPlanFromMiddle is true, and it will start at the highest possible level if setPlanFromMiddle is false. Default is -1.

void praStar2::setPartialPathLimit (  int  limit  )  [inline]
 

void praStar2::setPlanFromMiddle (  bool  _planFromMiddle  )  [inline]
 

Set whether we want to start planning in the middle between base and top level of abstraction.

If true, sets the top level for pathfinding to be the level in the middle between the top level and the base level of abstraction. If false, top level for pathfinding is the topmost abstraction if fixedPlanLevel=-1, and the fixedPlanLevel otherwise.

void praStar2::setSkipParameter (  int  _skip  )  [inline]
 

Set how many abstraction layers should be skipped at each step.

A skip of -1 will only do pathfinding at the top level of abstraction and at the base level. A skip of 0 is the default, which will do pathfinding at each level.

void praStar2::setupSearch (  graphAbstraction *  aMap,
std::vector< node * > &  fromChain,
node *  from,
std::vector< node * > &  toChain,
node *  to
)  [protected]
 

path * praStar2::trimPath (  path *  lastPath,
node *  origDest
)  [protected]
 


Member Data Documentation

char praStar2::algName[30] [protected]
 

corridorAStar praStar2::cAStar [protected]
 

bool praStar2::enhancedAbstractPathing [protected]
 

bool praStar2::expandSearchRadius [protected]
 

int praStar2::fixedPlanLevel [protected]
 

int praStar2::numLevels [protected]
 

int praStar2::partialLimit [protected]
 

bool praStar2::planFromMiddle [protected]
 

int praStar2::skip [protected]
 

int praStar2::topLevel [protected]
 


The documentation for this class was generated from the following files:
Generated on Tue Aug 18 03:44:31 2009 for HOG by doxygen 1.3.4