Sophie

Sophie

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

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::slam::COccupancyGridMap2D 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_1slam.html">slam</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::slam::COccupancyGridMap2D Class Reference<div class="ingroups"><a class="el" href="group__mrpt__maps__grp.html">[mrpt-maps]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::COccupancyGridMap2D" --><!-- doxytag: inherits="mrpt::slam::CMetricMap,CLogOddsGridMap2D&lt; int16_t &gt;" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A class for storing an occupancy grid map. </p>
<p><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html" title="A class for storing an occupancy grid map.">COccupancyGridMap2D</a> is a class for storing a metric map representation in the form of a probabilistic occupancy grid map: value of 0 means certainly occupied, 1 means a certainly empty cell. Initially 0.5 means uncertainty.</p>
<p>The cells keep the log-odd representation of probabilities instead of the probabilities themselves. More details can be found at <a href="http://www.mrpt.org/Occupancy_Grids">http://www.mrpt.org/Occupancy_Grids</a></p>
<p>The algorithm for updating the grid from a laser scanner can optionally take into account the progressive widening of the beams, as described in the <a href="http://www.mrpt.org/Occupancy_Grids">wiki </a> (this feature was introduced in MRPT 0.6.4).</p>
<p>Some implemented methods are:</p>
<ul>
<li>Update of individual cells</li>
<li>Insertion of observations</li>
<li>Voronoi diagram and critical points (<em>buildVoronoiDiagram</em>)</li>
<li>Saving and loading from/to a bitmap</li>
<li>Laser scans simulation for the map contents</li>
<li>Entropy and information methods (See computeEntropy) </li>
</ul>
</div>
<p><code>#include &lt;<a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">mrpt/slam/COccupancyGridMap2D.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::COccupancyGridMap2D:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_occupancy_grid_map2_d_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_occupancy_grid_map2_d_inherit__map" id="mrpt_1_1slam_1_1_c_occupancy_grid_map2_d_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_metric_map.html" title="Declares a virtual base class for all metric maps storage classes." alt="" coords="179,173,341,200"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT..." alt="" coords="4,83,168,109"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="19,5,153,32"/><area shape="rect" id="node8" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class..." alt="" coords="194,83,357,109"/><area shape="rect" id="node10" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html" title="mrpt::slam::CLogOddsGridMap2D\&lt; int16_t \&gt;" alt="" coords="365,173,647,200"/><area shape="rect" id="node12" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html" title="A generic provider of log&#45;odds grid&#45;map maintainance functions." alt="" coords="397,83,616,109"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d-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_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_critical_points_list.html">TCriticalPointsList</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure used to store the set of Voronoi diagram critical points.  <a href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_critical_points_list.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_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_entropy_info.html">TEntropyInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for returning entropy related information.  <a href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_entropy_info.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_insertion_options.html">TInsertionOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">With this struct options are provided to the observation insertion process.  <a href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_insertion_options.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_options.html">TLikelihoodOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">With this struct options are provided to the observation likelihood computation process.  <a href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_options.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_output.html">TLikelihoodOutput</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Some members of this struct will contain intermediate or output data after calling "computeObservationLikelihood" for some likelihood functions.  <a href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_output.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_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_update_cells_info_change_only.html">TUpdateCellsInfoChangeOnly</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An internal structure for storing data related to counting the new information apported by some observation.  <a href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_update_cells_info_change_only.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1">TLikelihoodMethod</a> { <br/>
&#160;&#160;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1a95a02c9e818f23225a61b58a828bed1b">lmMeanInformation</a> =  0, 
<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1a3ca355799d98bd1bcc00815cb41bcbc4">lmRayTracing</a>, 
<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1a11621815c435ed51db10a23576cdac2c">lmConsensus</a>, 
<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1a3fccf7695fc59ae53e10e079b6ccdab0">lmCellsDifference</a>, 
<br/>
&#160;&#160;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1a8b2d704901595037d273c3e9b6236559">lmLikelihoodField_Thrun</a>, 
<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1afc7020b15d07152a49b05eff808c5ddc">lmLikelihoodField_II</a>, 
<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1ab4f0badb2fb763975a43ee84d70b9bc3">lmConsensusOWA</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type for selecting a likelihood computation method.  <a href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of the map cells:  <a href="#ad8b8a3357bc682ae5949d9e4768709aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac8708b0ca86e8cd4ec6193111cf4909c">cellTypeUnsigned</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::pair&lt; double, <br class="typebreak"/>
<a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5d65008293a7029cf0f615ca9d187787">TPairLikelihoodIndex</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary private class.  <a href="#a5d65008293a7029cf0f615ca9d187787"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef TCELL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of cells.  <a href="#a303720ae1a3a6e0dd66a6f5000563c31"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
detail::logoddscell_traits<br class="typebreak"/>
&lt; TCELL &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a3b3f3dea9c21f268423707ebb8133073">traits_t</a></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">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ace6788ec40e72e1daec69ae0a4179ff6">updateCell</a> (int x, int y, float v)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the Bayesian fusion of a new observation of a cell.  <a href="#ace6788ec40e72e1daec69ae0a4179ff6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aff139b0350fa4434f167ad8395eddefd">COccupancyGridMap2D</a> (float min_x=-20.0f, float max_x=20.0f, float min_y=-20.0f, float max_y=20.0f, float resolution=0.05f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#aff139b0350fa4434f167ad8395eddefd"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a5fdb25a96ab9b349bc37c78ac88d0034">fill</a> (float default_value=0.5f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills all the cells with a default value.  <a href="#a5fdb25a96ab9b349bc37c78ac88d0034"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a4e6b7e2c80f5f698f1678eb62b59337b">~COccupancyGridMap2D</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a4e6b7e2c80f5f698f1678eb62b59337b"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a6ce4de58b0640952af8663316fe68a9b">setSize</a> (float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a04fe20a7135894b794c5e6c31cd29323">x_min</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9633cef35e22bebae97a0909e364c5ed">x_max</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2997ff6789278a6b1fcc99534aaa128e">y_min</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7346b67240d511182db47a4b06777385">y_max</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a16e113fd57e5dfaa69d293862eb22a89">resolution</a>, float default_value=0.5f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the size of gridmap, erasing all its previous contents.  <a href="#a6ce4de58b0640952af8663316fe68a9b"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a1232d285cf713134549eb4d409ca9dfa">resizeGrid</a> (float new_x_min, float new_x_max, float new_y_min, float new_y_max, float new_cells_default_value=0.5f, bool additionalMargin=true) MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the size of gridmap, maintaining previous contents.  <a href="#a1232d285cf713134549eb4d409ca9dfa"></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_1slam_1_1_c_occupancy_grid_map2_d.html#aacf8986a3f7dd1b00b93ef39bf2b85d4">getArea</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the area of the gridmap, in square meters.  <a href="#aacf8986a3f7dd1b00b93ef39bf2b85d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5f96a77f7402a402f41964bc38b86393">getSizeX</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the horizontal size of grid map in cells count.  <a href="#a5f96a77f7402a402f41964bc38b86393"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#af681da104343ef9dd996cd54da8c4e05">getSizeY</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the vertical size of grid map in cells count.  <a href="#af681da104343ef9dd996cd54da8c4e05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a080c72c132572f5f8ad92434dbf4440b">getXMin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the "x" coordinate of left side of grid map.  <a href="#a080c72c132572f5f8ad92434dbf4440b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a365bd65fa36738c134d3d5c1f8e5c5dc">getXMax</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the "x" coordinate of right side of grid map.  <a href="#a365bd65fa36738c134d3d5c1f8e5c5dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9779b623cfb4b9576e5352f7087b90e8">getYMin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the "y" coordinate of top side of grid map.  <a href="#a9779b623cfb4b9576e5352f7087b90e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a4027f3da4015ca35c0a11266454c6977">getYMax</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the "y" coordinate of bottom side of grid map.  <a href="#a4027f3da4015ca35c0a11266454c6977"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a91898b9f7dcd3a8e7f0003c623147276">getResolution</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the resolution of the grid map.  <a href="#a91898b9f7dcd3a8e7f0003c623147276"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a10cbc01d4256cf358e7b94c00bcc0653">x2idx</a> (float x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform a coordinate value into a cell index.  <a href="#a10cbc01d4256cf358e7b94c00bcc0653"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1402c1e6981535dea1557776437dd1f1">y2idx</a> (float y) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7ab194b19c356d12acfdd2e34a80c316">x2idx</a> (double x) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a067dd01770dc79dba5bdb985fec1d70e">y2idx</a> (double y) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a244c52d508f9f8485b9b501ca2041744">idx2x</a> (const size_t cx) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform a cell index into a coordinate value.  <a href="#a244c52d508f9f8485b9b501ca2041744"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a44bde0674e018f6919fbce4846e117dd">idx2y</a> (const size_t cy) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#abf40dfd4a6a20181eaa7fc39637aff68">x2idx</a> (float x, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a04fe20a7135894b794c5e6c31cd29323">x_min</a>) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform a coordinate value into a cell index, using a diferent "x_min" value.  <a href="#abf40dfd4a6a20181eaa7fc39637aff68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a0b4d7c16ea7fc8062c7d4529864a86e6">y2idx</a> (float y, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2997ff6789278a6b1fcc99534aaa128e">y_min</a>) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5ca93b2d3b8fac353a17ea79cf953efd">setCell</a> (int x, int y, float value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the contents [0,1] of a cell, given its index.  <a href="#a5ca93b2d3b8fac353a17ea79cf953efd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5de84f1363c3dabe43bfa13d9b4ad823">getCell</a> (int x, int y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the real valued [0,1] contents of a cell, given its index.  <a href="#a5de84f1363c3dabe43bfa13d9b4ad823"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad75129f6fcaba8d1a7699bc4056bd914">getRow</a> (int cy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally.  <a href="#ad75129f6fcaba8d1a7699bc4056bd914"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#adbe973dc21d3f4eb798d2986c5aa6e92">getRow</a> (int cy) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally.  <a href="#adbe973dc21d3f4eb798d2986c5aa6e92"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a9ef4135b6116018d807cbfd26cb613f5">setPos</a> (float x, float y, float value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the contents [0,1] of a cell, given its coordinates.  <a href="#a9ef4135b6116018d807cbfd26cb613f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a774ac3243e0de2e8444808c15b6d0e11">getPos</a> (float x, float y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the real valued [0,1] contents of a cell, given its coordinates.  <a href="#a774ac3243e0de2e8444808c15b6d0e11"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad542af3288933578bb5f82935dff6bdb">isStaticPos</a> (float x, float y, float threshold=0.7f) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns "true" if cell is "static", i.e.if its occupancy is below a given threshold.  <a href="#ad542af3288933578bb5f82935dff6bdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a8816c642fb95f3251e7f808a8266c3b2">isStaticCell</a> (int cx, int cy, float threshold=0.7f) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#af85c888dad3661272c75720acac785e4">setBasisCell</a> (int x, int y, uint8_t value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change a cell in the "basis" maps.Used for Voronoi calculation.  <a href="#af85c888dad3661272c75720acac785e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1b5d506c42ba97e8d65ecdeebb36c99a">getBasisCell</a> (int x, int y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a cell in the "basis" maps.Used for Voronoi calculation.  <a href="#a1b5d506c42ba97e8d65ecdeebb36c99a"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a52a97059fb6ac9b4eb070038bc77d1fa">subSample</a> (int downRatio)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a downsampling of the gridmap, by a given factor: resolution/=ratio.  <a href="#a52a97059fb6ac9b4eb070038bc77d1fa"></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_1slam_1_1_c_occupancy_grid_map2_d.html#aa915ebd786a3b748cebb44e4008185f2">computeEntropy</a> (<a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_entropy_info.html">TEntropyInfo</a> &amp;info) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the entropy and related values of this grid map.  <a href="#aa915ebd786a3b748cebb44e4008185f2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac069cccfc247cf79f0535cced10fb7f1">computeClearance</a> (int cx, int cy, int *basis_x, int *basis_y, int *nBasis, bool GetContourPoint=false) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the clearance of a given cell, and returns its two first basis (closest obstacle) points.Used to build Voronoi and critical points.  <a href="#ac069cccfc247cf79f0535cced10fb7f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a0f1733466afb496935e99cdf803b03e5">computeClearance</a> (float x, float y, float maxSearchDistance) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An alternative method for computing the clearance of a given location (in meters).  <a href="#a0f1733466afb496935e99cdf803b03e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#af9eb6e389af0d10d9d9b3d1460541581">computePathCost</a> (float x1, float y1, float x2, float y2) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the 'cost' of traversing a segment of the map according to the occupancy of traversed cells.  <a href="#af9eb6e389af0d10d9d9b3d1460541581"></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_1slam_1_1_c_occupancy_grid_map2_d.html#af42355207136d9c7bd4fef8fd82735df">computeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the likelihood that a given observation was taken from a given pose in the world being modeled with this map.  <a href="#af42355207136d9c7bd4fef8fd82735df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a614e663954432e3ebe8d0a6e7cc37e2b">canComputeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.  <a href="#a614e663954432e3ebe8d0a6e7cc37e2b"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a46991a40330626050e6c3d4423f7e38b">computeLikelihoodField_Thrun</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *pm, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> *relativePose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the likelihood [0,1] of a set of points, given the current grid map as reference.  <a href="#a46991a40330626050e6c3d4423f7e38b"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a27560d8a616fa02f90e718a248f4050b">computeLikelihoodField_II</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *pm, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> *relativePose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the likelihood [0,1] of a set of points, given the current grid map as reference.  <a href="#a27560d8a616fa02f90e718a248f4050b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afedc83988c5c47ac856bec2df29868e6">saveAsBitmapFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the gridmap as a graphical file (BMP,PNG,...).  <a href="#afedc83988c5c47ac856bec2df29868e6"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class CLANDMARKSMAP &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad77412cb0cf67e6dbea85c132892bac5">saveAsBitmapFileWithLandmarks</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file, const CLANDMARKSMAP *landmarks, bool addTextLabels=false, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> &amp;marks_color=<a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(0, 0, 255)) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the gridmap as a graphical bitmap file, 8 bit gray scale, 1 pixel is 1 cell, and with an overlay of landmarks.  <a href="#ad77412cb0cf67e6dbea85c132892bac5"></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_1slam_1_1_c_occupancy_grid_map2_d.html#ad8257c706d5bf69589b028773329dbe1">getAsImage</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;img, bool verticalFlip=false, bool forceRGB=false, bool tricolor=false) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively.  <a href="#ad8257c706d5bf69589b028773329dbe1"></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_1slam_1_1_c_occupancy_grid_map2_d.html#ab259b121700cc776f4303702fded2f0c">getAsImageFiltered</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;img, bool verticalFlip=false, bool forceRGB=false) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) - This method filters the image for easy feature detection If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively.  <a href="#ab259b121700cc776f4303702fded2f0c"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a6edbcaa204f700a121570ffe42932df5">getAs3DObject</a> (<a class="el" href="structmrpt_1_1opengl_1_1_c_set_of_objects_ptr.html">mrpt::opengl::CSetOfObjectsPtr</a> &amp;outObj) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a 3D plane with its texture being the occupancy grid and transparency proportional to "uncertainty" (i.e.  <a href="#a6edbcaa204f700a121570ffe42932df5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6b471182a3f3ddd6aefda6a9b97f6648">isEmpty</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true upon map construction or after calling <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b" title="Erase all the contents of the map.">clear()</a>, the return changes to false upon successful <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">insertObservation()</a> or any other method to load data in the map.  <a href="#a6b471182a3f3ddd6aefda6a9b97f6648"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a86038bebc10ead8ab27b2b7d1d6957d8">loadFromBitmapFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a16e113fd57e5dfaa69d293862eb22a89">resolution</a>, float xCentralPixel=-1, float yCentralPixel=-1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the gridmap from a image in a file (the format can be any supported by <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6" title="Load image from a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::loadFromFile</a>).  <a href="#a86038bebc10ead8ab27b2b7d1d6957d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7e2b1c6b8b276800d0ca6f592c2674b5">loadFromBitmap</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">mrpt::utils::CImage</a> &amp;img, float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a16e113fd57e5dfaa69d293862eb22a89">resolution</a>, float xCentralPixel=-1, float yCentralPixel=-1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the gridmap from a image in a file (the format can be any supported by <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6" title="Load image from a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::loadFromFile</a>).  <a href="#a7e2b1c6b8b276800d0ca6f592c2674b5"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a6329f217aeb92bb0ad787102aff24bdc">computeMatchingWith2D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See the base class for more details: In this class it is implemented as correspondences of the passed points map to occupied cells.  <a href="#a6329f217aeb92bb0ad787102aff24bdc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5bc762e11e7d37526be13fec909165aa">compute3DMatchingRatio</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;otherMapPose, float minDistForCorr=0.10f, float minMahaDistForCorr=2.0f) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the ratio in [0,1] of correspondences between "this" and the "otherMap" map, whose 6D pose relative to "this" is "otherMapPose" In the case of a multi-metric map, this returns the average between the maps.  <a href="#a5bc762e11e7d37526be13fec909165aa"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a351d915efb5fcf5e16fb48d28745663c">saveMetricMapRepresentationToFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;filNamePrefix) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface).  <a href="#a351d915efb5fcf5e16fb48d28745663c"></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_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase all the contents of the map.  <a href="#afe18b3eac9b4ff07b674e0eb74652f5b"></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_1slam_1_1_c_metric_map.html#a9fbc1945a342365600bf352ec89fc617">loadFromProbabilisticPosesAndObservations</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;Map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map.  <a href="#a9fbc1945a342365600bf352ec89fc617"></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_1slam_1_1_c_metric_map.html#aedf155237d3fe3d595994b9659a4e688">loadFromSimpleMap</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;Map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map.  <a href="#aedf155237d3fe3d595994b9659a4e688"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782">insertObservation</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the observation information into this map.  <a href="#ad1d3f22228d6dbdb3c31c132713bf782"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a7cb614f5ec634ec6f6a20b14163e5b07">insertObservationPtr</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper for smart pointers, just calls the non-smart pointer version.  <a href="#a7cb614f5ec634ec6f6a20b14163e5b07"></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_1slam_1_1_c_metric_map.html#a6adfc3df476a7edafaca40444d8dad04">computeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the log-likelihood of a given observation given an arbitrary robot 2D pose.  <a href="#a6adfc3df476a7edafaca40444d8dad04"></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_1slam_1_1_c_metric_map.html#a8184371fde28bc35a9ec461240b83b43">computeObservationsLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the sum of the log-likelihoods of each individual observation within a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot; taken by the robot approximat...">mrpt::slam::CSensoryFrame</a>.  <a href="#a8184371fde28bc35a9ec461240b83b43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ab3b66046cae11313beba57052b852eca">canComputeObservationsLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.  <a href="#ab3b66046cae11313beba57052b852eca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a7aafbdbb3f2cb17e14e1af9997c3fa48">computeMatchingWith3D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=true, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the matchings between this and another 3D points map - method used in 3D-ICP.  <a href="#a7aafbdbb3f2cb17e14e1af9997c3fa48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aabd4d4be402cdd01bc8db467f214516a">auxParticleFilterCleanUp</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::CMetricMapBuilderRBPF::processActionObservation".  <a href="#aabd4d4be402cdd01bc8db467f214516a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ae6235efcb6d5da8e9db1ad6ccfb8225c">squareDistanceToClosestCorrespondence</a> (const float &amp;x0, const float &amp;y0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map.  <a href="#ae6235efcb6d5da8e9db1ad6ccfb8225c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ae7b0688c0e2c0d75554e22b739649463">getAsSimplePointsMap</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points map, return it.  <a href="#ae7b0688c0e2c0d75554e22b739649463"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ace4e7cc2a2f070d556c5074117a3aa2f">getAsSimplePointsMap</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a534695890364f4b916bba07dad311bcf">duplicateGetSmartPtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).  <a href="#a534695890364f4b916bba07dad311bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a9ef7857a0b36059c078e195a0a65ac00">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cloning interface for smart pointers.  <a href="#a9ef7857a0b36059c078e195a0a65ac00"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Sensor simulators</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a53da285d710cfe6610bcd23187fd5a76">laserScanSimulator</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;inout_Scan, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;robotPose, float threshold=0.5f, size_t N=361, float noiseStd=0, unsigned int decimation=1, float angleNoiseStd=DEG2RAD(0)) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulates a laser range scan into the current grid map.  <a href="#a53da285d710cfe6610bcd23187fd5a76"></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_1slam_1_1_c_occupancy_grid_map2_d.html#aa760dd419d1c98d1fd36911f914b8902">sonarSimulator</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation_range.html">CObservationRange</a> &amp;inout_observation, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;robotPose, float threshold=0.5f, float rangeNoiseStd=0, float angleNoiseStd=DEG2RAD(0)) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulates the observations of a sonar rig into the current grid map.  <a href="#aa760dd419d1c98d1fd36911f914b8902"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a4ecb87df862fddc73cc8fef12fdafc34">simulateScanRay</a> (const double x, const double y, const double angle_direction, float &amp;out_range, bool &amp;out_valid, const unsigned int max_ray_len, const float threshold_free=0.5f, const double noiseStd=0, const double angleNoiseStd=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate just one "ray" in the grid map.  <a href="#a4ecb87df862fddc73cc8fef12fdafc34"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2db2fbd3c4e985ffccc58c440c1b2ac2">l2p</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> l)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scales an integer representation of the log-odd into a real valued probability in [0,1], using p=exp(l)/(1+exp(l))  <a href="#a2db2fbd3c4e985ffccc58c440c1b2ac2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a0ee658a6a2c99fd318e891471abba304">l2p_255</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> l)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scales an integer representation of the log-odd into a linear scale [0,255], using p=exp(l)/(1+exp(l))  <a href="#a0ee658a6a2c99fd318e891471abba304"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab5145eccde0c7bb6d216b14f46be03bd">p2l</a> (const float p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scales a real valued probability in [0,1] to an integer representation of: log(p)-log(1-p) in the valid range of cellType.  <a href="#ab5145eccde0c7bb6d216b14f46be03bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ae91fe6572724dc469fb84aa22d44eb83">saveAsBitmapTwoMapsWithCorrespondences</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fileName, const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *m1, const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *m2, const <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;corrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves a composite image with two gridmaps and lines representing a set of correspondences between them.  <a href="#ae91fe6572724dc469fb84aa22d44eb83"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac663a5d4033a5fedcb947836c2d6b0c9">saveAsEMFTwoMapsWithCorrespondences</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fileName, const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *m1, const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *m2, const <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;corrs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves a composite image with two gridmaps and numbers for the correspondences between them.  <a href="#ac663a5d4033a5fedcb947836c2d6b0c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#aacbad0750e1daee9c87ed58554e3a5a1">updateCell_fast_occupied</a> (const unsigned x, const unsigned y, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> logodd_obs, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> thres, <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *mapArray, const unsigned _size_x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.  <a href="#aacbad0750e1daee9c87ed58554e3a5a1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a691e592dbefe70ea33969acf2821b9c6">updateCell_fast_occupied</a> (<a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *theCell, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> logodd_obs, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> thres)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.  <a href="#a691e592dbefe70ea33969acf2821b9c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a7921809b8a25ce16cdfd230193f88909">updateCell_fast_free</a> (const unsigned x, const unsigned y, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> logodd_obs, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> thres, <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *mapArray, const unsigned _size_x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.  <a href="#a7921809b8a25ce16cdfd230193f88909"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a25e9bc67e0e81242ee3359d8155a2e02">updateCell_fast_free</a> (<a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *theCell, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> logodd_obs, const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> thres)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.  <a href="#a25e9bc67e0e81242ee3359d8155a2e02"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct MAPS_IMPEXP <br class="typebreak"/>
<a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_update_cells_info_change_only.html">mrpt::slam::COccupancyGridMap2D::TUpdateCellsInfoChangeOnly</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad174c4c46d06048f65762fb53bdb7483">updateInfoChangeOnly</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_insertion_options.html">TInsertionOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1cbb040250b2c31874f99bce0bd978b4">insertionOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">With this struct options are provided to the observation insertion process.  <a href="#a1cbb040250b2c31874f99bce0bd978b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_options.html">mrpt::slam::COccupancyGridMap2D::TLikelihoodOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ae963991b98683b067b3cf041591535b9">likelihoodOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class <br class="typebreak"/>
<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_output.html">mrpt::slam::COccupancyGridMap2D::TLikelihoodOutput</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac5a9c19bcd33e7b9a674a02ae32c79f0">likelihoodOutputs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct MAPS_IMPEXP <br class="typebreak"/>
<a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_critical_points_list.html">mrpt::slam::COccupancyGridMap2D::TCriticalPointsList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a33c41ed5de75f6defe7b709b29ee10ba">CriticalPointsList</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a2b50a8c61d853cc452b82d58756e9603">m_disableSaveAs3DObject</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">When set to true (default=false), calling "getAs3DObject" will have no effects.  <a href="#a2b50a8c61d853cc452b82d58756e9603"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a833dc6bc133c8c117858181c55f53787">OCCGRID_CELLTYPE_MIN</a> = <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html">CLogOddsGridMap2D</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt;::CELLTYPE_MIN</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Discrete to float conversion factors: The min/max values of the integer cell type, eg.  <a href="#a833dc6bc133c8c117858181c55f53787"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a772c1d95974f88db924ff5067364290d">OCCGRID_CELLTYPE_MAX</a> = <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html">CLogOddsGridMap2D</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt;::CELLTYPE_MAX</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab044797ba667c4ece543b210cb32110a">OCCGRID_P2LTABLE_SIZE</a> = <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html">CLogOddsGridMap2D</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt;::P2LTABLE_SIZE</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTTI stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a79a95d31a9a33c998592bdba788ab80f">OnPostSuccesfulInsertObs</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See base class.  <a href="#a79a95d31a9a33c998592bdba788ab80f"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a54e50aeb53e37d2531754af74ee1db30">freeMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the dynamic memory buffers of map.  <a href="#a54e50aeb53e37d2531754af74ee1db30"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a13550e4fa84ccd41e3c4d525f1d09fc6">setCell_nocheck</a> (int x, int y, float value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the contents [0,1] of a cell, given its index.  <a href="#a13550e4fa84ccd41e3c4d525f1d09fc6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aae99538b4cffdb47735a038979f85188">getCell_nocheck</a> (int x, int y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the real valued [0,1] contents of a cell, given its index.  <a href="#aae99538b4cffdb47735a038979f85188"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a099c4d1b2bb1d2d51d5e19abec266fcc">setRawCell</a> (unsigned int cellIndex, <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes a cell by its absolute index (Do not use it normally)  <a href="#a099c4d1b2bb1d2d51d5e19abec266fcc"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a2d21305d241ebe46ba7de8e4d1ae8db2">computeObservationLikelihood_Consensus</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood" (This method is the Range-Scan Likelihood Consensus for gridmaps, see the ICRA2007 paper by Blanco et al.)  <a href="#a2d21305d241ebe46ba7de8e4d1ae8db2"></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_1slam_1_1_c_occupancy_grid_map2_d.html#adee5bf50b3e73c4beaddb63b99ffb8ae">computeObservationLikelihood_ConsensusOWA</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood" TODO: This method is described in....  <a href="#adee5bf50b3e73c4beaddb63b99ffb8ae"></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_1slam_1_1_c_occupancy_grid_map2_d.html#ae5031331eaaa39ff254f75dabb5cdbfc">computeObservationLikelihood_CellsDifference</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood".  <a href="#ae5031331eaaa39ff254f75dabb5cdbfc"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a3e5739777488ff0ec136cead809c0b33">computeObservationLikelihood_MI</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood".  <a href="#a3e5739777488ff0ec136cead809c0b33"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a245c0175828f8fda9c62212188b47d62">computeObservationLikelihood_rayTracing</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood".  <a href="#a245c0175828f8fda9c62212188b47d62"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a15a4881a32643d73e7c984a80903a1ea">computeObservationLikelihood_likelihoodField_Thrun</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood".  <a href="#a15a4881a32643d73e7c984a80903a1ea"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a1a4b4359a3021abff8681c3504e1589b">computeObservationLikelihood_likelihoodField_II</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One of the methods that can be selected for implementing "computeObservationLikelihood".  <a href="#a1a4b4359a3021abff8681c3504e1589b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a358c5b280e2ad877e1c7caa4be0687f4">internal_clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the map: It set all cells to their default occupancy value (0.5), without changing the resolution (the grid extension is reset to the default values).  <a href="#a358c5b280e2ad877e1c7caa4be0687f4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a4a20d00ac342a9e386ca12ee9b585e25">internal_insertObservation</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the observation information into this map.  <a href="#a4a20d00ac342a9e386ca12ee9b585e25"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a0b6b801e67bca3d8e0d355e7035f8013">writeToStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;out, int *getVersion) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>.  <a href="#a0b6b801e67bca3d8e0d355e7035f8013"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a73ba83035a64939cdc3aa1c0dfed23ec">readFromStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;in, int version)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori.  <a href="#a73ba83035a64939cdc3aa1c0dfed23ec"></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_1utils_1_1_c_observable.html#a0c384e00c06199bc2ff37ff5ecb520c9">publishEvent</a> (const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &amp;e) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when you want this object to emit an event to all the observers currently subscribed to this object.  <a href="#a0c384e00c06199bc2ff37ff5ecb520c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e">hasSubscribers</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called by a derived class before preparing an event for publishing with <em>publishEvent</em> to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read.  <a href="#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1b633754880624af54dd5d1842a18fc1">H</a> (double p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Entropy computation internal function:  <a href="#a1b633754880624af54dd5d1842a18fc1"></a><br/></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"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a3d044620d441c1cb421eaadc10f9e963">map</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the buffer for storing the cells.In this dynamic size buffer are stored the cell values as "bytes", stored row by row, from left to right cells.  <a href="#a3d044620d441c1cb421eaadc10f9e963"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a10a3f38204821d229ab8274a06dd2622">size_x</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the grid in cells.  <a href="#a10a3f38204821d229ab8274a06dd2622"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a20174e16db008338bb2fac9ca64e6541">size_y</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a04fe20a7135894b794c5e6c31cd29323">x_min</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The limits of the grid in "units" (meters).  <a href="#a04fe20a7135894b794c5e6c31cd29323"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9633cef35e22bebae97a0909e364c5ed">x_max</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2997ff6789278a6b1fcc99534aaa128e">y_min</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7346b67240d511182db47a4b06777385">y_max</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a16e113fd57e5dfaa69d293862eb22a89">resolution</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cell size, i.e.  <a href="#a16e113fd57e5dfaa69d293862eb22a89"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab18878533cdf1a7cf156da3d2ac3b994">precomputedLikelihood</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">These are auxiliary variables to speed up the computation of observation likelihood values for LF method among others, at a high cost in memory (see <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_options.html#aff1e9eba8f8fa136f9d4f41c6718f521" title="Enables the usage of a cache of likelihood values (for LF methods), if set to true (default=false)...">TLikelihoodOptions::enableLikelihoodCache</a>).  <a href="#ab18878533cdf1a7cf156da3d2ac3b994"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a86fc3a35a5a4fab534ac4ce89754bd09">precomputedLikelihoodToBeRecomputed</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7d6cc3b3aa8a48abfdb0fbf1af81121e">m_basis_map</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for Voronoi calculation.Same struct as "map", but contains a "0" if not a basis point.  <a href="#a7d6cc3b3aa8a48abfdb0fbf1af81121e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt; uint16_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a4e93126b14249d477e9c7c8bf7af835f">m_voronoi_diagram</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to store the Voronoi diagram.  <a href="#a4e93126b14249d477e9c7c8bf7af835f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#adcf066b52e180300b0988b9d27247d91">m_is_empty</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True upon construction; used by <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6b471182a3f3ddd6aefda6a9b97f6648" title="Returns true upon map construction or after calling clear(), the return changes to false upon success...">isEmpty()</a>  <a href="#adcf066b52e180300b0988b9d27247d91"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#af3bc90ff048f4a010d6e5214eb49fc92">voroni_free_threshold</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The free-cells threshold used to compute the Voronoi diagram.  <a href="#af3bc90ff048f4a010d6e5214eb49fc92"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map_l_u_t.html">CLogOddsGridMapLUT</a><br class="typebreak"/>
&lt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afd2e8f0e766de3b330f6ce03be5ee522">m_logodd_lut</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Lookup tables for log-odds.  <a href="#afd2e8f0e766de3b330f6ce03be5ee522"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a641338c6a59d4cb93a7d7e27822bed38">entropyTable</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internally used to speed-up entropy calculation.  <a href="#a641338c6a59d4cb93a7d7e27822bed38"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afc7559c6d33cdc280ac9ff8d4dcb3d03">GetNeighborhood</a> (int cx, int cy) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a byte with the occupancy of the 8 sorrounding cells.  <a href="#afc7559c6d33cdc280ac9ff8d4dcb3d03"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afd22aa5ef275f2b88e81ade481befcea">direction2idx</a> (int dx, int dy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index [0,7] of the given movement, or.  <a href="#afd22aa5ef275f2b88e81ade481befcea"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a063d5c951449918a93e9262861086061">direccion_vecino_x</a> [8]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to store the 8 possible movements from a cell to the sorrounding ones.Filled in the constructor.  <a href="#a063d5c951449918a93e9262861086061"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a677d53e00fc6f4c862c2a8452b80f7c8">direccion_vecino_y</a> [8]</td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1bae34eddd4e2faa9c5f33c50f07f4fe">CMultiMetricMap</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab04439e1f92cce9e3682f6c32d87e172">CMultiMetricMapPDF</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_ptr.html">COccupancyGridMap2DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2d4a30ba6a4cfba1c9540ebfc2ca190e">SmartPtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aa52d794d895e0ea33a5e424acc489535">_init_COccupancyGridMap2D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a0681df6aa926fadc2a711d1c37d10225">classCOccupancyGridMap2D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#adbe2f37dec59c47df7838582d62a45ad">classinfo</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9305db316250b6bd5edce8ab64f73487">_GetBaseClass</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a317c9203c516c858b5601a62ce1d7477">GetRuntimeClass</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns information about the class of an object in runtime.  <a href="#a317c9203c516c858b5601a62ce1d7477"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5e90b6efdf7c8646c43619f805d1447d">duplicate</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class.  <a href="#a5e90b6efdf7c8646c43619f805d1447d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac79595c88f37063ed0eb455afbe4174a">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_ptr.html">COccupancyGridMap2DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aa41e7e0063006c8c7aece28e026711d9">Create</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Voronoi methods</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac9e2a4472fb4e41de66ea3857b332b8b">buildVoronoiDiagram</a> (float threshold, float robot_size, int x1=0, int x2=0, int y1=0, int y2=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Build the Voronoi diagram of the grid map.  <a href="#ac9e2a4472fb4e41de66ea3857b332b8b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad5729a26efcc0f9633f82acaf4384b00">getVoroniClearance</a> (int cx, int cy) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a the clearance of a cell (in centimeters), after building the Voronoi diagram with <em>buildVoronoiDiagram</em>.  <a href="#ad5729a26efcc0f9633f82acaf4384b00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt; uint8_t &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad1ad5b935dfd9a9c9d1ce8ad6f9c5307">getBasisMap</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the auxiliary "basis" map built while building the Voronoi diagram.  <a href="#ad1ad5b935dfd9a9c9d1ce8ad6f9c5307"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt; uint16_t &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a674df8431ce288f27ab1d559ff2c42c0">getVoronoiDiagram</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the Voronoi diagram; each cell contains the distance to its closer obstacle, or 0 if not part of the Voronoi diagram.  <a href="#a674df8431ce288f27ab1d559ff2c42c0"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a618c93040b2292edcbbee92af4863beb">findCriticalPoints</a> (float filter_distance)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a list with the critical points from Voronoi diagram, which must must be built before calling this method.  <a href="#a618c93040b2292edcbbee92af4863beb"></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_1slam_1_1_c_occupancy_grid_map2_d.html#a6438c48bc30c091920f2ed47a11e5f65">setVoroniClearance</a> (int cx, int cy, uint16_t dist)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to set the clearance of a cell, while building the Voronoi diagram.  <a href="#a6438c48bc30c091920f2ed47a11e5f65"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a1cbb8630027acc3d6d227fa7d78c724f">classCMetricMap</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</a></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a303720ae1a3a6e0dd66a6f5000563c31"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::cell_t" ref="a303720ae1a3a6e0dd66a6f5000563c31" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef TCELL <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">mrpt::slam::CLogOddsGridMap2D::cell_t</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type of cells. </p>

