Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 3875

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::graphs::CDijkstra Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1graphs.html">graphs</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html">CDijkstra</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::graphs::CDijkstra Class Reference<div class="ingroups"><a class="el" href="group__mrpt__graphs__grp.html">[mrpt-graphs]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::graphs::CDijkstra" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The Dijkstra algorithm for finding the shortest path between a given source node in a (weighted) directed graph and all other nodes in the form of a tree. </p>
<p>The constructor takes as input the graph (the set of directed edges) computes all the needed data, then successive calls to <em>getShortestPathTo</em> return the paths efficiently from the root. The entire generated tree can be also retrieved with <em>getTreeGraph</em>.</p>
<p>Input graphs are represented by instances of (or classes derived from) <a class="el" href="classmrpt_1_1graphs_1_1_c_directed_graph.html" title="A directed graph with the argument of the template specifying the type of the annotations in the edge...">mrpt::graphs::CDirectedGraph</a>, and node's IDs are uint64_t values, although the type <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7" title="The type for node IDs in graphs of different types.">mrpt::utils::TNodeID</a> is also provided for clarity in the code.</p>
<p>The second template argument MAPS_IMPLEMENTATION allows choosing between a sparse std::map&lt;&gt; representation (using <a class="el" href="structmrpt_1_1utils_1_1map__traits__stdmap.html" title="Traits for using a std::map&lt;&gt; (sparse representation)">mrpt::utils::map_traits_stdmap</a>) for several intermediary and final results, and an alternative (using <a class="el" href="structmrpt_1_1utils_1_1map__traits__map__as__vector.html" title="Traits for using a mrpt::utils::map_as_vector&lt;&gt; (dense, fastest representation)">mrpt::utils::map_traits_map_as_vector</a> as argument) dense implementation which is much faster, but can be only used if the TNodeID's start in 0 or a low value.</p>
<p>See <a href="http://www.mrpt.org/Example:Dijkstra_optimal_path_search_in_graphs">this page </a> for a complete example. </p>
</div>
<p><code>#include &lt;<a class="el" href="dijkstra_8h_source.html">mrpt/graphs/dijkstra.h</a>&gt;</code></p>

