Main Page   Hardware Class Hierarchy   Hardware API     Mapping Class Hierarchy  Mapping API 

Star Class Reference

Star : A generic pattern for search strategies--provides basic infracstructure for A*/D*/LPA* et al type searches. More...

#include <star.h>

Inheritance diagram for Star:

AStar DStar

Public Member Functions

 Star (OGrid *grid)
 Initializes with occupancy grid.

uint8 cost (int i, int j)
 return cost of location x,y

int cost (int x, int y, CELL_STATE ctype, node_chain *shadow_nodes=NULL)
void update_nodes (node_chain &changed_nodes)
Nodenode (uint8 x, uint8 y)
void InitStar (void)
void path_flag (motion_chain &path)
 Mark all segments in motion chain as within path.


Protected Member Functions

void GetChildren (Node *n, Node *child[EDGES+1])
void mark (int x, int y)
 Star (void)

Protected Attributes

Node _field [MAX_STAR_NODES]
OGrid_ogrid

Detailed Description

Star : A generic pattern for search strategies--provides basic infracstructure for A*/D*/LPA* et al type searches.

Currently used in both AStar and DStar (D* Lite) search algoriths.

:


Constructor & Destructor Documentation

Star OGrid grid  ) 
 

Initializes with occupancy grid.

Star void   )  [protected]
 


Member Function Documentation

int cost int  x,
int  y,
CELL_STATE  ctype,
node_chain shadow_nodes = NULL
 

set cost of node location x,y. incrementally updates all nodes whose cost has changed.

uint8 cost int  i,
int  j
 

return cost of location x,y

void GetChildren Node n,
Node child[EDGES+1]
[protected]
 

void InitStar void   ) 
 

cost has range 0..255; 0 is clear, and 255 is "absolute" obstacle (whatever that means). Can recommend areas not to take by setting cell to a value less than the MINIMUM_OBSTACLE value. Once the value exceeds MINIMUM_OBSTACLE, then the cell will not be evaluated in the A* algorithm.

void mark int  x,
int  y
[protected]
 

Node* node uint8  x,
uint8  y
 

Return Node at location x,y. (I forget why I needed this). Fills in a node with Terrain type specified.

void path_flag motion_chain path  ) 
 

Mark all segments in motion chain as within path.

void update_nodes node_chain changed_nodes  ) 
 

this is done this way because the node_chain is only so big, so this allows nodes to be updated incrementally.

Reimplemented in DStar.


Field Documentation

Node _field[MAX_STAR_NODES] [protected]
 

OGrid* _ogrid [protected]
 


Generated on Mon Oct 8 19:32:28 2007 for OOMRM Mapping API by doxygen1.3