<p>Definition at line <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00069">69</a> of file <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html">CLogOddsGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad8b8a3357bc682ae5949d9e4768709aa"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::cellType" ref="ad8b8a3357bc682ae5949d9e4768709aa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int16_t <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">mrpt::slam::COccupancyGridMap2D::cellType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type of the map cells: </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00110">110</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac8708b0ca86e8cd4ec6193111cf4909c"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::cellTypeUnsigned" ref="ac8708b0ca86e8cd4ec6193111cf4909c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint16_t <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac8708b0ca86e8cd4ec6193111cf4909c">mrpt::slam::COccupancyGridMap2D::cellTypeUnsigned</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00111">111</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2d4a30ba6a4cfba1c9540ebfc2ca190e"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::SmartPtr" ref="a2d4a30ba6a4cfba1c9540ebfc2ca190e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_ptr.html">COccupancyGridMap2DPtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2d4a30ba6a4cfba1c9540ebfc2ca190e">mrpt::slam::COccupancyGridMap2D::SmartPtr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A typedef for the associated smart pointer </p>

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

</div>
</div>
<a class="anchor" id="a5d65008293a7029cf0f615ca9d187787"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::TPairLikelihoodIndex" ref="a5d65008293a7029cf0f615ca9d187787" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::pair&lt;double,<a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5d65008293a7029cf0f615ca9d187787">mrpt::slam::COccupancyGridMap2D::TPairLikelihoodIndex</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary private class. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00695">695</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3b3f3dea9c21f268423707ebb8133073"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::traits_t" ref="a3b3f3dea9c21f268423707ebb8133073" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef detail::logoddscell_traits&lt;TCELL&gt; <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a3b3f3dea9c21f268423707ebb8133073">mrpt::slam::CLogOddsGridMap2D::traits_t</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00070">70</a> of file <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html">CLogOddsGridMap2D.h</a>.</p>

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::TLikelihoodMethod" ref="a9c20551c74e17a4082c29572e56db5e1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9c20551c74e17a4082c29572e56db5e1">mrpt::slam::COccupancyGridMap2D::TLikelihoodMethod</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The type for selecting a likelihood computation method. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1a95a02c9e818f23225a61b58a828bed1b"></a><!-- doxytag: member="lmMeanInformation" ref="a9c20551c74e17a4082c29572e56db5e1a95a02c9e818f23225a61b58a828bed1b" args="" -->lmMeanInformation</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1a3ca355799d98bd1bcc00815cb41bcbc4"></a><!-- doxytag: member="lmRayTracing" ref="a9c20551c74e17a4082c29572e56db5e1a3ca355799d98bd1bcc00815cb41bcbc4" args="" -->lmRayTracing</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1a11621815c435ed51db10a23576cdac2c"></a><!-- doxytag: member="lmConsensus" ref="a9c20551c74e17a4082c29572e56db5e1a11621815c435ed51db10a23576cdac2c" args="" -->lmConsensus</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1a3fccf7695fc59ae53e10e079b6ccdab0"></a><!-- doxytag: member="lmCellsDifference" ref="a9c20551c74e17a4082c29572e56db5e1a3fccf7695fc59ae53e10e079b6ccdab0" args="" -->lmCellsDifference</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1a8b2d704901595037d273c3e9b6236559"></a><!-- doxytag: member="lmLikelihoodField_Thrun" ref="a9c20551c74e17a4082c29572e56db5e1a8b2d704901595037d273c3e9b6236559" args="" -->lmLikelihoodField_Thrun</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1afc7020b15d07152a49b05eff808c5ddc"></a><!-- doxytag: member="lmLikelihoodField_II" ref="a9c20551c74e17a4082c29572e56db5e1afc7020b15d07152a49b05eff808c5ddc" args="" -->lmLikelihoodField_II</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9c20551c74e17a4082c29572e56db5e1ab4f0badb2fb763975a43ee84d70b9bc3"></a><!-- doxytag: member="lmConsensusOWA" ref="a9c20551c74e17a4082c29572e56db5e1ab4f0badb2fb763975a43ee84d70b9bc3" args="" -->lmConsensusOWA</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00584">584</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aff139b0350fa4434f167ad8395eddefd"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::COccupancyGridMap2D" ref="aff139b0350fa4434f167ad8395eddefd" args="(float min_x=&#45;20.0f, float max_x=20.0f, float min_y=&#45;20.0f, float max_y=20.0f, float resolution=0.05f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::COccupancyGridMap2D::COccupancyGridMap2D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_x</em> = <code>-20.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_x</em> = <code>20.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_y</em> = <code>-20.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_y</em> = <code>20.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>resolution</em> = <code>0.05f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="a4e6b7e2c80f5f698f1678eb62b59337b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::~COccupancyGridMap2D" ref="a4e6b7e2c80f5f698f1678eb62b59337b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::slam::COccupancyGridMap2D::~COccupancyGridMap2D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a9305db316250b6bd5edce8ab64f73487"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::_GetBaseClass" ref="a9305db316250b6bd5edce8ab64f73487" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::slam::COccupancyGridMap2D::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afc58cfbfb2beb973ccade2e8921fad90">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="aabd4d4be402cdd01bc8db467f214516a"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::auxParticleFilterCleanUp" ref="aabd4d4be402cdd01bc8db467f214516a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CMetricMap::auxParticleFilterCleanUp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::CMetricMapBuilderRBPF::processActionObservation". </p>
<p>This method should normally do nothing, but in some cases can be used to free auxiliary cached variables. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a20f3250d3a6b02030ab58cfa7e544529">mrpt::slam::CLandmarksMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html#a67dc96e1d740138fa14ca93537fdbdcd">mrpt::slam::CMultiMetricMap</a>.</p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00326">326</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac9e2a4472fb4e41de66ea3857b332b8b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::buildVoronoiDiagram" ref="ac9e2a4472fb4e41de66ea3857b332b8b" args="(float threshold, float robot_size, int x1=0, int x2=0, int y1=0, int y2=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::buildVoronoiDiagram </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>threshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>robot_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x1</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x2</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y1</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y2</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Build the Voronoi diagram of the grid map. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">threshold</td><td>The threshold for binarizing the map. </td></tr>
    <tr><td class="paramname">robot_size</td><td>Size in "units" (meters) of robot, approx. </td></tr>
    <tr><td class="paramname">x1</td><td>Left coordinate of area to be computed. Default, entire map. </td></tr>
    <tr><td class="paramname">x2</td><td>Right coordinate of area to be computed. Default, entire map. </td></tr>
    <tr><td class="paramname">y1</td><td>Top coordinate of area to be computed. Default, entire map. </td></tr>
    <tr><td class="paramname">y2</td><td>Bottom coordinate of area to be computed. Default, entire map. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a618c93040b2292edcbbee92af4863beb" title="Builds a list with the critical points from Voronoi diagram, which must must be built before calling ...">findCriticalPoints</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a614e663954432e3ebe8d0a6e7cc37e2b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::canComputeObservationLikelihood" ref="a614e663954432e3ebe8d0a6e7cc37e2b" args="(const CObservation *obs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::canComputeObservationLikelihood </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if this map is able to compute a sensible likelihood function for this observation (i.e. </p>
<p>an occupancy grid map cannot with an image). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obs</td><td>The observation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#af42355207136d9c7bd4fef8fd82735df" title="Computes the likelihood that a given observation was taken from a given pose in the world being model...">computeObservationLikelihood</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8936d61e45446a74633d00a7ce6b4603">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="ab3b66046cae11313beba57052b852eca"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::canComputeObservationsLikelihood" ref="ab3b66046cae11313beba57052b852eca" args="(const CSensoryFrame &amp;sf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CMetricMap::canComputeObservationsLikelihood </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if this map is able to compute a sensible likelihood function for this observation (i.e. </p>
<p>an occupancy grid map cannot with an image). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sf</td><td>The observations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8936d61e45446a74633d00a7ce6b4603" title="Returns true if this map is able to compute a sensible likelihood function for this observation (i...">canComputeObservationLikelihood</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afe18b3eac9b4ff07b674e0eb74652f5b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::clear" ref="afe18b3eac9b4ff07b674e0eb74652f5b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMap::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Erase all the contents of the map. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_random_field_grid_map2_d.html#a814f4778b6ae7a2f9896311258d11d16">mrpt::slam::CRandomFieldGridMap2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_height_grid_map2_d.html#a77e7ba89a13dd3079dfa46fef82b6b9b">mrpt::slam::CHeightGridMap2D</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_reflectivity_grid_map2_d.html#ae39b4063ba212605e1746508f50acb5a">mrpt::slam::CReflectivityGridMap2D</a>.</p>

<p>Referenced by <a class="el" href="_c_height_grid_map2_d_8h_source.html#l00104">mrpt::slam::CHeightGridMap2D::clear()</a>, and <a class="el" href="_c_reflectivity_grid_map2_d_8h_source.html#l00082">mrpt::slam::CReflectivityGridMap2D::clear()</a>.</p>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::clone" ref="a9ef7857a0b36059c078e195a0a65ac00" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a>* mrpt::utils::CObject::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cloning interface for smart pointers. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable.html#acb2597d6d93b406501d9f3530eb56adf">mrpt::opengl::CRenderizable</a>, and <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable_display_list.html#ac164cb1d2cf682778ce52967cbd56469">mrpt::opengl::CRenderizableDisplayList</a>.</p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00154">154</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5bc762e11e7d37526be13fec909165aa"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::compute3DMatchingRatio" ref="a5bc762e11e7d37526be13fec909165aa" args="(const CMetricMap *otherMap, const CPose3D &amp;otherMapPose, float minDistForCorr=0.10f, float minMahaDistForCorr=2.0f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::compute3DMatchingRatio </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *&#160;</td>
          <td class="paramname"><em>otherMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>otherMapPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>minDistForCorr</em> = <code>0.10f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>minMahaDistForCorr</em> = <code>2.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the ratio in [0,1] of correspondences between "this" and the "otherMap" map, whose 6D pose relative to "this" is "otherMapPose" In the case of a multi-metric map, this returns the average between the maps. </p>
<p>This method always return 0 for grid maps. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">otherMap</td><td>[IN] The other map to compute the matching with. </td></tr>
    <tr><td class="paramname">otherMapPose</td><td>[IN] The 6D pose of the other map as seen from "this". </td></tr>
    <tr><td class="paramname">minDistForCorr</td><td>[IN] The minimum distance between 2 non-probabilistic map elements for counting them as a correspondence. </td></tr>
    <tr><td class="paramname">minMahaDistForCorr</td><td>[IN] The minimum Mahalanobis distance between 2 probabilistic map elements for counting them as a correspondence.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The matching ratio [0,1] </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6329f217aeb92bb0ad787102aff24bdc" title="See the base class for more details: In this class it is implemented as correspondences of the passed...">computeMatchingWith2D</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8d59f040a850470da57f3294e346e69b">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="ac069cccfc247cf79f0535cced10fb7f1"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeClearance" ref="ac069cccfc247cf79f0535cced10fb7f1" args="(int cx, int cy, int *basis_x, int *basis_y, int *nBasis, bool GetContourPoint=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::computeClearance </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>basis_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>basis_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>nBasis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>GetContourPoint</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the clearance of a given cell, and returns its two first basis (closest obstacle) points.Used to build Voronoi and critical points. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The clearance of the cell, in 1/100 of "cell". </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cx</td><td>The cell index </td></tr>
    <tr><td class="paramname">cy</td><td>The cell index </td></tr>
    <tr><td class="paramname">basis_x</td><td>Target buffer for coordinates of basis, having a size of two "ints". </td></tr>
    <tr><td class="paramname">basis_y</td><td>Target buffer for coordinates of basis, having a size of two "ints". </td></tr>
    <tr><td class="paramname">nBasis</td><td>The number of found basis: Can be 0,1 or 2. </td></tr>
    <tr><td class="paramname">GetContourPoint</td><td>If "true" the basis are not returned, but the closest free cells.Default at false. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>Build_VoronoiDiagram </dd></dl>

</div>
</div>
<a class="anchor" id="a0f1733466afb496935e99cdf803b03e5"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeClearance" ref="a0f1733466afb496935e99cdf803b03e5" args="(float x, float y, float maxSearchDistance) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::computeClearance </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxSearchDistance</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An alternative method for computing the clearance of a given location (in meters). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The clearance (distance to closest OCCUPIED cell), in meters. </dd></dl>

</div>
</div>
<a class="anchor" id="aa915ebd786a3b748cebb44e4008185f2"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeEntropy" ref="aa915ebd786a3b748cebb44e4008185f2" args="(TEntropyInfo &amp;info) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::computeEntropy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_entropy_info.html">TEntropyInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>info</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the entropy and related values of this grid map. </p>
<p>The entropy is computed as the summed entropy of each cell, taking them as discrete random variables following a Bernoulli distribution: </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">info</td><td>The output information is returned here. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a27560d8a616fa02f90e718a248f4050b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeLikelihoodField_II" ref="a27560d8a616fa02f90e718a248f4050b" args="(const CPointsMap *pm, const CPose2D *relativePose=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeLikelihoodField_II </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *&#160;</td>
          <td class="paramname"><em>pm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> *&#160;</td>
          <td class="paramname"><em>relativePose</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the likelihood [0,1] of a set of points, given the current grid map as reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pm</td><td>The points map </td></tr>
    <tr><td class="paramname">relativePose</td><td>The relative pose of the points map in this map's coordinates, or NULL for (0,0,0). See "likelihoodOptions" for configuration parameters. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a46991a40330626050e6c3d4423f7e38b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeLikelihoodField_Thrun" ref="a46991a40330626050e6c3d4423f7e38b" args="(const CPointsMap *pm, const CPose2D *relativePose=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeLikelihoodField_Thrun </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *&#160;</td>
          <td class="paramname"><em>pm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> *&#160;</td>
          <td class="paramname"><em>relativePose</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the likelihood [0,1] of a set of points, given the current grid map as reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pm</td><td>The points map </td></tr>
    <tr><td class="paramname">relativePose</td><td>The relative pose of the points map in this map's coordinates, or NULL for (0,0,0). See "likelihoodOptions" for configuration parameters. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6329f217aeb92bb0ad787102aff24bdc"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeMatchingWith2D" ref="a6329f217aeb92bb0ad787102aff24bdc" args="(const CMetricMap *otherMap, const CPose2D &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const CPose2D &amp;angularDistPivotPoint, TMatchingPairList &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::computeMatchingWith2D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *&#160;</td>
          <td class="paramname"><em>otherMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>otherMapPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxDistForCorrespondence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxAngularDistForCorrespondence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>angularDistPivotPoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>correspondencesRatio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>sumSqrDist</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>onlyKeepTheClosest</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>onlyUniqueRobust</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>decimation_other_map_points</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>offset_other_map_points</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See the base class for more details: In this class it is implemented as correspondences of the passed points map to occupied cells. </p>
<p>NOTICE: That the "z" dimension is ignored in the points. Clip the points as appropiated if needed before calling this method.</p>
<dl class="see"><dt><b>See also:</b></dt><dd>computeMatching3DWith </dd></dl>

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aa684de52360d687fb0ee30790f430574">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="a7aafbdbb3f2cb17e14e1af9997c3fa48"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeMatchingWith3D" ref="a7aafbdbb3f2cb17e14e1af9997c3fa48" args="(const CMetricMap *otherMap, const CPose3D &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const CPoint3D &amp;angularDistPivotPoint, TMatchingPairList &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=true, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CMetricMap::computeMatchingWith3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *&#160;</td>
          <td class="paramname"><em>otherMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>otherMapPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxDistForCorrespondence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxAngularDistForCorrespondence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>angularDistPivotPoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>correspondencesRatio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>sumSqrDist</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>onlyKeepTheClosest</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>onlyUniqueRobust</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>decimation_other_map_points</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>offset_other_map_points</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the matchings between this and another 3D points map - method used in 3D-ICP. </p>
<p>This method finds the set of point pairs in each map.</p>
<p>The method is the most time critical one into the ICP algorithm.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">otherMap</td><td>[IN] The other map to compute the matching with. </td></tr>
    <tr><td class="paramname">otherMapPose</td><td>[IN] The pose of the other map as seen from "this". </td></tr>
    <tr><td class="paramname">maxDistForCorrespondence</td><td>[IN] Maximum 2D linear distance between two points to be matched. </td></tr>
    <tr><td class="paramname">maxAngularDistForCorrespondence</td><td>[IN] In radians: The aim is to allow larger distances to more distant correspondences. </td></tr>
    <tr><td class="paramname">angularDistPivotPoint</td><td>[IN] The point used to calculate distances from in both maps. </td></tr>
    <tr><td class="paramname">correspondences</td><td>[OUT] The detected matchings pairs. </td></tr>
    <tr><td class="paramname">correspondencesRatio</td><td>[OUT] The ratio [0,1] of points in otherMap with at least one correspondence. </td></tr>
    <tr><td class="paramname">sumSqrDist</td><td>[OUT] The sum of all matched points squared distances.If undesired, set to NULL, as default. </td></tr>
    <tr><td class="paramname">onlyKeepTheClosest</td><td>[IN] If set to true, only the closest correspondence will be returned. If false (default) all are returned.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8d59f040a850470da57f3294e346e69b" title="Computes the ratio in [0,1] of correspondences between &quot;this&quot; and the &quot;otherMap&quot; map, whose 6D pose relative to &quot;this&quot; is &quot;otherMapPose&quot; In the case of a multi-metric map, this returns the average between the maps.">compute3DMatchingRatio</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a64e5a209ec58036ff3c74866efd6ec72">mrpt::slam::CPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00272">272</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.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_source.html#l00131">THROW_EXCEPTION</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a6adfc3df476a7edafaca40444d8dad04"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood" ref="a6adfc3df476a7edafaca40444d8dad04" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CMetricMap::computeObservationLikelihood </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the log-likelihood of a given observation given an arbitrary robot 2D pose. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">takenFrom</td><td>The robot's pose the observation is supposed to be taken from. </td></tr>
    <tr><td class="paramname">obs</td><td>The observation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>This method returns a log-likelihood.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>Used in particle filter algorithms, see: CMultiMetricMapPDF::update </dd></dl>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00175">175</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="af42355207136d9c7bd4fef8fd82735df"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood" ref="af42355207136d9c7bd4fef8fd82735df" args="(const CObservation *obs, const CPose3D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the likelihood that a given observation was taken from a given pose in the world being modeled with this map. </p>
<p>See "likelihoodOptions" for configuration parameters.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">takenFrom</td><td>The robot's pose the observation is supposed to be taken from. </td></tr>
    <tr><td class="paramname">obs</td><td>The observation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>This method returns a likelihood in the range [0,1].</dd></dl>
<p>Used in particle filter algorithms, see: <a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_capable.html#a0b464ec72adbfc8a9aea3cf4aa6bdf9e" title="Performs the prediction stage of the Particle Filter.">CMultiMetricMapPDF::prediction_and_update</a></p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ae963991b98683b067b3cf041591535b9">likelihoodOptions</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac5a9c19bcd33e7b9a674a02ae32c79f0">likelihoodOutputs</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad5cefa1e3e6efb0cff473a32c5ed6009">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="ae5031331eaaa39ff254f75dabb5cdbfc"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_CellsDifference" ref="ae5031331eaaa39ff254f75dabb5cdbfc" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_CellsDifference </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood". </p>

</div>
</div>
<a class="anchor" id="a2d21305d241ebe46ba7de8e4d1ae8db2"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_Consensus" ref="a2d21305d241ebe46ba7de8e4d1ae8db2" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_Consensus </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood" (This method is the Range-Scan Likelihood Consensus for gridmaps, see the ICRA2007 paper by Blanco et al.) </p>

</div>
</div>
<a class="anchor" id="adee5bf50b3e73c4beaddb63b99ffb8ae"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_ConsensusOWA" ref="adee5bf50b3e73c4beaddb63b99ffb8ae" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_ConsensusOWA </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood" TODO: This method is described in.... </p>

</div>
</div>
<a class="anchor" id="a1a4b4359a3021abff8681c3504e1589b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_likelihoodField_II" ref="a1a4b4359a3021abff8681c3504e1589b" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_likelihoodField_II </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood". </p>

</div>
</div>
<a class="anchor" id="a15a4881a32643d73e7c984a80903a1ea"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_likelihoodField_Thrun" ref="a15a4881a32643d73e7c984a80903a1ea" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_likelihoodField_Thrun </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood". </p>

</div>
</div>
<a class="anchor" id="a3e5739777488ff0ec136cead809c0b33"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_MI" ref="a3e5739777488ff0ec136cead809c0b33" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_MI </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood". </p>

</div>
</div>
<a class="anchor" id="a245c0175828f8fda9c62212188b47d62"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_rayTracing" ref="a245c0175828f8fda9c62212188b47d62" args="(const CObservation *obs, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::computeObservationLikelihood_rayTracing </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One of the methods that can be selected for implementing "computeObservationLikelihood". </p>

</div>
</div>
<a class="anchor" id="a8184371fde28bc35a9ec461240b83b43"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeObservationsLikelihood" ref="a8184371fde28bc35a9ec461240b83b43" args="(const CSensoryFrame &amp;sf, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CMetricMap::computeObservationsLikelihood </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the sum of the log-likelihoods of each individual observation within a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot; taken by the robot approximat...">mrpt::slam::CSensoryFrame</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">takenFrom</td><td>The robot's pose the observation is supposed to be taken from. </td></tr>
    <tr><td class="paramname">sf</td><td>The set of observations in a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot; taken by the robot approximat...">CSensoryFrame</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>This method returns a log-likelihood. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ab3b66046cae11313beba57052b852eca" title="Returns true if this map is able to compute a sensible likelihood function for this observation (i...">canComputeObservationsLikelihood</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af9eb6e389af0d10d9d9b3d1460541581"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computePathCost" ref="af9eb6e389af0d10d9d9b3d1460541581" args="(float x1, float y1, float x2, float y2) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::computePathCost </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the 'cost' of traversing a segment of the map according to the occupancy of traversed cells. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>This returns '1-mean(traversed cells occupancy)', i.e. 0.5 for unknown cells, 1 for a free path. </dd></dl>

</div>
</div>
<a class="anchor" id="aa41e7e0063006c8c7aece28e026711d9"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::Create" ref="aa41e7e0063006c8c7aece28e026711d9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_ptr.html">COccupancyGridMap2DPtr</a> mrpt::slam::COccupancyGridMap2D::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac79595c88f37063ed0eb455afbe4174a"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::CreateObject" ref="ac79595c88f37063ed0eb455afbe4174a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::slam::COccupancyGridMap2D::CreateObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afd22aa5ef275f2b88e81ade481befcea"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::direction2idx" ref="afd22aa5ef275f2b88e81ade481befcea" args="(int dx, int dy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::direction2idx </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dy</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the index [0,7] of the given movement, or. </p>
<p>-1 if invalid one. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a063d5c951449918a93e9262861086061" title="Used to store the 8 possible movements from a cell to the sorrounding ones.Filled in the constructor...">direccion_vecino_x</a>,<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a677d53e00fc6f4c862c2a8452b80f7c8">direccion_vecino_y</a>,<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afc7559c6d33cdc280ac9ff8d4dcb3d03" title="Returns a byte with the occupancy of the 8 sorrounding cells.">GetNeighborhood</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a5e90b6efdf7c8646c43619f805d1447d"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::duplicate" ref="a5e90b6efdf7c8646c43619f805d1447d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::slam::COccupancyGridMap2D::duplicate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#aa1070e173c5f7e307b09c53f1fd256e2">mrpt::utils::CObject</a>.</p>

</div>
</div>
<a class="anchor" id="a534695890364f4b916bba07dad311bcf"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::duplicateGetSmartPtr" ref="a534695890364f4b916bba07dad311bcf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a> mrpt::utils::CObject::duplicateGetSmartPtr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). </p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00151">151</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5fdb25a96ab9b349bc37c78ac88d0034"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::fill" ref="a5fdb25a96ab9b349bc37c78ac88d0034" args="(float default_value=0.5f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::fill </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>default_value</em> = <code>0.5f</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fills all the cells with a default value. </p>

</div>
</div>
<a class="anchor" id="a618c93040b2292edcbbee92af4863beb"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::findCriticalPoints" ref="a618c93040b2292edcbbee92af4863beb" args="(float filter_distance)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::findCriticalPoints </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>filter_distance</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Builds a list with the critical points from Voronoi diagram, which must must be built before calling this method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filter_distance</td><td>The minimum distance between two critical points. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac9e2a4472fb4e41de66ea3857b332b8b" title="Build the Voronoi diagram of the grid map.">buildVoronoiDiagram</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a54e50aeb53e37d2531754af74ee1db30"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::freeMap" ref="a54e50aeb53e37d2531754af74ee1db30" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::freeMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees the dynamic memory buffers of map. </p>

</div>
</div>
<a class="anchor" id="aacf8986a3f7dd1b00b93ef39bf2b85d4"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getArea" ref="aacf8986a3f7dd1b00b93ef39bf2b85d4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::COccupancyGridMap2D::getArea </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the area of the gridmap, in square meters. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00338">338</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="bits_8h_source.html#l00161">mrpt::utils::square()</a>.</p>

</div>
</div>
<a class="anchor" id="a6edbcaa204f700a121570ffe42932df5"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getAs3DObject" ref="a6edbcaa204f700a121570ffe42932df5" args="(mrpt::opengl::CSetOfObjectsPtr &amp;outObj) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::getAs3DObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1opengl_1_1_c_set_of_objects_ptr.html">mrpt::opengl::CSetOfObjectsPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>outObj</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a 3D plane with its texture being the occupancy grid and transparency proportional to "uncertainty" (i.e. </p>
<p>a value of 0.5 is fully transparent) </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aca6f34ceb20942667a67cdd5723f87df">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="ad8257c706d5bf69589b028773329dbe1"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getAsImage" ref="ad8257c706d5bf69589b028773329dbe1" args="(utils::CImage &amp;img, bool verticalFlip=false, bool forceRGB=false, bool tricolor=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::getAsImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>verticalFlip</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>forceRGB</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>tricolor</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab259b121700cc776f4303702fded2f0c" title="Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if ...">getAsImageFiltered</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab259b121700cc776f4303702fded2f0c"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getAsImageFiltered" ref="ab259b121700cc776f4303702fded2f0c" args="(utils::CImage &amp;img, bool verticalFlip=false, bool forceRGB=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::getAsImageFiltered </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>verticalFlip</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>forceRGB</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) - This method filters the image for easy feature detection If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8257c706d5bf69589b028773329dbe1" title="Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if ...">getAsImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae7b0688c0e2c0d75554e22b739649463"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getAsSimplePointsMap" ref="ae7b0688c0e2c0d75554e22b739649463" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a>* mrpt::slam::CMetricMap::getAsSimplePointsMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points map, return it. </p>
<p>Otherwise, return NULL </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9846b0622be65148a62575533919eaa0">mrpt::slam::CPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html#a9a29113ddce6422f468ef5aa716462ef">mrpt::slam::CMultiMetricMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a6c5f6976255dc9b50b218af23f8ea7bf">mrpt::slam::CSimplePointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00346">346</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ace4e7cc2a2f070d556c5074117a3aa2f"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getAsSimplePointsMap" ref="ace4e7cc2a2f070d556c5074117a3aa2f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a>* mrpt::slam::CMetricMap::getAsSimplePointsMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a64c588c08d8ddbaf80c689c2ab06a72a">mrpt::slam::CPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html#a0e7cd4c36b7e61e041b5bad0dee83a70">mrpt::slam::CMultiMetricMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a340ffc456415944bd87fc75c370eb575">mrpt::slam::CSimplePointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00347">347</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1b5d506c42ba97e8d65ecdeebb36c99a"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getBasisCell" ref="a1b5d506c42ba97e8d65ecdeebb36c99a" args="(int x, int y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char mrpt::slam::COccupancyGridMap2D::getBasisCell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads a cell in the "basis" maps.Used for Voronoi calculation. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00464">464</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="_c_dynamic_grid_8h_source.html#l00236">mrpt::utils::CDynamicGrid::cellByIndex()</a>, <a class="el" href="mrpt__macros_8h_source.html#l00290">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00289">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00254">mrpt::utils::CDynamicGrid::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00258">mrpt::utils::CDynamicGrid::getSizeY()</a>.</p>

</div>
</div>
<a class="anchor" id="ad1ad5b935dfd9a9c9d1ce8ad6f9c5307"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getBasisMap" ref="ad1ad5b935dfd9a9c9d1ce8ad6f9c5307" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt;uint8_t&gt;&amp; mrpt::slam::COccupancyGridMap2D::getBasisMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the auxiliary "basis" map built while building the Voronoi diagram. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac9e2a4472fb4e41de66ea3857b332b8b" title="Build the Voronoi diagram of the grid map.">buildVoronoiDiagram</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00769">769</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5de84f1363c3dabe43bfa13d9b4ad823"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getCell" ref="a5de84f1363c3dabe43bfa13d9b4ad823" args="(int x, int y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getCell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the real valued [0,1] contents of a cell, given its index. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00419">419</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="aae99538b4cffdb47735a038979f85188"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getCell_nocheck" ref="aae99538b4cffdb47735a038979f85188" args="(int x, int y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getCell_nocheck </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the real valued [0,1] contents of a cell, given its index. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00183">183</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="afc7559c6d33cdc280ac9ff8d4dcb3d03"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::GetNeighborhood" ref="afc7559c6d33cdc280ac9ff8d4dcb3d03" args="(int cx, int cy) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char mrpt::slam::COccupancyGridMap2D::GetNeighborhood </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a byte with the occupancy of the 8 sorrounding cells. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cx</td><td>The cell index </td></tr>
    <tr><td class="paramname">cy</td><td>The cell index </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afd22aa5ef275f2b88e81ade481befcea" title="Returns the index [0,7] of the given movement, or.">direction2idx</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a774ac3243e0de2e8444808c15b6d0e11"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getPos" ref="a774ac3243e0de2e8444808c15b6d0e11" args="(float x, float y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getPos </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the real valued [0,1] contents of a cell, given its coordinates. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00441">441</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a91898b9f7dcd3a8e7f0003c623147276"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getResolution" ref="a91898b9f7dcd3a8e7f0003c623147276" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getResolution </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the resolution of the grid map. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00366">366</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad75129f6fcaba8d1a7699bc4056bd914"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getRow" ref="ad75129f6fcaba8d1a7699bc4056bd914" args="(int cy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>* mrpt::slam::COccupancyGridMap2D::getRow </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00429">429</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="adbe973dc21d3f4eb798d2986c5aa6e92"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getRow" ref="adbe973dc21d3f4eb798d2986c5aa6e92" args="(int cy) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>* mrpt::slam::COccupancyGridMap2D::getRow </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00433">433</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a317c9203c516c858b5601a62ce1d7477"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::GetRuntimeClass" ref="a317c9203c516c858b5601a62ce1d7477" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::slam::COccupancyGridMap2D::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns information about the class of an object in runtime. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a7ae0fed73fe1304f4fbb196bb3fe3400">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="a5f96a77f7402a402f41964bc38b86393"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getSizeX" ref="a5f96a77f7402a402f41964bc38b86393" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int mrpt::slam::COccupancyGridMap2D::getSizeX </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the horizontal size of grid map in cells count. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00342">342</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="af681da104343ef9dd996cd54da8c4e05"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getSizeY" ref="af681da104343ef9dd996cd54da8c4e05" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int mrpt::slam::COccupancyGridMap2D::getSizeY </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the vertical size of grid map in cells count. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00346">346</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad5729a26efcc0f9633f82acaf4384b00"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getVoroniClearance" ref="ad5729a26efcc0f9633f82acaf4384b00" args="(int cx, int cy) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t mrpt::slam::COccupancyGridMap2D::getVoroniClearance </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads a the clearance of a cell (in centimeters), after building the Voronoi diagram with <em>buildVoronoiDiagram</em>. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00740">740</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00290">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00289">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00254">mrpt::utils::CDynamicGrid::getSizeX()</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00258">mrpt::utils::CDynamicGrid::getSizeY()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00236">mrpt::utils::CDynamicGrid::cellByIndex()</a>.</p>

</div>
</div>
<a class="anchor" id="a674df8431ce288f27ab1d559ff2c42c0"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getVoronoiDiagram" ref="a674df8431ce288f27ab1d559ff2c42c0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt;uint16_t&gt;&amp; mrpt::slam::COccupancyGridMap2D::getVoronoiDiagram </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the Voronoi diagram; each cell contains the distance to its closer obstacle, or 0 if not part of the Voronoi diagram. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac9e2a4472fb4e41de66ea3857b332b8b" title="Build the Voronoi diagram of the grid map.">buildVoronoiDiagram</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00772">772</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a365bd65fa36738c134d3d5c1f8e5c5dc"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getXMax" ref="a365bd65fa36738c134d3d5c1f8e5c5dc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getXMax </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the "x" coordinate of right side of grid map. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00354">354</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a080c72c132572f5f8ad92434dbf4440b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getXMin" ref="a080c72c132572f5f8ad92434dbf4440b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getXMin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the "x" coordinate of left side of grid map. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00350">350</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4027f3da4015ca35c0a11266454c6977"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getYMax" ref="a4027f3da4015ca35c0a11266454c6977" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getYMax </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the "y" coordinate of bottom side of grid map. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00362">362</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9779b623cfb4b9576e5352f7087b90e8"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::getYMin" ref="a9779b623cfb4b9576e5352f7087b90e8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::getYMin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the "y" coordinate of top side of grid map. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00358">358</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1b633754880624af54dd5d1842a18fc1"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::H" ref="a1b633754880624af54dd5d1842a18fc1" args="(double p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double mrpt::slam::COccupancyGridMap2D::H </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Entropy computation internal function: </p>

</div>
</div>
<a class="anchor" id="a1c1e8c7d0d184ccdaa7d5a0ee5184e1e"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::hasSubscribers" ref="a1c1e8c7d0d184ccdaa7d5a0ee5184e1e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CObservable::hasSubscribers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Can be called by a derived class before preparing an event for publishing with <em>publishEvent</em> to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read. </p>

<p>Definition at line <a class="el" href="_c_observable_8h_source.html#l00069">69</a> of file <a class="el" href="_c_observable_8h_source.html">CObservable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a244c52d508f9f8485b9b501ca2041744"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::idx2x" ref="a244c52d508f9f8485b9b501ca2041744" args="(const size_t cx) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::idx2x </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>cx</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Transform a cell index into a coordinate value. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00378">378</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a44bde0674e018f6919fbce4846e117dd"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::idx2y" ref="a44bde0674e018f6919fbce4846e117dd" args="(const size_t cy) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::COccupancyGridMap2D::idx2y </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>cy</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00379">379</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad1d3f22228d6dbdb3c31c132713bf782"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::insertObservation" ref="ad1d3f22228d6dbdb3c31c132713bf782" args="(const CObservation *obs, const CPose3D *robotPose=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CMetricMap::insertObservation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *&#160;</td>
          <td class="paramname"><em>robotPose</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert the observation information into this map. </p>
<p>This method must be implemented in derived classes. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obs</td><td>The observation </td></tr>
    <tr><td class="paramname">robotPose</td><td>The 3D pose of the robot mobile base in the map reference system, or NULL (default) if you want to use the origin.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00133">133</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7cb614f5ec634ec6f6a20b14163e5b07"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::insertObservationPtr" ref="a7cb614f5ec634ec6f6a20b14163e5b07" args="(const CObservationPtr &amp;obs, const CPose3D *robotPose=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CMetricMap::insertObservationPtr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *&#160;</td>
          <td class="paramname"><em>robotPose</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A wrapper for smart pointers, just calls the non-smart pointer version. </p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00147">147</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.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_source.html#l00131">THROW_EXCEPTION</a>, <a class="el" href="_c_observation_8h_source.html#l00067">mrpt::slam::CObservationPtr::pointer()</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a358c5b280e2ad877e1c7caa4be0687f4"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::internal_clear" ref="a358c5b280e2ad877e1c7caa4be0687f4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::COccupancyGridMap2D::internal_clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear the map: It set all cells to their default occupancy value (0.5), without changing the resolution (the grid extension is reset to the default values). </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a9c19a7f400d7edb087a81e28cafb39d1">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="a4a20d00ac342a9e386ca12ee9b585e25"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::internal_insertObservation" ref="a4a20d00ac342a9e386ca12ee9b585e25" args="(const CObservation *obs, const CPose3D *robotPose=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool mrpt::slam::COccupancyGridMap2D::internal_insertObservation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"><em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *&#160;</td>
          <td class="paramname"><em>robotPose</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert the observation information into this map. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obs</td><td>The observation </td></tr>
    <tr><td class="paramname">robotPose</td><td>The 3D pose of the robot mobile base in the map reference system, or NULL (default) if you want to use CPose2D(0,0,deg)</td></tr>
  </table>
  </dd>
</dl>
<p>After successfull execution, "lastObservationInsertionInfo" is updated.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1cbb040250b2c31874f99bce0bd978b4" title="With this struct options are provided to the observation insertion process.">insertionOptions</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aab88fec1ad02cceaaaf74c02d4e6f68a">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="a6b471182a3f3ddd6aefda6a9b97f6648"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::isEmpty" ref="a6b471182a3f3ddd6aefda6a9b97f6648" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::isEmpty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true upon map construction or after calling <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b" title="Erase all the contents of the map.">clear()</a>, the return changes to false upon successful <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">insertObservation()</a> or any other method to load data in the map. </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ab4243c534f004d3397c82f5b5e7d46a8">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="a8816c642fb95f3251e7f808a8266c3b2"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::isStaticCell" ref="a8816c642fb95f3251e7f808a8266c3b2" args="(int cx, int cy, float threshold=0.7f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::isStaticCell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>threshold</em> = <code>0.7f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00446">446</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad542af3288933578bb5f82935dff6bdb"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::isStaticPos" ref="ad542af3288933578bb5f82935dff6bdb" args="(float x, float y, float threshold=0.7f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::isStaticPos </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>threshold</em> = <code>0.7f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns "true" if cell is "static", i.e.if its occupancy is below a given threshold. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00445">445</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2db2fbd3c4e985ffccc58c440c1b2ac2"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::l2p" ref="a2db2fbd3c4e985ffccc58c440c1b2ac2" args="(const cellType l)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static float mrpt::slam::COccupancyGridMap2D::l2p </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td>
          <td class="paramname"><em>l</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales an integer representation of the log-odd into a real valued probability in [0,1], using p=exp(l)/(1+exp(l)) </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00388">388</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00223">mrpt::slam::CLogOddsGridMapLUT::l2p()</a>.</p>

</div>
</div>
<a class="anchor" id="a0ee658a6a2c99fd318e891471abba304"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::l2p_255" ref="a0ee658a6a2c99fd318e891471abba304" args="(const cellType l)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint8_t mrpt::slam::COccupancyGridMap2D::l2p_255 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td>
          <td class="paramname"><em>l</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales an integer representation of the log-odd into a linear scale [0,255], using p=exp(l)/(1+exp(l)) </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00395">395</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00232">mrpt::slam::CLogOddsGridMapLUT::l2p_255()</a>.</p>

</div>
</div>
<a class="anchor" id="a53da285d710cfe6610bcd23187fd5a76"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::laserScanSimulator" ref="a53da285d710cfe6610bcd23187fd5a76" args="(CObservation2DRangeScan &amp;inout_Scan, const CPose2D &amp;robotPose, float threshold=0.5f, size_t N=361, float noiseStd=0, unsigned int decimation=1, float angleNoiseStd=DEG2RAD(0)) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::laserScanSimulator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>inout_Scan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>robotPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>threshold</em> = <code>0.5f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>N</em> = <code>361</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noiseStd</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>decimation</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angleNoiseStd</em> = <code>DEG2RAD(0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simulates a laser range scan into the current grid map. </p>
<p>The simulated scan is stored in a <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html" title="A &quot;CObservation&quot;-derived class that represents a 2D range scan measurement (typically from a laser sc...">CObservation2DRangeScan</a> object, which is also used to pass some parameters: all previously stored characteristics (as aperture,...) are taken into account for simulation. Only a few more parameters are needed. Additive gaussian noise can be optionally added to the simulated scan. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inout_Scan</td><td>[IN/OUT] This must be filled with desired parameters before calling, and will contain the scan samples on return. </td></tr>
    <tr><td class="paramname">robotPose</td><td>[IN] The robot pose in this map coordinates. Recall that sensor pose relative to this robot pose must be specified in the observation object. </td></tr>
    <tr><td class="paramname">threshold</td><td>[IN] The minimum occupancy threshold to consider a cell to be occupied, for example 0.5. </td></tr>
    <tr><td class="paramname">N</td><td>[IN] The count of range scan "rays", by default to 361. </td></tr>
    <tr><td class="paramname">noiseStd</td><td>[IN] The standard deviation of measurement noise. If not desired, set to 0. </td></tr>
    <tr><td class="paramname">decimation</td><td>[IN] The rays that will be simulated are at indexes: 0, D, 2D, 3D, ... Default is D=1 </td></tr>
    <tr><td class="paramname">angleNoiseStd</td><td>[IN] The sigma of an optional Gaussian noise added to the angles at which ranges are measured (in radians).</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aa760dd419d1c98d1fd36911f914b8902" title="Simulates the observations of a sonar rig into the current grid map.">sonarSimulator</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7e2b1c6b8b276800d0ca6f592c2674b5"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::loadFromBitmap" ref="a7e2b1c6b8b276800d0ca6f592c2674b5" args="(const mrpt::utils::CImage &amp;img, float resolution, float xCentralPixel=&#45;1, float yCentralPixel=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::loadFromBitmap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">mrpt::utils::CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>xCentralPixel</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>yCentralPixel</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load the gridmap from a image in a file (the format can be any supported by <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6" title="Load image from a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::loadFromFile</a>). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img</td><td>The image. Only a grayscale image will be used, so RGB components will be mixed if a color image is passed. </td></tr>
    <tr><td class="paramname">resolution</td><td>The size of a pixel (cell), in meters. Recall cells are always squared, so just a dimension is needed. </td></tr>
    <tr><td class="paramname">xCentralPixel</td><td>The "x" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. </td></tr>
    <tr><td class="paramname">yCentralPixel</td><td>The "y" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a86038bebc10ead8ab27b2b7d1d6957d8" title="Load the gridmap from a image in a file (the format can be any supported by CImage::loadFromFile).">loadFromBitmapFile</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a86038bebc10ead8ab27b2b7d1d6957d8"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::loadFromBitmapFile" ref="a86038bebc10ead8ab27b2b7d1d6957d8" args="(const std::string &amp;file, float resolution, float xCentralPixel=&#45;1, float yCentralPixel=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::loadFromBitmapFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>xCentralPixel</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>yCentralPixel</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load the gridmap from a image in a file (the format can be any supported by <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6" title="Load image from a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::loadFromFile</a>). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>The file to be loaded. </td></tr>
    <tr><td class="paramname">resolution</td><td>The size of a pixel (cell), in meters. Recall cells are always squared, so just a dimension is needed. </td></tr>
    <tr><td class="paramname">xCentralPixel</td><td>The "x" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. </td></tr>
    <tr><td class="paramname">yCentralPixel</td><td>The "y" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7e2b1c6b8b276800d0ca6f592c2674b5" title="Load the gridmap from a image in a file (the format can be any supported by CImage::loadFromFile).">loadFromBitmap</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9fbc1945a342365600bf352ec89fc617"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::loadFromProbabilisticPosesAndObservations" ref="a9fbc1945a342365600bf352ec89fc617" args="(const CSimpleMap &amp;Map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMap::loadFromProbabilisticPosesAndObservations </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;&#160;</td>
          <td class="paramname"><em>Map</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map. </p>
<p>This is automaticed invoking "insertObservation" for each observation at the mean 3D robot pose as given by the "poses::CPosePDF" in the <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">insertObservation</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</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>Some internal steps in invoked methods can raise exceptions on invalid parameters, etc... </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aedf155237d3fe3d595994b9659a4e688"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::loadFromSimpleMap" ref="aedf155237d3fe3d595994b9659a4e688" args="(const CSimpleMap &amp;Map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMap::loadFromSimpleMap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;&#160;</td>
          <td class="paramname"><em>Map</em></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map. </p>
<p>This is automaticed invoking "insertObservation" for each observation at the mean 3D robot pose as given by the "poses::CPosePDF" in the <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">insertObservation</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</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>Some internal steps in invoked methods can raise exceptions on invalid parameters, etc... </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00124">124</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a79a95d31a9a33c998592bdba788ab80f"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::OnPostSuccesfulInsertObs" ref="a79a95d31a9a33c998592bdba788ab80f" args="(const CObservation *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::COccupancyGridMap2D::OnPostSuccesfulInsertObs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See base class. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a75f844879662ac04588a1eda33432a77">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="ab5145eccde0c7bb6d216b14f46be03bd"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::p2l" ref="ab5145eccde0c7bb6d216b14f46be03bd" args="(const float p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> mrpt::slam::COccupancyGridMap2D::p2l </td>
          <td>(</td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales a real valued probability in [0,1] to an integer representation of: log(p)-log(1-p) in the valid range of cellType. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00402">402</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00241">mrpt::slam::CLogOddsGridMapLUT::p2l()</a>.</p>

</div>
</div>
<a class="anchor" id="a0c384e00c06199bc2ff37ff5ecb520c9"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::publishEvent" ref="a0c384e00c06199bc2ff37ff5ecb520c9" args="(const mrptEvent &amp;e) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CObservable::publishEvent </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td> const<code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called when you want this object to emit an event to all the observers currently subscribed to this object. </p>

</div>
</div>
<a class="anchor" id="a73ba83035a64939cdc3aa1c0dfed23ec"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::readFromStream" ref="a73ba83035a64939cdc3aa1c0dfed23ec" args="(mrpt::utils::CStream &amp;in, int version)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CSerializable::readFromStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>version</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>The input binary stream where the object data must read from. </td></tr>
    <tr><td class="paramname">version</td><td>The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. </td></tr>
  </table>
  </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>On any error, see <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html#a1b8cd3d084b5a95a3f65c6eed6e7cc6d" title="Reads a block of bytes from the stream into Buffer On any error, or if ZERO bytes are read...">CStream::ReadBuffer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#a0194e57ec48c1dfc6aa00c23d3409143">mrpt::math::CMatrixD</a>, and <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a12db95e8c32d48d2d2483936dec516a7">mrpt::math::CMatrix</a>.</p>

</div>
</div>
<a class="anchor" id="a1232d285cf713134549eb4d409ca9dfa"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::resizeGrid" ref="a1232d285cf713134549eb4d409ca9dfa" args="(float new_x_min, float new_x_max, float new_y_min, float new_y_max, float new_cells_default_value=0.5f, bool additionalMargin=true) MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::resizeGrid </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>new_x_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>new_x_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>new_y_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>new_y_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>new_cells_default_value</em> = <code>0.5f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>additionalMargin</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the size of gridmap, maintaining previous contents. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">new_x_min</td><td>The "x" coordinates of new left most side of grid. </td></tr>
    <tr><td class="paramname">new_x_max</td><td>The "x" coordinates of new right most side of grid. </td></tr>
    <tr><td class="paramname">new_y_min</td><td>The "y" coordinates of new top most side of grid. </td></tr>
    <tr><td class="paramname">new_y_max</td><td>The "y" coordinates of new bottom most side of grid. </td></tr>
    <tr><td class="paramname">new_cells_default_value</td><td>The value of the new cells, tipically 0.5. </td></tr>
    <tr><td class="paramname">additionalMargin</td><td>If set to true (default), an additional margin of a few meters will be added to the grid, ONLY if the new coordinates are larger than current ones. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6ce4de58b0640952af8663316fe68a9b" title="Change the size of gridmap, erasing all its previous contents.">setSize</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afedc83988c5c47ac856bec2df29868e6"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::saveAsBitmapFile" ref="afedc83988c5c47ac856bec2df29868e6" args="(const std::string &amp;file) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::saveAsBitmapFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Saves the gridmap as a graphical file (BMP,PNG,...). </p>
<p>The format will be derived from the file extension (see <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1b64eea6332fce6366c859d210b3e3d5" title="Save the image to a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::saveToFile</a> ) </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error. </dd></dl>

</div>
</div>
<a class="anchor" id="ad77412cb0cf67e6dbea85c132892bac5"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::saveAsBitmapFileWithLandmarks" ref="ad77412cb0cf67e6dbea85c132892bac5" args="(const std::string &amp;file, const CLANDMARKSMAP *landmarks, bool addTextLabels=false, const mrpt::utils::TColor &amp;marks_color=mrpt::utils::TColor(0, 0, 255)) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CLANDMARKSMAP &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::COccupancyGridMap2D::saveAsBitmapFileWithLandmarks </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CLANDMARKSMAP *&#160;</td>
          <td class="paramname"><em>landmarks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>addTextLabels</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> &amp;&#160;</td>
          <td class="paramname"><em>marks_color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(0,0,255)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Saves the gridmap as a graphical bitmap file, 8 bit gray scale, 1 pixel is 1 cell, and with an overlay of landmarks. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The template parameter CLANDMARKSMAP is assumed to be <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html" title="A class for storing a map of 3D probabilistic landmarks.">mrpt::slam::CLandmarksMap</a> normally. </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error. </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00929">929</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="namespacemrpt.html#a3a27af794b658df5491e2b7678f8ccb8">mrpt::format()</a>, <a class="el" href="_t_color_8h_source.html#l00056">mrpt::utils::TColor::black</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="ae91fe6572724dc469fb84aa22d44eb83"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences" ref="ae91fe6572724dc469fb84aa22d44eb83" args="(const std::string &amp;fileName, const COccupancyGridMap2D *m1, const COccupancyGridMap2D *m2, const TMatchingPairList &amp;corrs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool mrpt::slam::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *&#160;</td>
          <td class="paramname"><em>m1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *&#160;</td>
          <td class="paramname"><em>m2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>corrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Saves a composite image with two gridmaps and lines representing a set of correspondences between them. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac663a5d4033a5fedcb947836c2d6b0c9" title="Saves a composite image with two gridmaps and numbers for the correspondences between them...">saveAsEMFTwoMapsWithCorrespondences</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error. </dd></dl>

</div>
</div>
<a class="anchor" id="ac663a5d4033a5fedcb947836c2d6b0c9"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences" ref="ac663a5d4033a5fedcb947836c2d6b0c9" args="(const std::string &amp;fileName, const COccupancyGridMap2D *m1, const COccupancyGridMap2D *m2, const TMatchingPairList &amp;corrs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool mrpt::slam::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *&#160;</td>
          <td class="paramname"><em>m1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *&#160;</td>
          <td class="paramname"><em>m2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>corrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Saves a composite image with two gridmaps and numbers for the correspondences between them. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ae91fe6572724dc469fb84aa22d44eb83" title="Saves a composite image with two gridmaps and lines representing a set of correspondences between the...">saveAsBitmapTwoMapsWithCorrespondences</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error. </dd></dl>

</div>
</div>
<a class="anchor" id="a351d915efb5fcf5e16fb48d28745663c"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::saveMetricMapRepresentationToFile" ref="a351d915efb5fcf5e16fb48d28745663c" args="(const std::string &amp;filNamePrefix) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::saveMetricMapRepresentationToFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>filNamePrefix</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface). </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ae53f6697d660d43ebaaf8621945ebef0">mrpt::slam::CMetricMap</a>.</p>

</div>
</div>
<a class="anchor" id="af85c888dad3661272c75720acac785e4"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setBasisCell" ref="af85c888dad3661272c75720acac785e4" args="(int x, int y, uint8_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setBasisCell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change a cell in the "basis" maps.Used for Voronoi calculation. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00450">450</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="_c_dynamic_grid_8h_source.html#l00236">mrpt::utils::CDynamicGrid::cellByIndex()</a>, <a class="el" href="mrpt__macros_8h_source.html#l00290">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00289">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00254">mrpt::utils::CDynamicGrid::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00258">mrpt::utils::CDynamicGrid::getSizeY()</a>.</p>

</div>
</div>
<a class="anchor" id="a5ca93b2d3b8fac353a17ea79cf953efd"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setCell" ref="a5ca93b2d3b8fac353a17ea79cf953efd" args="(int x, int y, float value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setCell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the contents [0,1] of a cell, given its index. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00409">409</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a13550e4fa84ccd41e3c4d525f1d09fc6"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setCell_nocheck" ref="a13550e4fa84ccd41e3c4d525f1d09fc6" args="(int x, int y, float value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setCell_nocheck </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the contents [0,1] of a cell, given its index. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00176">176</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9ef4135b6116018d807cbfd26cb613f5"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setPos" ref="a9ef4135b6116018d807cbfd26cb613f5" args="(float x, float y, float value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setPos </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the contents [0,1] of a cell, given its coordinates. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00437">437</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a099c4d1b2bb1d2d51d5e19abec266fcc"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setRawCell" ref="a099c4d1b2bb1d2d51d5e19abec266fcc" args="(unsigned int cellIndex, cellType b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setRawCell </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>cellIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes a cell by its absolute index (Do not use it normally) </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00190">190</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6ce4de58b0640952af8663316fe68a9b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setSize" ref="a6ce4de58b0640952af8663316fe68a9b" args="(float x_min, float x_max, float y_min, float y_max, float resolution, float default_value=0.5f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setSize </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>default_value</em> = <code>0.5f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the size of gridmap, erasing all its previous contents. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x_min</td><td>The "x" coordinates of left most side of grid. </td></tr>
    <tr><td class="paramname">x_max</td><td>The "x" coordinates of right most side of grid. </td></tr>
    <tr><td class="paramname">y_min</td><td>The "y" coordinates of top most side of grid. </td></tr>
    <tr><td class="paramname">y_max</td><td>The "y" coordinates of bottom most side of grid. </td></tr>
    <tr><td class="paramname">resolution</td><td>The new size of cells. </td></tr>
    <tr><td class="paramname">default_value</td><td>The value of cells, tipically 0.5. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>ResizeGrid </dd></dl>

</div>
</div>
<a class="anchor" id="a6438c48bc30c091920f2ed47a11e5f65"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::setVoroniClearance" ref="a6438c48bc30c091920f2ed47a11e5f65" args="(int cx, int cy, uint16_t dist)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::setVoroniClearance </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to set the clearance of a cell, while building the Voronoi diagram. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00754">754</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

<p>References <a class="el" href="_c_dynamic_grid_8h_source.html#l00236">mrpt::utils::CDynamicGrid::cellByIndex()</a>, <a class="el" href="mrpt__macros_8h_source.html#l00290">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00289">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00254">mrpt::utils::CDynamicGrid::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00258">mrpt::utils::CDynamicGrid::getSizeY()</a>.</p>

</div>
</div>
<a class="anchor" id="a4ecb87df862fddc73cc8fef12fdafc34"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::simulateScanRay" ref="a4ecb87df862fddc73cc8fef12fdafc34" args="(const double x, const double y, const double angle_direction, float &amp;out_range, bool &amp;out_valid, const unsigned int max_ray_len, const float threshold_free=0.5f, const double noiseStd=0, const double angleNoiseStd=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::simulateScanRay </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>angle_direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_range</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>out_valid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>max_ray_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>threshold_free</em> = <code>0.5f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>noiseStd</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>angleNoiseStd</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simulate just one "ray" in the grid map. </p>
<p>This method is used internally to sonarSimulator and laserScanSimulator. </p>

</div>
</div>
<a class="anchor" id="aa760dd419d1c98d1fd36911f914b8902"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::sonarSimulator" ref="aa760dd419d1c98d1fd36911f914b8902" args="(CObservationRange &amp;inout_observation, const CPose2D &amp;robotPose, float threshold=0.5f, float rangeNoiseStd=0, float angleNoiseStd=DEG2RAD(0)) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::sonarSimulator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_range.html">CObservationRange</a> &amp;&#160;</td>
          <td class="paramname"><em>inout_observation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>robotPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>threshold</em> = <code>0.5f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>rangeNoiseStd</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angleNoiseStd</em> = <code>DEG2RAD(0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simulates the observations of a sonar rig into the current grid map. </p>
<p>The simulated ranges are stored in a <a class="el" href="classmrpt_1_1slam_1_1_c_observation_range.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a single range measurement, and associated parameters.">CObservationRange</a> object, which is also used to pass in some needed parameters, as the poses of the sonar sensors onto the mobile robot. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">inout_observation</td><td>[IN/OUT] This must be filled with desired parameters before calling, and will contain the simulated ranges on return. </td></tr>
    <tr><td class="paramname">robotPose</td><td>[IN] The robot pose in this map coordinates. Recall that sensor pose relative to this robot pose must be specified in the observation object. </td></tr>
    <tr><td class="paramname">threshold</td><td>[IN] The minimum occupancy threshold to consider a cell to be occupied, for example 0.5. </td></tr>
    <tr><td class="paramname">rangeNoiseStd</td><td>[IN] The standard deviation of measurement noise. If not desired, set to 0. </td></tr>
    <tr><td class="paramname">angleNoiseStd</td><td>[IN] The sigma of an optional Gaussian noise added to the angles at which ranges are measured (in radians).</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a53da285d710cfe6610bcd23187fd5a76" title="Simulates a laser range scan into the current grid map.">laserScanSimulator</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae6235efcb6d5da8e9db1ad6ccfb8225c"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::squareDistanceToClosestCorrespondence" ref="ae6235efcb6d5da8e9db1ad6ccfb8225c" args="(const float &amp;x0, const float &amp;y0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual float mrpt::slam::CMetricMap::squareDistanceToClosestCorrespondence </td>
          <td>(</td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"><em>y0</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map. </p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00333">333</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.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_source.html#l00131">THROW_EXCEPTION</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a52a97059fb6ac9b4eb070038bc77d1fa"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::subSample" ref="a52a97059fb6ac9b4eb070038bc77d1fa" args="(int downRatio)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::subSample </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>downRatio</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs a downsampling of the gridmap, by a given factor: resolution/=ratio. </p>

</div>
</div>
<a class="anchor" id="ace6788ec40e72e1daec69ae0a4179ff6"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell" ref="ace6788ec40e72e1daec69ae0a4179ff6" args="(int x, int y, float v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::updateCell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs the Bayesian fusion of a new observation of a cell. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad174c4c46d06048f65762fb53bdb7483">updateInfoChangeOnly</a>, <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#aacbad0750e1daee9c87ed58554e3a5a1" title="Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor upd...">updateCell_fast_occupied</a>, <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a7921809b8a25ce16cdfd230193f88909" title="Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor upd...">updateCell_fast_free</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7921809b8a25ce16cdfd230193f88909"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_free" ref="a7921809b8a25ce16cdfd230193f88909" args="(const unsigned x, const unsigned y, const cell_t logodd_obs, const cell_t thres, cell_t *mapArray, const unsigned _size_x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::CLogOddsGridMap2D::updateCell_fast_free </td>
          <td>(</td>
          <td class="paramtype">const unsigned&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>thres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *&#160;</td>
          <td class="paramname"><em>mapArray</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned&#160;</td>
          <td class="paramname"><em>_size_x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. </p>
<p>This method increases the "free-ness" of a cell, managing possible saturation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Cell index in X axis. </td></tr>
    <tr><td class="paramname">y</td><td>Cell index in Y axis. </td></tr>
    <tr><td class="paramname">logodd_obs</td><td>Observation of the cell, in log-odd form as transformed by p2l. </td></tr>
    <tr><td class="paramname">thres</td><td>This must be CELLTYPE_MAX-logodd_obs </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>updateCell_fast_occupied </dd></dl>

<p>Definition at line <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00119">119</a> of file <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html">CLogOddsGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a25e9bc67e0e81242ee3359d8155a2e02"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_free" ref="a25e9bc67e0e81242ee3359d8155a2e02" args="(cell_t *theCell, const cell_t logodd_obs, const cell_t thres)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::CLogOddsGridMap2D::updateCell_fast_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *&#160;</td>
          <td class="paramname"><em>theCell</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>thres</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. </p>
<p>This method increases the "free-ness" of a cell, managing possible saturation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Cell index in X axis. </td></tr>
    <tr><td class="paramname">y</td><td>Cell index in Y axis. </td></tr>
    <tr><td class="paramname">logodd_obs</td><td>Observation of the cell, in log-odd form as transformed by p2l. </td></tr>
    <tr><td class="paramname">thres</td><td>This must be CELLTYPE_MAX-logodd_obs </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>updateCell_fast_occupied </dd></dl>

<p>Definition at line <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html#l00141">141</a> of file <a class="el" href="_c_log_odds_grid_map2_d_8h_source.html">CLogOddsGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="aacbad0750e1daee9c87ed58554e3a5a1"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_occupied" ref="aacbad0750e1daee9c87ed58554e3a5a1" args="(const unsigned x, const unsigned y, const cell_t logodd_obs, const cell_t thres, cell_t *mapArray, const unsigned _size_x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::CLogOddsGridMap2D::updateCell_fast_occupied </td>
          <td>(</td>
          <td class="paramtype">const unsigned&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>thres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *&#160;</td>
          <td class="paramname"><em>mapArray</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned&#160;</td>
          <td class="paramname"><em>_size_x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. </p>
<p>This method increases the "occupancy-ness" of a cell, managing possible saturation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Cell index in X axis. </td></tr>
    <tr><td class="paramname">y</td><td>Cell index in Y axis. </td></tr>
    <tr><td class="paramname">logodd_obs</td><td>Observation of the cell, in log-odd form as transformed by p2l. </td></tr>
    <tr><td class="paramname">thres</td><td>This must be CELLTYPE_MIN+logodd_obs </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>updateCell, updateCell_fast_free </dd></dl>

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

</div>
</div>
<a class="anchor" id="a691e592dbefe70ea33969acf2821b9c6"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_occupied" ref="a691e592dbefe70ea33969acf2821b9c6" args="(cell_t *theCell, const cell_t logodd_obs, const cell_t thres)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::CLogOddsGridMap2D::updateCell_fast_occupied </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a> *&#160;</td>
          <td class="paramname"><em>theCell</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html#a303720ae1a3a6e0dd66a6f5000563c31">cell_t</a>&#160;</td>
          <td class="paramname"><em>thres</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. </p>
<p>This method increases the "occupancy-ness" of a cell, managing possible saturation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">theCell</td><td>The cell to modify </td></tr>
    <tr><td class="paramname">logodd_obs</td><td>Observation of the cell, in log-odd form as transformed by p2l. </td></tr>
    <tr><td class="paramname">thres</td><td>This must be CELLTYPE_MIN+logodd_obs </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>updateCell, updateCell_fast_free </dd></dl>

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

</div>
</div>
<a class="anchor" id="a0b6b801e67bca3d8e0d355e7035f8013"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::writeToStream" ref="a0b6b801e67bca3d8e0d355e7035f8013" args="(mrpt::utils::CStream &amp;out, int *getVersion) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CSerializable::writeToStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>getVersion</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>. </p>
<p>This can not be used directly be users, instead use "stream &lt;&lt; object;" for writing it to a stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>The output binary stream where object must be dumped. </td></tr>
    <tr><td class="paramname">getVersion</td><td>If NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data. </td></tr>
  </table>
  </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>On any error, see <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html#a276005e7110c9de74ff3277b3f7bf621" title="Writes a block of bytes to the stream from Buffer.">CStream::WriteBuffer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#a767e787b52208ab4dd46ba7f5e2fd224">mrpt::math::CMatrixD</a>, and <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a059d7eaf80dab9c7435154146d2b7dbf">mrpt::math::CMatrix</a>.</p>

</div>
</div>
<a class="anchor" id="a10cbc01d4256cf358e7b94c00bcc0653"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::x2idx" ref="a10cbc01d4256cf358e7b94c00bcc0653" args="(float x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::x2idx </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Transform a coordinate value into a cell index. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00370">370</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7ab194b19c356d12acfdd2e34a80c316"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::x2idx" ref="a7ab194b19c356d12acfdd2e34a80c316" args="(double x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::x2idx </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00373">373</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="abf40dfd4a6a20181eaa7fc39637aff68"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::x2idx" ref="abf40dfd4a6a20181eaa7fc39637aff68" args="(float x, float x_min) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::x2idx </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x_min</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Transform a coordinate value into a cell index, using a diferent "x_min" value. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00383">383</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1402c1e6981535dea1557776437dd1f1"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::y2idx" ref="a1402c1e6981535dea1557776437dd1f1" args="(float y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::y2idx </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00371">371</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a067dd01770dc79dba5bdb985fec1d70e"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::y2idx" ref="a067dd01770dc79dba5bdb985fec1d70e" args="(double y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::y2idx </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00374">374</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0b4d7c16ea7fc8062c7d4529864a86e6"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::y2idx" ref="a0b4d7c16ea7fc8062c7d4529864a86e6" args="(float y, float y_min) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mrpt::slam::COccupancyGridMap2D::y2idx </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y_min</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00384">384</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a1bae34eddd4e2faa9c5f33c50f07f4fe"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::CMultiMetricMap" ref="a1bae34eddd4e2faa9c5f33c50f07f4fe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html">CMultiMetricMap</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00121">121</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab04439e1f92cce9e3682f6c32d87e172"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::CMultiMetricMapPDF" ref="ab04439e1f92cce9e3682f6c32d87e172" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map_p_d_f.html">CMultiMetricMapPDF</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00122">122</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6fec28a53e20dfc1c4d046c26f9f7b48"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::mrpt::utils::CStream" ref="a6fec28a53e20dfc1c4d046c26f9f7b48" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a><code> [friend, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CSerializable</a>.</p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_random_field_grid_map2_d.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CRandomFieldGridMap2D</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00081">81</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="aa52d794d895e0ea33a5e424acc489535"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::_init_COccupancyGridMap2D" ref="aa52d794d895e0ea33a5e424acc489535" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aa52d794d895e0ea33a5e424acc489535">mrpt::slam::COccupancyGridMap2D::_init_COccupancyGridMap2D</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a1cbb8630027acc3d6d227fa7d78c724f"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::classCMetricMap" ref="a1cbb8630027acc3d6d227fa7d78c724f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a1cbb8630027acc3d6d227fa7d78c724f">mrpt::slam::CMetricMap::classCMetricMap</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00081">81</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::classCObject" ref="acb51e4dd811d62c2696aee449d0a4715" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">mrpt::utils::CObject::classCObject</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00139">139</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0681df6aa926fadc2a711d1c37d10225"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::classCOccupancyGridMap2D" ref="a0681df6aa926fadc2a711d1c37d10225" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a0681df6aa926fadc2a711d1c37d10225">mrpt::slam::COccupancyGridMap2D::classCOccupancyGridMap2D</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a28ec2a03d277a8469b8ecfc81892afdf"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::classCSerializable" ref="a28ec2a03d277a8469b8ecfc81892afdf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">mrpt::utils::CSerializable::classCSerializable</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00056">56</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="adbe2f37dec59c47df7838582d62a45ad"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::classinfo" ref="adbe2f37dec59c47df7838582d62a45ad" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#adbe2f37dec59c47df7838582d62a45ad">mrpt::slam::COccupancyGridMap2D::classinfo</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a33c41ed5de75f6defe7b709b29ee10ba"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::CriticalPointsList" ref="a33c41ed5de75f6defe7b709b29ee10ba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct MAPS_IMPEXP <a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_critical_points_list.html">mrpt::slam::COccupancyGridMap2D::TCriticalPointsList</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a33c41ed5de75f6defe7b709b29ee10ba">mrpt::slam::COccupancyGridMap2D::CriticalPointsList</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a063d5c951449918a93e9262861086061"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::direccion_vecino_x" ref="a063d5c951449918a93e9262861086061" args="[8]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a063d5c951449918a93e9262861086061">mrpt::slam::COccupancyGridMap2D::direccion_vecino_x</a>[8]<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to store the 8 possible movements from a cell to the sorrounding ones.Filled in the constructor. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afd22aa5ef275f2b88e81ade481befcea" title="Returns the index [0,7] of the given movement, or.">direction2idx</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l01071">1071</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a677d53e00fc6f4c862c2a8452b80f7c8"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::direccion_vecino_y" ref="a677d53e00fc6f4c862c2a8452b80f7c8" args="[8]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a677d53e00fc6f4c862c2a8452b80f7c8">mrpt::slam::COccupancyGridMap2D::direccion_vecino_y</a>[8]<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l01071">1071</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a641338c6a59d4cb93a7d7e27822bed38"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::entropyTable" ref="a641338c6a59d4cb93a7d7e27822bed38" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;float&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a641338c6a59d4cb93a7d7e27822bed38">mrpt::slam::COccupancyGridMap2D::entropyTable</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internally used to speed-up entropy calculation. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00200">200</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1cbb040250b2c31874f99bce0bd978b4"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::insertionOptions" ref="a1cbb040250b2c31874f99bce0bd978b4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_insertion_options.html">TInsertionOptions</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a1cbb040250b2c31874f99bce0bd978b4">mrpt::slam::COccupancyGridMap2D::insertionOptions</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>With this struct options are provided to the observation insertion process. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>CObservation::insertIntoGridMap </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00580">580</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae963991b98683b067b3cf041591535b9"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::likelihoodOptions" ref="ae963991b98683b067b3cf041591535b9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_options.html">mrpt::slam::COccupancyGridMap2D::TLikelihoodOptions</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ae963991b98683b067b3cf041591535b9">mrpt::slam::COccupancyGridMap2D::likelihoodOptions</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac5a9c19bcd33e7b9a674a02ae32c79f0"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::likelihoodOutputs" ref="ac5a9c19bcd33e7b9a674a02ae32c79f0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">class <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_output.html">mrpt::slam::COccupancyGridMap2D::TLikelihoodOutput</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac5a9c19bcd33e7b9a674a02ae32c79f0">mrpt::slam::COccupancyGridMap2D::likelihoodOutputs</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7d6cc3b3aa8a48abfdb0fbf1af81121e"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::m_basis_map" ref="a7d6cc3b3aa8a48abfdb0fbf1af81121e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt;uint8_t&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7d6cc3b3aa8a48abfdb0fbf1af81121e">mrpt::slam::COccupancyGridMap2D::m_basis_map</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used for Voronoi calculation.Same struct as "map", but contains a "0" if not a basis point. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00150">150</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2b50a8c61d853cc452b82d58756e9603"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::m_disableSaveAs3DObject" ref="a2b50a8c61d853cc452b82d58756e9603" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a2b50a8c61d853cc452b82d58756e9603">mrpt::slam::CMetricMap::m_disableSaveAs3DObject</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>When set to true (default=false), calling "getAs3DObject" will have no effects. </p>

<p>Definition at line <a class="el" href="_c_metric_map_8h_source.html#l00321">321</a> of file <a class="el" href="_c_metric_map_8h_source.html">CMetricMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="adcf066b52e180300b0988b9d27247d91"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::m_is_empty" ref="adcf066b52e180300b0988b9d27247d91" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#adcf066b52e180300b0988b9d27247d91">mrpt::slam::COccupancyGridMap2D::m_is_empty</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>True upon construction; used by <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6b471182a3f3ddd6aefda6a9b97f6648" title="Returns true upon map construction or after calling clear(), the return changes to false upon success...">isEmpty()</a> </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00158">158</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="afd2e8f0e766de3b330f6ce03be5ee522"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::m_logodd_lut" ref="afd2e8f0e766de3b330f6ce03be5ee522" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map_l_u_t.html">CLogOddsGridMapLUT</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#afd2e8f0e766de3b330f6ce03be5ee522">mrpt::slam::COccupancyGridMap2D::m_logodd_lut</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Lookup tables for log-odds. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00124">124</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4e93126b14249d477e9c7c8bf7af835f"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::m_voronoi_diagram" ref="a4e93126b14249d477e9c7c8bf7af835f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_dynamic_grid.html">CDynamicGrid</a>&lt;uint16_t&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a4e93126b14249d477e9c7c8bf7af835f">mrpt::slam::COccupancyGridMap2D::m_voronoi_diagram</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to store the Voronoi diagram. </p>
<p>Contains the distance of each cell to its closer obstacles in 1/100th distance units (i.e. in centimeters), or 0 if not into the Voronoi diagram. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00156">156</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3d044620d441c1cb421eaadc10f9e963"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::map" ref="a3d044620d441c1cb421eaadc10f9e963" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a3d044620d441c1cb421eaadc10f9e963">mrpt::slam::COccupancyGridMap2D::map</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is the buffer for storing the cells.In this dynamic size buffer are stored the cell values as "bytes", stored row by row, from left to right cells. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00130">130</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a772c1d95974f88db924ff5067364290d"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::OCCGRID_CELLTYPE_MAX" ref="a772c1d95974f88db924ff5067364290d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a772c1d95974f88db924ff5067364290d">mrpt::slam::COccupancyGridMap2D::OCCGRID_CELLTYPE_MAX</a> = <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html">CLogOddsGridMap2D</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt;::CELLTYPE_MAX<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00116">116</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a833dc6bc133c8c117858181c55f53787"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::OCCGRID_CELLTYPE_MIN" ref="a833dc6bc133c8c117858181c55f53787" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a833dc6bc133c8c117858181c55f53787">mrpt::slam::COccupancyGridMap2D::OCCGRID_CELLTYPE_MIN</a> = <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html">CLogOddsGridMap2D</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt;::CELLTYPE_MIN<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Discrete to float conversion factors: The min/max values of the integer cell type, eg. </p>
<p>[0,255] or [0,65535] </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00115">115</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab044797ba667c4ece543b210cb32110a"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::OCCGRID_P2LTABLE_SIZE" ref="ab044797ba667c4ece543b210cb32110a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a> <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab044797ba667c4ece543b210cb32110a">mrpt::slam::COccupancyGridMap2D::OCCGRID_P2LTABLE_SIZE</a> = <a class="el" href="structmrpt_1_1slam_1_1_c_log_odds_grid_map2_d.html">CLogOddsGridMap2D</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad8b8a3357bc682ae5949d9e4768709aa">cellType</a>&gt;::P2LTABLE_SIZE<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00117">117</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab18878533cdf1a7cf156da3d2ac3b994"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::precomputedLikelihood" ref="ab18878533cdf1a7cf156da3d2ac3b994" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;double&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ab18878533cdf1a7cf156da3d2ac3b994">mrpt::slam::COccupancyGridMap2D::precomputedLikelihood</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>These are auxiliary variables to speed up the computation of observation likelihood values for LF method among others, at a high cost in memory (see <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_likelihood_options.html#aff1e9eba8f8fa136f9d4f41c6718f521" title="Enables the usage of a cache of likelihood values (for LF methods), if set to true (default=false)...">TLikelihoodOptions::enableLikelihoodCache</a>). </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00146">146</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a86fc3a35a5a4fab534ac4ce89754bd09"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::precomputedLikelihoodToBeRecomputed" ref="a86fc3a35a5a4fab534ac4ce89754bd09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a86fc3a35a5a4fab534ac4ce89754bd09">mrpt::slam::COccupancyGridMap2D::precomputedLikelihoodToBeRecomputed</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00147">147</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a16e113fd57e5dfaa69d293862eb22a89"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::resolution" ref="a16e113fd57e5dfaa69d293862eb22a89" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a16e113fd57e5dfaa69d293862eb22a89">mrpt::slam::COccupancyGridMap2D::resolution</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cell size, i.e. </p>
<p>resolution of the grid map. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00142">142</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a10a3f38204821d229ab8274a06dd2622"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::size_x" ref="a10a3f38204821d229ab8274a06dd2622" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a10a3f38204821d229ab8274a06dd2622">mrpt::slam::COccupancyGridMap2D::size_x</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The size of the grid in cells. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00134">134</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a20174e16db008338bb2fac9ca64e6541"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::size_y" ref="a20174e16db008338bb2fac9ca64e6541" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a20174e16db008338bb2fac9ca64e6541">mrpt::slam::COccupancyGridMap2D::size_y</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00134">134</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad174c4c46d06048f65762fb53bdb7483"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateInfoChangeOnly" ref="ad174c4c46d06048f65762fb53bdb7483" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct MAPS_IMPEXP <a class="el" href="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_1_1_t_update_cells_info_change_only.html">mrpt::slam::COccupancyGridMap2D::TUpdateCellsInfoChangeOnly</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ad174c4c46d06048f65762fb53bdb7483">mrpt::slam::COccupancyGridMap2D::updateInfoChangeOnly</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af3bc90ff048f4a010d6e5214eb49fc92"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::voroni_free_threshold" ref="af3bc90ff048f4a010d6e5214eb49fc92" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#af3bc90ff048f4a010d6e5214eb49fc92">mrpt::slam::COccupancyGridMap2D::voroni_free_threshold</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The free-cells threshold used to compute the Voronoi diagram. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00164">164</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9633cef35e22bebae97a0909e364c5ed"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::x_max" ref="a9633cef35e22bebae97a0909e364c5ed" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9633cef35e22bebae97a0909e364c5ed">mrpt::slam::COccupancyGridMap2D::x_max</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00138">138</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a04fe20a7135894b794c5e6c31cd29323"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::x_min" ref="a04fe20a7135894b794c5e6c31cd29323" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a04fe20a7135894b794c5e6c31cd29323">mrpt::slam::COccupancyGridMap2D::x_min</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The limits of the grid in "units" (meters). </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00138">138</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7346b67240d511182db47a4b06777385"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::y_max" ref="a7346b67240d511182db47a4b06777385" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a7346b67240d511182db47a4b06777385">mrpt::slam::COccupancyGridMap2D::y_max</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00138">138</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2997ff6789278a6b1fcc99534aaa128e"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::y_min" ref="a2997ff6789278a6b1fcc99534aaa128e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a2997ff6789278a6b1fcc99534aaa128e">mrpt::slam::COccupancyGridMap2D::y_min</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00138">138</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.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>