<p><a href="classmrpt_1_1graphs_1_1_c_dijkstra-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_distance.html">TDistance</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary struct for topological distances from root node.  <a href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_distance.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_previous.html">TPrevious</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary struct for backward paths.  <a href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_previous.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Useful typedefs</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef TYPE_GRAPH&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of the graph, typically a mrpt::graphs::CDirectedGraph&lt;&gt; or any other derived class.  <a href="#a2fd492f10b06ce86db21006d1e4776fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef graph_t::edge_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8c5b974cf6bcafbc9d71d3e0291c4fda">edge_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of edge data in graph_t.  <a href="#a8c5b974cf6bcafbc9d71d3e0291c4fda"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1list.html">std::list</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#aee71d7beb4d61406566af3847410d0e4">TPairNodeIDs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ac88e78f980cdc8a6052ac190c2013f05">edge_list_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of edges used to describe a path on the graph.  <a href="#ac88e78f980cdc8a6052ac190c2013f05"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a17f4737da51b1f3822fcf5ef78543a4c">CDijkstra</a> (const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a> &amp;graph, const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> source_node_ID, double(*functor_edge_weight)(const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a> &amp;graph, const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> id_from, const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> id_to, const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8c5b974cf6bcafbc9d71d3e0291c4fda">edge_t</a> &amp;edge)=NULL, void(*functor_on_progress)(const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a> &amp;graph, size_t visitedCount)=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, which takes the input graph and executes the entire Dijkstra algorithm from the given root node ID.  <a href="#a17f4737da51b1f3822fcf5ef78543a4c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
MAPS_IMPLEMENTATION::template <br class="typebreak"/>
<a class="el" href="classstd_1_1map.html">map</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>, <a class="el" href="classstd_1_1set.html">std::set</a><br class="typebreak"/>
&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9e7e94b5f4018e9c16bc570ce4d45428">list_all_neighbors_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classstd_1_1map.html" title="STL class.">std::map</a> (or a similar container according to MAPS_IMPLEMENTATION) with all the neighbors of every node.  <a href="#a9e7e94b5f4018e9c16bc570ce4d45428"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
MAPS_IMPLEMENTATION::template <br class="typebreak"/>
<a class="el" href="classstd_1_1map.html">map</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>, <a class="el" href="namespacemrpt_1_1utils.html#aee71d7beb4d61406566af3847410d0e4">TPairNodeIDs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a4a213405545ae6e0f3ed7190a1f364a1">id2pairIDs_map_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
MAPS_IMPLEMENTATION::template <br class="typebreak"/>
<a class="el" href="classstd_1_1map.html">map</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>, <a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_distance.html">TDistance</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a070c22b796e3e9c049bc4e862f5c0f75">id2dist_map_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
MAPS_IMPLEMENTATION::template <br class="typebreak"/>
<a class="el" href="classstd_1_1map.html">map</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>, <a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_previous.html">TPrevious</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af187ca2211e827942ca720216f91b0fa">id2id_map_t</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const TYPE_GRAPH &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af52585f2d062804741818d519cddabb0">m_cached_graph</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#adeae3a44444d148bf2e850fd3da686e9">m_source_node_ID</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a070c22b796e3e9c049bc4e862f5c0f75">id2dist_map_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#abeaf8359121cd18fabd5133800fb7d5d">m_distances</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">All the distances.  <a href="#abeaf8359121cd18fabd5133800fb7d5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1map.html">std::map</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>, <a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_distance.html">TDistance</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a6b050a04c01a4c3d5caaaffaeb9dd30d">m_distances_non_visited</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af187ca2211e827942ca720216f91b0fa">id2id_map_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a602b64b80a61122fd64c46ecc47986ba">m_prev_node</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a4a213405545ae6e0f3ed7190a1f364a1">id2pairIDs_map_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af932bdf8bab5eb152811d211cbaf3e59">m_prev_arc</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1set.html">std::set</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9ac1ecc52cba8d70aa77f4eef5c01322">m_lstNode_IDs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9e7e94b5f4018e9c16bc570ce4d45428">list_all_neighbors_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af4e60d2189650038dda97b28b866cf0f">m_allNeighbors</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Query Dijkstra results</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classmrpt_1_1graphs_1_1_c_directed_tree.html">CDirectedTree</a>&lt; const <br class="typebreak"/>
<a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8c5b974cf6bcafbc9d71d3e0291c4fda">edge_t</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9c2622105686acaeb1a3fa8cc369d1a1">tree_graph_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for graph returned by <em>getTreeGraph:</em> a graph like the original input graph, but with edge data being pointers to the original data (to save copy time &amp; memory)  <a href="#a9c2622105686acaeb1a3fa8cc369d1a1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a880c48bfb47f65da4a6fa46bfa93a456">getNodeDistanceToRoot</a> (const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> id) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the distance from the root node to any other node using the Dijkstra-generated tree </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On unknown node ID. </td></tr>
  </table>
  </dd>
