Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2f6559b7006594cad03af173263c219e > files > 4244

mrpt-doc-0.9.4-0.1.20110110svn2383.fc15.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>The MRPT project: 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.2 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div 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 id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
          <span 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>
          </span><span class="right"></span>
        </div>
      </li>
    </ul>
  </div>
  <div 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="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li><a class="el" href="namespacemrpt_1_1slam.html">slam</a>      </li>
      <li><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="#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">
<h1>mrpt::slam::COccupancyGridMap2D Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::COccupancyGridMap2D" --><!-- doxytag: inherits="mrpt::slam::CMetricMap" --><hr/><a name="_details"></a><h2>Detailed Description</h2>
<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>

<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>

<p><code>#include &lt;<a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">mrpt/slam/COccupancyGridMap2D.h</a>&gt;</code></p>
<!-- startSectionHeader --><div class="dynheader">
Inheritance diagram for mrpt::slam::COccupancyGridMap2D:<!-- endSectionHeader --></div>
<!-- startSectionSummary --><!-- endSectionSummary --><!-- startSectionContent --><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">
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center><!-- endSectionContent --></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"><p>The type for selecting a likelihood computation method. </p>
 <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 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 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"><a class="el" href="class_transform.html">Transform</a> 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"><a class="el" href="class_transform.html">Transform</a> 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"><a class="el" href="class_transform.html">Transform</a> 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">cellType *&#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 cellType *&#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 std::string &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#a94a2a44593b0b9caace0a950c9f34f4b">saveAsBitmapFileWithLandmarks</a> (const std::string &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="#a94a2a44593b0b9caace0a950c9f34f4b"></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 std::string &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#acf5e9ed21d70f3805c92c85a26eb0dfd">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 </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="#acf5e9ed21d70f3805c92c85a26eb0dfd"></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 std::string &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_occupancy_grid_map2_d.html#a8e0cf466c89d788649f7ed4ad49dd9ec">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="#a8e0cf466c89d788649f7ed4ad49dd9ec"></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 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aeac0970a73a64554c9d08a3e638f08b4">updateCell_fast_occupied</a> (const unsigned &amp;x, const unsigned &amp;y, const cellType &amp;logodd_obs, const cellType &amp;thres, cellType *mapArray, const unsigned &amp;_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="#aeac0970a73a64554c9d08a3e638f08b4"></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="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a820bd2c5b188bfd0b57b8ea0610cee19">updateCell_fast_occupied</a> (cellType *theCell, const cellType &amp;logodd_obs, const cellType &amp;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="#a820bd2c5b188bfd0b57b8ea0610cee19"></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="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6f19aa6f44b57a88a2a22b1743bf97bb">updateCell_fast_free</a> (const unsigned &amp;x, const unsigned &amp;y, const cellType &amp;logodd_obs, const cellType &amp;thres, cellType *mapArray, const unsigned &amp;_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="#a6f19aa6f44b57a88a2a22b1743bf97bb"></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="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aad49833e310a647fee53f24660aa06b3">updateCell_fast_free</a> (cellType *theCell, const cellType &amp;logodd_obs, const cellType &amp;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="#aad49833e310a647fee53f24660aa06b3"></a><br/></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#ad0490cd91acb7fc8c35331d9bd695521">l2p</a> (const cellType &amp;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="#ad0490cd91acb7fc8c35331d9bd695521"></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#a25e2988677275b2a7598085cb47380fa">l2p_255</a> (const cellType &amp;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="#a25e2988677275b2a7598085cb47380fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static cellType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a4c48df3d110f4de3d195e20c37b3c235">p2l</a> (const float &amp;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="#a4c48df3d110f4de3d195e20c37b3c235"></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 std::string &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 std::string &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 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 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, cellType 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 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">std::vector&lt; cellType &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">std::vector&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 std::vector&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 class="memItemLeft" align="right" valign="top">static std::vector&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#a319212794da6c7ca5b27df0b399972b3">logoddsTable</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A lookup table to compute occupancy probabilities in [0,1] from integer log-odds values in the cells, using <img class="formulaInl" alt="$ p(m_{xy}) = \frac{1}{1+exp(-log_odd)} $" src="form_102.png"/>.  <a href="#a319212794da6c7ca5b27df0b399972b3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static std::vector&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#a6a083fab2382a9d0c29efb449d7fe6e3">logoddsTable_255</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A lookup table to compute occupancy probabilities in the range [0,255] from integer log-odds values in the cells, using <img class="formulaInl" alt="$ p(m_{xy}) = \frac{1}{1+exp(-log_odd)} $" src="form_102.png"/>.  <a href="#a6a083fab2382a9d0c29efb449d7fe6e3"></a><br/></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#aef0515350927d682ae644c42a2e5923d">logoddsTablePtr</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector logoddsTable.  <a href="#aef0515350927d682ae644c42a2e5923d"></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#a96f4362bd447e1f3b8c69169def9d671">logoddsTable_255Ptr</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector logoddsTable_255.  <a href="#a96f4362bd447e1f3b8c69169def9d671"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static std::vector&lt; cellType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9472105c8abf89438d96c70df24edb37">p2lTable</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A lookup table for passing from float to log-odds as cellType.  <a href="#a9472105c8abf89438d96c70df24edb37"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static cellType *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac93c23159c8494335230ada2d462a667">p2lTablePtr</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector p2lTable.  <a href="#ac93c23159c8494335230ada2d462a667"></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 -1 if invalid one.  <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>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<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="structmrpt_1_1slam_1_1_c_occupancy_grid_map2_d_ptr.html">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#l00114">114</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#l00807">807</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.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#l00696">696</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">&#160;)</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">&#160;)</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="a8e0cf466c89d788649f7ed4ad49dd9ec"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::auxParticleFilterCleanUp" ref="a8e0cf466c89d788649f7ed4ad49dd9ec" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::COccupancyGridMap2D::auxParticleFilterCleanUp </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [virtual]</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>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#af319432da7479ae411a9e0a21fa870d5">mrpt::slam::CMetricMap</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>&#160;)</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="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#acf5e9ed21d70f3805c92c85a26eb0dfd" 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>&#160;)</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="acf5e9ed21d70f3805c92c85a26eb0dfd"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::computeMatchingWith2D" ref="acf5e9ed21d70f3805c92c85a26eb0dfd" 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 " -->
