estar::BaseCSpace Class Reference

#include <CSpace.hpp>

Inheritance diagram for estar::BaseCSpace:

Inheritance graph
[legend]
List of all members.

Detailed Description

Note:
You cannot add vertices to this base class, use one of the derived classes instead.

If you need no custom data to be stored, just use CSpace.


Public Member Functions

 BaseCSpace ()
vertex_read_iteration begin () const
 loop over all vertices
edge_read_iteration begin (vertex_t from) const
 loop over all neighbors of a vertex
double GetValue (vertex_t vertex) const
double GetMeta (vertex_t vertex) const
double GetRhs (vertex_t vertex) const
flag_t GetFlag (vertex_t vertex) const
const cspace_tGetGraph () const
const value_map_tGetValueMap () const
const meta_map_tGetMetaMap () const
const rhs_map_tGetRhsMap () const
const flag_map_tGetFlagMap () const
const vertexid_map_tGetVertexIdMap () const
void SetValue (vertex_t vertex, double value)
void SetMeta (vertex_t vertex, double meta)
void SetRhs (vertex_t vertex, double rhs)
void SetFlag (vertex_t vertex, flag_t flag)
cspace_tGetGraph ()
value_map_tGetValueMap ()
meta_map_tGetMetaMap ()
rhs_map_tGetRhsMap ()
flag_map_tGetFlagMap ()
vertexid_map_tGetVertexIdMap ()
void AddNeighbor (vertex_t from, vertex_t to)
 Create an edge between two nodes in the C-space graph, where edges are non-directional.

Protected Member Functions

vertex_t AddVertex (double value, double meta, double rhs, flag_t flag)
 Create a new node, initializes it, and adds it to the underlying C-space graph.

Protected Attributes

cspace_t m_cspace
value_map_t m_value
meta_map_t m_meta
rhs_map_t m_rhs
flag_map_t m_flag
vertexid_map_t m_vertexid


Constructor & Destructor Documentation

estar::BaseCSpace::BaseCSpace (  ) 


Member Function Documentation

vertex_read_iteration estar::BaseCSpace::begin (  )  const [inline]

loop over all vertices

edge_read_iteration estar::BaseCSpace::begin ( vertex_t  from  )  const [inline]

loop over all neighbors of a vertex

double estar::BaseCSpace::GetValue ( vertex_t  vertex  )  const

double estar::BaseCSpace::GetMeta ( vertex_t  vertex  )  const

double estar::BaseCSpace::GetRhs ( vertex_t  vertex  )  const

flag_t estar::BaseCSpace::GetFlag ( vertex_t  vertex  )  const

const cspace_t& estar::BaseCSpace::GetGraph (  )  const [inline]

const value_map_t& estar::BaseCSpace::GetValueMap (  )  const [inline]

const meta_map_t& estar::BaseCSpace::GetMetaMap (  )  const [inline]

const rhs_map_t& estar::BaseCSpace::GetRhsMap (  )  const [inline]

const flag_map_t& estar::BaseCSpace::GetFlagMap (  )  const [inline]

const vertexid_map_t& estar::BaseCSpace::GetVertexIdMap (  )  const [inline]

void estar::BaseCSpace::SetValue ( vertex_t  vertex,
double  value 
)

void estar::BaseCSpace::SetMeta ( vertex_t  vertex,
double  meta 
)

void estar::BaseCSpace::SetRhs ( vertex_t  vertex,
double  rhs 
)

void estar::BaseCSpace::SetFlag ( vertex_t  vertex,
flag_t  flag 
)

cspace_t& estar::BaseCSpace::GetGraph (  )  [inline]

value_map_t& estar::BaseCSpace::GetValueMap (  )  [inline]

meta_map_t& estar::BaseCSpace::GetMetaMap (  )  [inline]

rhs_map_t& estar::BaseCSpace::GetRhsMap (  )  [inline]

flag_map_t& estar::BaseCSpace::GetFlagMap (  )  [inline]

vertexid_map_t& estar::BaseCSpace::GetVertexIdMap (  )  [inline]

void estar::BaseCSpace::AddNeighbor ( vertex_t  from,
vertex_t  to 
)

Create an edge between two nodes in the C-space graph, where edges are non-directional.

See AddVertex() to create nodes in the first place. Use a Grid instance for creating grids, it's much more convenient.

vertex_t estar::BaseCSpace::AddVertex ( double  value,
double  meta,
double  rhs,
flag_t  flag 
) [protected]

Create a new node, initializes it, and adds it to the underlying C-space graph.

If you are creating a regular grid, save yourself the trouble and use a Grid instance.

Returns:
The vertex identifier that can be used to retrieve this node from the graph. You typically hold on to this at least until you've linked the node into the graph using AddNeighbor().
Parameters:
value  The initial value of the navigation function at this node. The default is infinity, as this makes the most sense prior to the very first propagation.
meta  The "meta" information attached to this node. The default is one, which means "freespace" for the LSMKernel. Other Kernel subclasses might need something else here. See also InitAllMeta() if you need a different initial value and SetMeta() for more information about why we use such a seemingly fuzzy concept.
rhs  The initial "right-hand-side" value (the one-step lookahead estimation of the optimal value). Recall that the Queue is sorted by ascending min(value, rhs), and that nodes stay on the queue as long as value != rhs. The default is infinity, because at first all nodes are consistently unreachable as we haven't set a goal yet.
flag  The initial flags of the node. As we have neither goal nor wavefront yet, it makes sense to use the default which is NONE.

Reimplemented in estar::CSpace.


Member Data Documentation

cspace_t estar::BaseCSpace::m_cspace [protected]

value_map_t estar::BaseCSpace::m_value [protected]

meta_map_t estar::BaseCSpace::m_meta [protected]

rhs_map_t estar::BaseCSpace::m_rhs [protected]

flag_map_t estar::BaseCSpace::m_flag [protected]

vertexid_map_t estar::BaseCSpace::m_vertexid [protected]


The documentation for this class was generated from the following files:
doxygen SourceForge.net Logo
E* Interpolated Graph Replanner Wed Dec 12 18:55:49 2007