#include <CSpace.hpp>
Inheritance diagram for estar::BaseCSpace:
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_t & | GetGraph () const |
const value_map_t & | GetValueMap () const |
const meta_map_t & | GetMetaMap () const |
const rhs_map_t & | GetRhsMap () const |
const flag_map_t & | GetFlagMap () const |
const vertexid_map_t & | GetVertexIdMap () 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_t & | GetGraph () |
value_map_t & | GetValueMap () |
meta_map_t & | GetMetaMap () |
rhs_map_t & | GetRhsMap () |
flag_map_t & | GetFlagMap () |
vertexid_map_t & | GetVertexIdMap () |
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 |
estar::BaseCSpace::BaseCSpace | ( | ) |
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 |
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 | |||
) |
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] |
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.
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.
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] |