<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>&#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#aa37f44335bbebfc5b15219fede12a5ff">mrpt::slam::CMetricMap</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="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">&#160;)</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">&#160;)</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 -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">&#160;)</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="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>&#160;)</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>&#160;)</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">&#160;)</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">&#160;)</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#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="_array_cwise_unary_ops_8h_source.html#l00132">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>&#160;)</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="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#l00576">576</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#l00275">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00274">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00235">mrpt::utils::CDynamicGrid&lt; T &gt;::cellByIndex()</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00253">mrpt::utils::CDynamicGrid&lt; T &gt;::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00257">mrpt::utils::CDynamicGrid&lt; T &gt;::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">&#160;)</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#l00881">881</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#l00531">531</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#l00195">195</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 -1 if invalid one.">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#l00553">553</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">&#160;)</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#l00478">478</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">cellType* mrpt::slam::COccupancyGridMap2D::getRow </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"> <em>cy</em>&#160;)</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#l00541">541</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 cellType* mrpt::slam::COccupancyGridMap2D::getRow </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"> <em>cy</em>&#160;)</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#l00545">545</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">&#160;)</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">&#160;)</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#l00454">454</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">&#160;)</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#l00458">458</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#l00852">852</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#l00275">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00274">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00235">mrpt::utils::CDynamicGrid&lt; T &gt;::cellByIndex()</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00253">mrpt::utils::CDynamicGrid&lt; T &gt;::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00257">mrpt::utils::CDynamicGrid&lt; T &gt;::getSizeY()</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">&#160;)</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#l00884">884</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">&#160;)</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#l00466">466</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">&#160;)</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#l00462">462</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">&#160;)</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#l00474">474</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">&#160;)</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#l00470">470</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>&#160;)</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="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>&#160;)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="class_transform.html">Transform</a> a cell index into a coordinate value. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00490">490</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>&#160;)</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#l00491">491</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="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">&#160;)</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#abb4939fca9a78fe17a0fe71684ef486c" 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">&#160;)</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#l00558">558</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#l00557">557</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="ad0490cd91acb7fc8c35331d9bd695521"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::l2p" ref="ad0490cd91acb7fc8c35331d9bd695521" args="(const cellType &amp;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 cellType &amp;&#160;</td>
          <td class="paramname"> <em>l</em>&#160;)</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#l00500">500</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_occupancy_grid_map2_d_8h_source.html#l00064">OCCGRID_CELLTYPE_MIN</a>.</p>