</dl>
 <a href="#a880c48bfb47f65da4a6fa46bfa93a456"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classstd_1_1set.html">std::set</a>&lt; <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9f59bf4dd2a2a3d2eb76cb8cf1dffd68">getListOfAllNodes</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the set of all known node IDs (actually, a const ref to the internal set object).  <a href="#a9f59bf4dd2a2a3d2eb76cb8cf1dffd68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2d1d2121baf359ce8c500fdb507a9a90">getRootNodeID</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the node ID of the tree root, as passed in the constructor.  <a href="#a2d1d2121baf359ce8c500fdb507a9a90"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9e7e94b5f4018e9c16bc570ce4d45428">list_all_neighbors_t</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8cab529e1aaa9ba013087f896b21dfd3">getCachedAdjacencyMatrix</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the adjacency matrix of the input graph, which is cached at construction so if needed later just use this copy to avoid recomputing it.  <a href="#a8cab529e1aaa9ba013087f896b21dfd3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ad3bd1fc3783ea4feeab29073501733c9">getShortestPathTo</a> (const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> target_node_ID, <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ac88e78f980cdc8a6052ac190c2013f05">edge_list_t</a> &amp;out_path) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the shortest path between the source node passed in the constructor and the given target node.  <a href="#ad3bd1fc3783ea4feeab29073501733c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a7ee3c82616266200c491d79233c92ca8">getTreeGraph</a> (<a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9c2622105686acaeb1a3fa8cc369d1a1">tree_graph_t</a> &amp;out_tree) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a tree representation of the graph, as determined by the Dijkstra shortest paths from the root node.  <a href="#a7ee3c82616266200c491d79233c92ca8"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ac88e78f980cdc8a6052ac190c2013f05"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::edge_list_t" ref="ac88e78f980cdc8a6052ac190c2013f05" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1list.html">std::list</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#aee71d7beb4d61406566af3847410d0e4">TPairNodeIDs</a>&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ac88e78f980cdc8a6052ac190c2013f05">mrpt::graphs::CDijkstra::edge_list_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of edges used to describe a path on the graph. </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00102">102</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c5b974cf6bcafbc9d71d3e0291c4fda"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::edge_t" ref="a8c5b974cf6bcafbc9d71d3e0291c4fda" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef graph_t::edge_t <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8c5b974cf6bcafbc9d71d3e0291c4fda">mrpt::graphs::CDijkstra::edge_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type of edge data in graph_t. </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00101">101</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2fd492f10b06ce86db21006d1e4776fb"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::graph_t" ref="a2fd492f10b06ce86db21006d1e4776fb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef TYPE_GRAPH <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">mrpt::graphs::CDijkstra::graph_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type of the graph, typically a mrpt::graphs::CDirectedGraph&lt;&gt; or any other derived class. </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00100">100</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a070c22b796e3e9c049bc4e862f5c0f75"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::id2dist_map_t" ref="a070c22b796e3e9c049bc4e862f5c0f75" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef MAPS_IMPLEMENTATION::template <a class="el" href="classstd_1_1map.html">map</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>,<a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_distance.html">TDistance</a>&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a070c22b796e3e9c049bc4e862f5c0f75">mrpt::graphs::CDijkstra::id2dist_map_t</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00085">85</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="af187ca2211e827942ca720216f91b0fa"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::id2id_map_t" ref="af187ca2211e827942ca720216f91b0fa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef MAPS_IMPLEMENTATION::template <a class="el" href="classstd_1_1map.html">map</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>,<a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_previous.html">TPrevious</a>&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af187ca2211e827942ca720216f91b0fa">mrpt::graphs::CDijkstra::id2id_map_t</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00086">86</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4a213405545ae6e0f3ed7190a1f364a1"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::id2pairIDs_map_t" ref="a4a213405545ae6e0f3ed7190a1f364a1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef MAPS_IMPLEMENTATION::template <a class="el" href="classstd_1_1map.html">map</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>,<a class="el" href="namespacemrpt_1_1utils.html#aee71d7beb4d61406566af3847410d0e4">TPairNodeIDs</a>&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a4a213405545ae6e0f3ed7190a1f364a1">mrpt::graphs::CDijkstra::id2pairIDs_map_t</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00084">84</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9e7e94b5f4018e9c16bc570ce4d45428"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::list_all_neighbors_t" ref="a9e7e94b5f4018e9c16bc570ce4d45428" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef MAPS_IMPLEMENTATION::template <a class="el" href="classstd_1_1map.html">map</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>, <a class="el" href="classstd_1_1set.html">std::set</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&gt; &gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9e7e94b5f4018e9c16bc570ce4d45428">mrpt::graphs::CDijkstra::list_all_neighbors_t</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A <a class="el" href="classstd_1_1map.html" title="STL class.">std::map</a> (or a similar container according to MAPS_IMPLEMENTATION) with all the neighbors of every node. </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00083">83</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9c2622105686acaeb1a3fa8cc369d1a1"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::tree_graph_t" ref="a9c2622105686acaeb1a3fa8cc369d1a1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classmrpt_1_1graphs_1_1_c_directed_tree.html">CDirectedTree</a>&lt;const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8c5b974cf6bcafbc9d71d3e0291c4fda">edge_t</a> *&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9c2622105686acaeb1a3fa8cc369d1a1">mrpt::graphs::CDijkstra::tree_graph_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type for graph returned by <em>getTreeGraph:</em> a graph like the original input graph, but with edge data being pointers to the original data (to save copy time &amp; memory) </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00296">296</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a17f4737da51b1f3822fcf5ef78543a4c"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::CDijkstra" ref="a17f4737da51b1f3822fcf5ef78543a4c" args="(const graph_t &amp;graph, const TNodeID source_node_ID, double(*functor_edge_weight)(const graph_t &amp;graph, const TNodeID id_from, const TNodeID id_to, const edge_t &amp;edge)=NULL, void(*functor_on_progress)(const graph_t &amp;graph, size_t visitedCount)=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::graphs::CDijkstra::CDijkstra </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a> &amp;&#160;</td>
          <td class="paramname"><em>graph</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&#160;</td>
          <td class="paramname"><em>source_node_ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double(*)(const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a> &amp;graph, const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> id_from, const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> id_to, const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a8c5b974cf6bcafbc9d71d3e0291c4fda">edge_t</a> &amp;edge)&#160;</td>
          <td class="paramname"><em>functor_edge_weight</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a2fd492f10b06ce86db21006d1e4776fb">graph_t</a> &amp;graph, size_t visitedCount)&#160;</td>
          <td class="paramname"><em>functor_on_progress</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor, which takes the input graph and executes the entire Dijkstra algorithm from the given root node ID. </p>
<p>The graph is given by the set of directed edges, stored in a <a class="el" href="classmrpt_1_1graphs_1_1_c_directed_graph.html" title="A directed graph with the argument of the template specifying the type of the annotations in the edge...">mrpt::graphs::CDirectedGraph</a> class.</p>
<p>If a function <em>functor_edge_weight</em> is provided, it will be used to compute the weight of edges. Otherwise, all edges weight the unity.</p>
<p>After construction, call <em>getShortestPathTo</em> to get the shortest path to a node or <em>getTreeGraph</em> for the tree representation.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ad3bd1fc3783ea4feeab29073501733c9" title="Returns the shortest path between the source node passed in the constructor and the given target node...">getShortestPathTo</a>, <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a7ee3c82616266200c491d79233c92ca8" title="Returns a tree representation of the graph, as determined by the Dijkstra shortest paths from the roo...">getTreeGraph</a> </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If the source nodeID is not found in the graph </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00118">118</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h.html#a61a8d46146210ee20fa1ff423257a5ec">THROW_EXCEPTION_CUSTOM_MSG1</a>, <a class="el" href="base_2include_2mrpt_2utils_2types_8h_source.html#l00155">INVALID_NODEID</a>, <a class="el" href="mrpt__macros_8h_source.html#l00281">ASSERTMSG_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8cab529e1aaa9ba013087f896b21dfd3"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::getCachedAdjacencyMatrix" ref="a8cab529e1aaa9ba013087f896b21dfd3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9e7e94b5f4018e9c16bc570ce4d45428">list_all_neighbors_t</a>&amp; mrpt::graphs::CDijkstra::getCachedAdjacencyMatrix </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the adjacency matrix of the input graph, which is cached at construction so if needed later just use this copy to avoid recomputing it. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1graphs_1_1_c_directed_graph.html#a6b05ec8c7974689a9013c142fe82b3e5" title="Return a map from node IDs to all its neighbors (that is, connected nodes, regardless of the edge dir...">mrpt::graphs::CDirectedGraph::getAdjacencyMatrix</a> </dd></dl>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00264">264</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9f59bf4dd2a2a3d2eb76cb8cf1dffd68"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::getListOfAllNodes" ref="a9f59bf4dd2a2a3d2eb76cb8cf1dffd68" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classstd_1_1set.html">std::set</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&gt;&amp; mrpt::graphs::CDijkstra::getListOfAllNodes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the set of all known node IDs (actually, a const ref to the internal set object). </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00258">258</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a880c48bfb47f65da4a6fa46bfa93a456"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::getNodeDistanceToRoot" ref="a880c48bfb47f65da4a6fa46bfa93a456" args="(const TNodeID id) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::graphs::CDijkstra::getNodeDistanceToRoot </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the distance from the root node to any other node using the Dijkstra-generated tree </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On unknown node ID. </td></tr>
  </table>
  </dd>
</dl>
</p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00251">251</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>.</p>

</div>
</div>
<a class="anchor" id="a2d1d2121baf359ce8c500fdb507a9a90"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::getRootNodeID" ref="a2d1d2121baf359ce8c500fdb507a9a90" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> mrpt::graphs::CDijkstra::getRootNodeID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the node ID of the tree root, as passed in the constructor. </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00261">261</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad3bd1fc3783ea4feeab29073501733c9"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::getShortestPathTo" ref="ad3bd1fc3783ea4feeab29073501733c9" args="(const TNodeID target_node_ID, edge_list_t &amp;out_path) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::graphs::CDijkstra::getShortestPathTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&#160;</td>
          <td class="paramname"><em>target_node_ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ac88e78f980cdc8a6052ac190c2013f05">edge_list_t</a> &amp;&#160;</td>
          <td class="paramname"><em>out_path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the shortest path between the source node passed in the constructor and the given target node. </p>
<p>The reconstructed path contains a list of arcs (all of them exist in the graph with the given direction), such as the the first edge starts at the origin passed in the constructor, and the last one contains the given target.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>An empty list of edges is returned when target equals the source node. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a7ee3c82616266200c491d79233c92ca8" title="Returns a tree representation of the graph, as determined by the Dijkstra shortest paths from the roo...">getTreeGraph</a> </dd></dl>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00273">273</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>.</p>

</div>
</div>
<a class="anchor" id="a7ee3c82616266200c491d79233c92ca8"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::getTreeGraph" ref="a7ee3c82616266200c491d79233c92ca8" args="(tree_graph_t &amp;out_tree) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::graphs::CDijkstra::getTreeGraph </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9c2622105686acaeb1a3fa8cc369d1a1">tree_graph_t</a> &amp;&#160;</td>
          <td class="paramname"><em>out_tree</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a tree representation of the graph, as determined by the Dijkstra shortest paths from the root node. </p>
<p>Note that the annotations on each edge in the tree are "const pointers" to the original graph edge data, so it's mandatory for the original input graph not to be deleted as long as this tree is used. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#ad3bd1fc3783ea4feeab29073501733c9" title="Returns the shortest path between the source node passed in the constructor and the given target node...">getShortestPathTo</a> </dd></dl>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00303">303</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

<p>References <a class="el" href="_c_directed_tree_8h_source.html#l00077">mrpt::graphs::CDirectedTree::clear()</a>, <a class="el" href="_c_directed_tree_8h_source.html#l00069">mrpt::graphs::CDirectedTree::root</a>, <a class="el" href="_c_directed_tree_8h_source.html#l00070">mrpt::graphs::CDirectedTree::edges_to_children</a>, <a class="el" href="mrpt__macros_8h_source.html#l00281">ASSERTMSG_</a>, and <a class="el" href="namespacemrpt.html#a3a27af794b658df5491e2b7678f8ccb8">mrpt::format()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="af4e60d2189650038dda97b28b866cf0f"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_allNeighbors" ref="af4e60d2189650038dda97b28b866cf0f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9e7e94b5f4018e9c16bc570ce4d45428">list_all_neighbors_t</a> <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af4e60d2189650038dda97b28b866cf0f">mrpt::graphs::CDijkstra::m_allNeighbors</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00094">94</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="af52585f2d062804741818d519cddabb0"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_cached_graph" ref="af52585f2d062804741818d519cddabb0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const TYPE_GRAPH&amp; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af52585f2d062804741818d519cddabb0">mrpt::graphs::CDijkstra::m_cached_graph</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00079">79</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="abeaf8359121cd18fabd5133800fb7d5d"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_distances" ref="abeaf8359121cd18fabd5133800fb7d5d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a070c22b796e3e9c049bc4e862f5c0f75">id2dist_map_t</a> <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#abeaf8359121cd18fabd5133800fb7d5d">mrpt::graphs::CDijkstra::m_distances</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>All the distances. </p>

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00089">89</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6b050a04c01a4c3d5caaaffaeb9dd30d"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_distances_non_visited" ref="a6b050a04c01a4c3d5caaaffaeb9dd30d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1map.html">std::map</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>,<a class="el" href="structmrpt_1_1graphs_1_1_c_dijkstra_1_1_t_distance.html">TDistance</a>&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a6b050a04c01a4c3d5caaaffaeb9dd30d">mrpt::graphs::CDijkstra::m_distances_non_visited</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00090">90</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9ac1ecc52cba8d70aa77f4eef5c01322"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_lstNode_IDs" ref="a9ac1ecc52cba8d70aa77f4eef5c01322" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1set.html">std::set</a>&lt;<a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a>&gt; <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a9ac1ecc52cba8d70aa77f4eef5c01322">mrpt::graphs::CDijkstra::m_lstNode_IDs</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00093">93</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="af932bdf8bab5eb152811d211cbaf3e59"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_prev_arc" ref="af932bdf8bab5eb152811d211cbaf3e59" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a4a213405545ae6e0f3ed7190a1f364a1">id2pairIDs_map_t</a> <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af932bdf8bab5eb152811d211cbaf3e59">mrpt::graphs::CDijkstra::m_prev_arc</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00092">92</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="a602b64b80a61122fd64c46ecc47986ba"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_prev_node" ref="a602b64b80a61122fd64c46ecc47986ba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#af187ca2211e827942ca720216f91b0fa">id2id_map_t</a> <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#a602b64b80a61122fd64c46ecc47986ba">mrpt::graphs::CDijkstra::m_prev_node</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00091">91</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
<a class="anchor" id="adeae3a44444d148bf2e850fd3da686e9"></a><!-- doxytag: member="mrpt::graphs::CDijkstra::m_source_node_ID" ref="adeae3a44444d148bf2e850fd3da686e9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacemrpt_1_1utils.html#a718b4f99645b7e9f6501c9b7bb2a2fe7">TNodeID</a> <a class="el" href="classmrpt_1_1graphs_1_1_c_dijkstra.html#adeae3a44444d148bf2e850fd3da686e9">mrpt::graphs::CDijkstra::m_source_node_ID</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dijkstra_8h_source.html#l00080">80</a> of file <a class="el" href="dijkstra_8h_source.html">dijkstra.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>