</div>
</div>
<a class="anchor" id="a25e2988677275b2a7598085cb47380fa"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::l2p_255" ref="a25e2988677275b2a7598085cb47380fa" args="(const cellType &amp;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 cellType &amp;&#160;</td>
          <td class="paramname"> <em>l</em>&#160;)</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#l00507">507</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_occupancy_grid_map2_d_8h_source.html#l00064">OCCGRID_CELLTYPE_MIN</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 ...">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 std::string &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="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">&#160;)</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="a4c48df3d110f4de3d195e20c37b3c235"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::p2l" ref="a4c48df3d110f4de3d195e20c37b3c235" args="(const float &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static cellType mrpt::slam::COccupancyGridMap2D::p2l </td>
          <td>(</td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"> <em>p</em>&#160;)</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#l00514">514</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_occupancy_grid_map2_d_8h_source.html#l00067">OCCGRID_P2LTABLE_SIZE</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 std::string &amp;&#160;</td>
          <td class="paramname"> <em>file</em>&#160;)</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="a94a2a44593b0b9caace0a950c9f34f4b"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::saveAsBitmapFileWithLandmarks" ref="a94a2a44593b0b9caace0a950c9f34f4b" 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 std::string &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#l01041">1041</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="base_2include_2mrpt_2utils_2types_8h_source.html#l00190">mrpt::utils::TColor::black</a>, <a class="el" href="namespacemrpt.html#a3a27af794b658df5491e2b7678f8ccb8">mrpt::format()</a>, <a class="el" href="mrpt__macros_8h_source.html#l00356">MRPT_END</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00352">MRPT_START</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 std::string &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 std::string &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 std::string &amp;&#160;</td>
          <td class="paramname"> <em>filNamePrefix</em>&#160;)</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#l00562">562</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#l00275">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00274">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00235">mrpt::utils::CDynamicGrid&lt; T &gt;::cellByIndex()</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00253">mrpt::utils::CDynamicGrid&lt; T &gt;::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00257">mrpt::utils::CDynamicGrid&lt; T &gt;::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#l00521">521</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#l00188">188</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#l00549">549</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">cellType&#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#l00202">202</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#l00866">866</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#l00275">ASSERT_ABOVEEQ_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00274">ASSERT_BELOWEQ_</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00235">mrpt::utils::CDynamicGrid&lt; T &gt;::cellByIndex()</a>, <a class="el" href="_c_dynamic_grid_8h_source.html#l00253">mrpt::utils::CDynamicGrid&lt; T &gt;::getSizeX()</a>, and <a class="el" href="_c_dynamic_grid_8h_source.html#l00257">mrpt::utils::CDynamicGrid&lt; T &gt;::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...">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="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>&#160;)</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="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#aeac0970a73a64554c9d08a3e638f08b4" 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="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6f19aa6f44b57a88a2a22b1743bf97bb" 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="a6f19aa6f44b57a88a2a22b1743bf97bb"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_free" ref="a6f19aa6f44b57a88a2a22b1743bf97bb" args="(const unsigned &amp;x, const unsigned &amp;y, const cellType &amp;logodd_obs, const cellType &amp;thres, cellType *mapArray, const unsigned &amp;_size_x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::COccupancyGridMap2D::updateCell_fast_free </td>
          <td>(</td>
          <td class="paramtype">const unsigned &amp;&#160;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned &amp;&#160;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>thres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cellType *&#160;</td>
          <td class="paramname"> <em>mapArray</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned &amp;&#160;</td>
          <td class="paramname"> <em>_size_x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</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 OCCGRID_CELLTYPE_MAX-logodd_obs </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#aeac0970a73a64554c9d08a3e638f08b4" title="Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor upd...">updateCell_fast_occupied</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00348">348</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_occupancy_grid_map2_d_8h_source.html#l00065">OCCGRID_CELLTYPE_MAX</a>.</p>

</div>
</div>
<a class="anchor" id="aad49833e310a647fee53f24660aa06b3"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_free" ref="aad49833e310a647fee53f24660aa06b3" args="(cellType *theCell, const cellType &amp;logodd_obs, const cellType &amp;thres)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::COccupancyGridMap2D::updateCell_fast_free </td>
          <td>(</td>
          <td class="paramtype">cellType *&#160;</td>
          <td class="paramname"> <em>theCell</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>thres</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</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 OCCGRID_CELLTYPE_MAX-logodd_obs </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#aeac0970a73a64554c9d08a3e638f08b4" title="Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor upd...">updateCell_fast_occupied</a> </dd></dl>

<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>

<p>References <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00065">OCCGRID_CELLTYPE_MAX</a>.</p>

</div>
</div>
<a class="anchor" id="a820bd2c5b188bfd0b57b8ea0610cee19"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_occupied" ref="a820bd2c5b188bfd0b57b8ea0610cee19" args="(cellType *theCell, const cellType &amp;logodd_obs, const cellType &amp;thres)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::COccupancyGridMap2D::updateCell_fast_occupied </td>
          <td>(</td>
          <td class="paramtype">cellType *&#160;</td>
          <td class="paramname"> <em>theCell</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>thres</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</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 OCCGRID_CELLTYPE_MIN+logodd_obs </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#ace6788ec40e72e1daec69ae0a4179ff6" title="Performs the Bayesian fusion of a new observation of a cell.">updateCell</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6f19aa6f44b57a88a2a22b1743bf97bb" 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>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00330">330</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_occupancy_grid_map2_d_8h_source.html#l00064">OCCGRID_CELLTYPE_MIN</a>.</p>

</div>
</div>
<a class="anchor" id="aeac0970a73a64554c9d08a3e638f08b4"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::updateCell_fast_occupied" ref="aeac0970a73a64554c9d08a3e638f08b4" args="(const unsigned &amp;x, const unsigned &amp;y, const cellType &amp;logodd_obs, const cellType &amp;thres, cellType *mapArray, const unsigned &amp;_size_x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void mrpt::slam::COccupancyGridMap2D::updateCell_fast_occupied </td>
          <td>(</td>
          <td class="paramtype">const unsigned &amp;&#160;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned &amp;&#160;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>logodd_obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const cellType &amp;&#160;</td>
          <td class="paramname"> <em>thres</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cellType *&#160;</td>
          <td class="paramname"> <em>mapArray</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned &amp;&#160;</td>
          <td class="paramname"> <em>_size_x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</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 OCCGRID_CELLTYPE_MIN+logodd_obs </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#ace6788ec40e72e1daec69ae0a4179ff6" title="Performs the Bayesian fusion of a new observation of a cell.">updateCell</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6f19aa6f44b57a88a2a22b1743bf97bb" 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>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00309">309</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_occupancy_grid_map2_d_8h_source.html#l00064">OCCGRID_CELLTYPE_MIN</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>&#160;)</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#l00485">485</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="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>&#160;)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="class_transform.html">Transform</a> a coordinate value into a cell index. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00482">482</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><a class="el" href="class_transform.html">Transform</a> 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#l00495">495</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>&#160;)</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#l00483">483</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#l00496">496</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>&#160;)</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#l00486">486</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#l00132">132</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#l00133">133</a> of file <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html">COccupancyGridMap2D.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#l00114">114</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="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#l00114">114</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="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#l00114">114</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 -1 if invalid one.">direction2idx</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l01186">1186</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#l01186">1186</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">std::vector&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#l00212">212</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#l00692">692</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="a319212794da6c7ca5b27df0b399972b3"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::logoddsTable" ref="a319212794da6c7ca5b27df0b399972b3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;float&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a319212794da6c7ca5b27df0b399972b3">mrpt::slam::COccupancyGridMap2D::logoddsTable</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A lookup table to compute occupancy probabilities in [0,1] from integer log-odds values in the cells, using <img class="formulaInl" alt="$ p(m_{xy}) = \frac{1}{1+exp(-log_odd)} $" src="form_102.png"/>. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00216">216</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="a6a083fab2382a9d0c29efb449d7fe6e3"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::logoddsTable_255" ref="a6a083fab2382a9d0c29efb449d7fe6e3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;uint8_t&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a6a083fab2382a9d0c29efb449d7fe6e3">mrpt::slam::COccupancyGridMap2D::logoddsTable_255</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A lookup table to compute occupancy probabilities in the range [0,255] from integer log-odds values in the cells, using <img class="formulaInl" alt="$ p(m_{xy}) = \frac{1}{1+exp(-log_odd)} $" src="form_102.png"/>. </p>
<p>This is used to speed-up conversions to grayscale images. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00221">221</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="a96f4362bd447e1f3b8c69169def9d671"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::logoddsTable_255Ptr" ref="a96f4362bd447e1f3b8c69169def9d671" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a96f4362bd447e1f3b8c69169def9d671">mrpt::slam::COccupancyGridMap2D::logoddsTable_255Ptr</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A pointer to the vector logoddsTable_255. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00227">227</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="aef0515350927d682ae644c42a2e5923d"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::logoddsTablePtr" ref="aef0515350927d682ae644c42a2e5923d" 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#aef0515350927d682ae644c42a2e5923d">mrpt::slam::COccupancyGridMap2D::logoddsTablePtr</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A pointer to the vector logoddsTable. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00224">224</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="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#l00162">162</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="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#l00170">170</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#l00168">168</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">std::vector&lt;cellType&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#l00139">139</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="a9472105c8abf89438d96c70df24edb37"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::p2lTable" ref="a9472105c8abf89438d96c70df24edb37" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;cellType&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a9472105c8abf89438d96c70df24edb37">mrpt::slam::COccupancyGridMap2D::p2lTable</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A lookup table for passing from float to log-odds as cellType. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00230">230</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="ac93c23159c8494335230ada2d462a667"></a><!-- doxytag: member="mrpt::slam::COccupancyGridMap2D::p2lTablePtr" ref="ac93c23159c8494335230ada2d462a667" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cellType* <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#ac93c23159c8494335230ada2d462a667">mrpt::slam::COccupancyGridMap2D::p2lTablePtr</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A pointer to the vector p2lTable. </p>

<p>Definition at line <a class="el" href="_c_occupancy_grid_map2_d_8h_source.html#l00233">233</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">std::vector&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#l00155">155</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#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="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#l00151">151</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#l00143">143</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#l00143">143</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#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="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#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="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#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="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#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="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#l00147">147</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.2</a> for MRPT 0.9.4 SVN: at Mon Jan 10 22:30:30 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table> </body></html>