Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::slam::CBeaconMap Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1slam.html">slam</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html">CBeaconMap</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-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::slam::CBeaconMap Class Reference<div class="ingroups"><a class="el" href="group__mrpt__maps__grp.html">[mrpt-maps]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::CBeaconMap" --><!-- doxytag: inherits="mrpt::slam::CMetricMap" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A class for storing a map of 3D probabilistic beacons, using a Montecarlo, Gaussian, or Sum of Gaussians (SOG) representation (for range-only SLAM). </p>
<p><br/>
 The individual beacons are defined as <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html" title="The class for storing individual &quot;beacon landmarks&quot; under a variety of 3D position PDF distributions...">mrpt::slam::CBeacon</a> objects. <br/>
 When invoking <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">CBeaconMap::insertObservation()</a>, landmarks will be extracted and fused into the map. The only currently supported observation type is <a class="el" href="classmrpt_1_1slam_1_1_c_observation_beacon_ranges.html" title="Declares a class derived from &quot;CObservation&quot; that represents one (or more) range measurements to labe...">mrpt::slam::CObservationBeaconRanges</a>. See insertionOptions and likelihoodOptions for parameters used when creating and fusing beacon landmarks. <br/>
 Use "TInsertionOptions::insertAsMonteCarlo" to select between 2 different behaviors:</p>
<ul>
<li>Initial PDF of beacons: MonteCarlo, after convergence, pass to Gaussians; or</li>
<li>Initial PDF of beacons: SOG, after convergence, a single Gaussian.</li>
</ul>
<p>Refer to the papers: []</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html" title="Declares a virtual base class for all metric maps storage classes.">CMetricMap</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_beacon_map_8h_source.html">mrpt/slam/CBeaconMap.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CBeaconMap:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_beacon_map__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_beacon_map_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_beacon_map_inherit__map" id="mrpt_1_1slam_1_1_c_beacon_map_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_metric_map.html" title="Declares a virtual base class for all metric maps storage classes." alt="" coords="100,155,263,181"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT..." alt="" coords="4,80,168,107"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="19,5,153,32"/><area shape="rect" id="node8" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class..." alt="" coords="194,80,357,107"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_beacon_map-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_beacon_map_1_1_t_insertion_options.html">TInsertionOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct contains data for choosing the method by which new beacons are inserted in the map.  <a href="structmrpt_1_1slam_1_1_c_beacon_map_1_1_t_insertion_options.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_beacon_map_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 likelihood computations.  <a href="structmrpt_1_1slam_1_1_c_beacon_map_1_1_t_likelihood_options.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">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt; <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a970050930df22b53c16b68ff8c0dcfde">TSequenceBeacons</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt; <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &gt;<br class="typebreak"/>
::<a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt; <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &gt;<br class="typebreak"/>
::<a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a5905605f3fdfe2246c45ddbd48e12c17">CBeaconMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a5905605f3fdfe2246c45ddbd48e12c17"></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_beacon_map.html#add20b3c56b6e45654162b288518eb724">resize</a> (const size_t N)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the number of SOG modes.  <a href="#add20b3c56b6e45654162b288518eb724"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a1888b92a122444de47a83c589e57f381">operator[]</a> (size_t i) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to individual beacons.  <a href="#a1888b92a122444de47a83c589e57f381"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a5366a3d5101d8aa5639b6fed0cb1bc14">get</a> (size_t i) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to individual beacons.  <a href="#a5366a3d5101d8aa5639b6fed0cb1bc14"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a63fab5f16c55a0b2003afddbc88749a3">operator[]</a> (size_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to individual beacons.  <a href="#a63fab5f16c55a0b2003afddbc88749a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#aa91684a568b0a983e457822cefde73d7">get</a> (size_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to individual beacons.  <a href="#aa91684a568b0a983e457822cefde73d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#af044fdfcfd8ff46030b86c8776c41bf7">begin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#ab1274d9dc650c45d109cb2a9cbe2736c">begin</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#ac9e86a012b04c15a35bd7253341105f6">end</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a58341cb50e5685e8104a98cca794b1db">end</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_beacon_map.html#a5ae4f5765259e34a70cd1ed94f140976">push_back</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &amp;m)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a copy of the given mode into the SOG.  <a href="#a5ae4f5765259e34a70cd1ed94f140976"></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_beacon_map.html#adbb6d76531f715ce324ff8e8ed95b116">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="#adbb6d76531f715ce324ff8e8ed95b116"></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_beacon_map.html#a0d633f6b08d06ceb25b568e9fc0939b2">saveToMATLABScript3D</a> (<a class="el" href="classstd_1_1string.html">std::string</a> file, const char *style=&quot;b&quot;, float confInterval=0.95f) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save to a MATLAB script which displays 3D error ellipses for the map.  <a href="#a0d633f6b08d06ceb25b568e9fc0939b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#ae2069895de05d7abb8be8ab1c964bcf2">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stored landmarks count.  <a href="#ae2069895de05d7abb8be8ab1c964bcf2"></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_beacon_map.html#a7d00a85d2ba0979a7137931641d8d736">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 (logarithmic) likelihood that a given observation was taken from a given pose in the world being modeled with this map.  <a href="#a7d00a85d2ba0979a7137931641d8d736"></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_beacon_map.html#a0a503ad4e15e0dbba66ba684eb250b43">computeMatchingWith2D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the matchings between this and another 2D points map.  <a href="#a0a503ad4e15e0dbba66ba684eb250b43"></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_beacon_map.html#a7eff1306fe6c3fe70cf6306ecd2c1700">computeMatchingWith3DLandmarks</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html">mrpt::slam::CBeaconMap</a> *otherMap, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; bool &gt; &amp;otherCorrespondences) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a search for correspondences between "this" and another lansmarks map: Firsly, the landmarks' descriptor is used to find correspondences, then inconsistent ones removed by looking at their 3D poses.  <a href="#a7eff1306fe6c3fe70cf6306ecd2c1700"></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_beacon_map.html#ae66bfa1fd1b130c675f0bf32cd19d69c">changeCoordinatesReference</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;newOrg)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the reference system of the map to a given 3D pose.  <a href="#ae66bfa1fd1b130c675f0bf32cd19d69c"></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_beacon_map.html#a9bf81a26befd0bdee62f04c1261a1f84">changeCoordinatesReference</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;newOrg, const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html">mrpt::slam::CBeaconMap</a> *otherMap)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the reference system of the map "otherMap" and save the result in "this" map.  <a href="#a9bf81a26befd0bdee62f04c1261a1f84"></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_beacon_map.html#a0164b07f11921725c7397f8a7e9961d5">isEmpty</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the map is empty/no observation has been inserted.  <a href="#a0164b07f11921725c7397f8a7e9961d5"></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_beacon_map.html#a9a8f6c6af093ccea89ffddb0f0ec2d35">simulateBeaconReadings</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;in_robotPose, const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;in_sensorLocationOnRobot, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_beacon_ranges.html">CObservationBeaconRanges</a> &amp;out_Observations) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulates a reading toward each of the beacons in the landmarks map, if any.  <a href="#a9a8f6c6af093ccea89ffddb0f0ec2d35"></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_beacon_map.html#afce6434feaf927cbb988f9cdbed9f2ef">saveMetricMapRepresentationToFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;filNamePrefix) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface).  <a href="#afce6434feaf927cbb988f9cdbed9f2ef"></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_beacon_map.html#a1457ad2a29e684cf6bfefb0cb87cc035">saveToTextFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fil) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save a text file with a row per beacon, containing this 11 elements:  <a href="#a1457ad2a29e684cf6bfefb0cb87cc035"></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_beacon_map.html#a3162baeb76667e996b444fc846cfdeca">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 object representing the map.  <a href="#a3162baeb76667e996b444fc846cfdeca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a46d283659471a825e6d692e8af4b057c">getBeaconByID</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html#a8ee2d42606200f1c4cece3520a60cbe7">CBeacon::TBeaconID</a> id) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the beacon with the given ID, or NULL if it does not exist.  <a href="#a46d283659471a825e6d692e8af4b057c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a8cb543c8c17fee4941072aec99fd05d5">getBeaconByID</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html#a8ee2d42606200f1c4cece3520a60cbe7">CBeacon::TBeaconID</a> id)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the beacon with the given ID, or NULL if it does not exist.  <a href="#a8cb543c8c17fee4941072aec99fd05d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase all the contents of the map.  <a href="#afe18b3eac9b4ff07b674e0eb74652f5b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a9fbc1945a342365600bf352ec89fc617">loadFromProbabilisticPosesAndObservations</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;Map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map.  <a href="#a9fbc1945a342365600bf352ec89fc617"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aedf155237d3fe3d595994b9659a4e688">loadFromSimpleMap</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;Map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map.  <a href="#aedf155237d3fe3d595994b9659a4e688"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782">insertObservation</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the observation information into this map.  <a href="#ad1d3f22228d6dbdb3c31c132713bf782"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a7cb614f5ec634ec6f6a20b14163e5b07">insertObservationPtr</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper for smart pointers, just calls the non-smart pointer version.  <a href="#a7cb614f5ec634ec6f6a20b14163e5b07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a6adfc3df476a7edafaca40444d8dad04">computeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the log-likelihood of a given observation given an arbitrary robot 2D pose.  <a href="#a6adfc3df476a7edafaca40444d8dad04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8936d61e45446a74633d00a7ce6b4603">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="#a8936d61e45446a74633d00a7ce6b4603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8184371fde28bc35a9ec461240b83b43">computeObservationsLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the sum of the log-likelihoods of each individual observation within a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot; taken by the robot approximat...">mrpt::slam::CSensoryFrame</a>.  <a href="#a8184371fde28bc35a9ec461240b83b43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ab3b66046cae11313beba57052b852eca">canComputeObservationsLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.  <a href="#ab3b66046cae11313beba57052b852eca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a7aafbdbb3f2cb17e14e1af9997c3fa48">computeMatchingWith3D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=true, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the matchings between this and another 3D points map - method used in 3D-ICP.  <a href="#a7aafbdbb3f2cb17e14e1af9997c3fa48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aabd4d4be402cdd01bc8db467f214516a">auxParticleFilterCleanUp</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::CMetricMapBuilderRBPF::processActionObservation".  <a href="#aabd4d4be402cdd01bc8db467f214516a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ae6235efcb6d5da8e9db1ad6ccfb8225c">squareDistanceToClosestCorrespondence</a> (const float &amp;x0, const float &amp;y0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map.  <a href="#ae6235efcb6d5da8e9db1ad6ccfb8225c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ae7b0688c0e2c0d75554e22b739649463">getAsSimplePointsMap</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points map, return it.  <a href="#ae7b0688c0e2c0d75554e22b739649463"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ace4e7cc2a2f070d556c5074117a3aa2f">getAsSimplePointsMap</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a534695890364f4b916bba07dad311bcf">duplicateGetSmartPtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).  <a href="#a534695890364f4b916bba07dad311bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a9ef7857a0b36059c078e195a0a65ac00">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cloning interface for smart pointers.  <a href="#a9ef7857a0b36059c078e195a0a65ac00"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_beacon_map_1_1_t_likelihood_options.html">mrpt::slam::CBeaconMap::TLikelihoodOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#acd35411cb096cb22ce0494ec28d7bb49">likelihoodOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_beacon_map_1_1_t_insertion_options.html">mrpt::slam::CBeaconMap::TInsertionOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#af92218198ccb90daf261693a0edc00fe">insertionOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a2b50a8c61d853cc452b82d58756e9603">m_disableSaveAs3DObject</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">When set to true (default=false), calling "getAs3DObject" will have no effects.  <a href="#a2b50a8c61d853cc452b82d58756e9603"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTTI stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a83941bcaa17e7aae9ced964d7debd0f4">internal_clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the map, erasing all landmarks.  <a href="#a83941bcaa17e7aae9ced964d7debd0f4"></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_beacon_map.html#a668d4c99ef65c74893a50424e4b51834">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="#a668d4c99ef65c74893a50424e4b51834"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a0b6b801e67bca3d8e0d355e7035f8013">writeToStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;out, int *getVersion) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>.  <a href="#a0b6b801e67bca3d8e0d355e7035f8013"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a73ba83035a64939cdc3aa1c0dfed23ec">readFromStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;in, int version)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori.  <a href="#a73ba83035a64939cdc3aa1c0dfed23ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a0c384e00c06199bc2ff37ff5ecb520c9">publishEvent</a> (const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &amp;e) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when you want this object to emit an event to all the observers currently subscribed to this object.  <a href="#a0c384e00c06199bc2ff37ff5ecb520c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e">hasSubscribers</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called by a derived class before preparing an event for publishing with <em>publishEvent</em> to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read.  <a href="#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a970050930df22b53c16b68ff8c0dcfde">TSequenceBeacons</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#af158107c00aed005d3b197b9cd029a31">m_beacons</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The individual beacons.  <a href="#af158107c00aed005d3b197b9cd029a31"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_beacon_map_ptr.html">CBeaconMapPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a680fc07cd2211a4c96e90fe4d2b65f3e">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_beacon_map.html#a963ff3ffc0defb2434ca3313cbf1df4c">_init_CBeaconMap</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_beacon_map.html#a4e21fcb9463c2208863f4f65f626db23">classCBeaconMap</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_beacon_map.html#aae044c77b854d9a82f84587d8ea08479">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_beacon_map.html#ab9c67ed50f5c62710f5adb48e26cf341">_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_beacon_map.html#a9c158fb8e26380ea26ed250601599bc6">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="#a9c158fb8e26380ea26ed250601599bc6"></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_beacon_map.html#ac96c1b225716e20ed93e20962bf029be">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="#ac96c1b225716e20ed93e20962bf029be"></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_beacon_map.html#a66cd2817cd034489cfc4c1fa6683c2cb">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_beacon_map_ptr.html">CBeaconMapPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#af25a8b0aeeec7c72461f91242871039e">Create</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">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a1cbb8630027acc3d6d227fa7d78c724f">classCMetricMap</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</a></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a69ffbf9739be11525d3cbe16ed191e83"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::const_iterator" ref="a69ffbf9739be11525d3cbe16ed191e83" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&gt;::<a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a> <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">mrpt::slam::CBeaconMap::const_iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00077">77</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a344acb09a45b693c80d27ac2624d0eb2"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::iterator" ref="a344acb09a45b693c80d27ac2624d0eb2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&gt;::<a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a> <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">mrpt::slam::CBeaconMap::iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00076">76</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a680fc07cd2211a4c96e90fe4d2b65f3e"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::SmartPtr" ref="a680fc07cd2211a4c96e90fe4d2b65f3e" 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_beacon_map_ptr.html">CBeaconMapPtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a680fc07cd2211a4c96e90fe4d2b65f3e">mrpt::slam::CBeaconMap::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_beacon_map_8h_source.html#l00072">72</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a970050930df22b53c16b68ff8c0dcfde"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::TSequenceBeacons" ref="a970050930df22b53c16b68ff8c0dcfde" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a970050930df22b53c16b68ff8c0dcfde">mrpt::slam::CBeaconMap::TSequenceBeacons</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00075">75</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5905605f3fdfe2246c45ddbd48e12c17"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::CBeaconMap" ref="a5905605f3fdfe2246c45ddbd48e12c17" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CBeaconMap::CBeaconMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ab9c67ed50f5c62710f5adb48e26cf341"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::_GetBaseClass" ref="ab9c67ed50f5c62710f5adb48e26cf341" 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::CBeaconMap::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

</div>
</div>
<a class="anchor" id="af044fdfcfd8ff46030b86c8776c41bf7"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::begin" ref="af044fdfcfd8ff46030b86c8776c41bf7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a> mrpt::slam::CBeaconMap::begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00123">123</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab1274d9dc650c45d109cb2a9cbe2736c"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::begin" ref="ab1274d9dc650c45d109cb2a9cbe2736c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a> mrpt::slam::CBeaconMap::begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Returns true if this map is able to compute a sensible likelihood function for this observation (i.e. </p>
<p>an occupancy grid map cannot with an image). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">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_metric_map.html#ad5cefa1e3e6efb0cff473a32c5ed6009" title="Computes the log-likelihood of a given observation given an arbitrary robot 3D pose.">computeObservationLikelihood</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a614e663954432e3ebe8d0a6e7cc37e2b">mrpt::slam::COccupancyGridMap2D</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html#add146361dd182988749657d9970a0abb">mrpt::slam::CMultiMetricMap</a>.</p>

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

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

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

</div>
</div>
<a class="anchor" id="ae66bfa1fd1b130c675f0bf32cd19d69c"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::changeCoordinatesReference" ref="ae66bfa1fd1b130c675f0bf32cd19d69c" args="(const CPose3D &amp;newOrg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::changeCoordinatesReference </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>newOrg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the reference system of the map to a given 3D pose. </p>

</div>
</div>
<a class="anchor" id="a9bf81a26befd0bdee62f04c1261a1f84"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::changeCoordinatesReference" ref="a9bf81a26befd0bdee62f04c1261a1f84" args="(const CPose3D &amp;newOrg, const mrpt::slam::CBeaconMap *otherMap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::changeCoordinatesReference </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>newOrg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html">mrpt::slam::CBeaconMap</a> *&#160;</td>
          <td class="paramname"><em>otherMap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the reference system of the map "otherMap" and save the result in "this" map. </p>

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

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

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="adbb6d76531f715ce324ff8e8ed95b116"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::compute3DMatchingRatio" ref="adbb6d76531f715ce324ff8e8ed95b116" 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::CBeaconMap::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_beacon_map.html#a0a503ad4e15e0dbba66ba684eb250b43" title="Computes the matchings between this and another 2D points map.">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="a0a503ad4e15e0dbba66ba684eb250b43"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::computeMatchingWith2D" ref="a0a503ad4e15e0dbba66ba684eb250b43" args="(const CMetricMap *otherMap, const CPose2D &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const CPose2D &amp;angularDistPivotPoint, TMatchingPairList &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::computeMatchingWith2D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *&#160;</td>
          <td class="paramname"><em>otherMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>otherMapPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxDistForCorrespondence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxAngularDistForCorrespondence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>angularDistPivotPoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;&#160;</td>
          <td class="paramname"><em>correspondences</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>correspondencesRatio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>sumSqrDist</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>onlyKeepTheClosest</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>onlyUniqueRobust</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>decimation_other_map_points</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>offset_other_map_points</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

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

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a7eff1306fe6c3fe70cf6306ecd2c1700"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::computeMatchingWith3DLandmarks" ref="a7eff1306fe6c3fe70cf6306ecd2c1700" args="(const mrpt::slam::CBeaconMap *otherMap, TMatchingPairList &amp;correspondences, float &amp;correspondencesRatio, std::vector&lt; bool &gt; &amp;otherCorrespondences) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::computeMatchingWith3DLandmarks </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html">mrpt::slam::CBeaconMap</a> *&#160;</td>
          <td class="paramname"><em>otherMap</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"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>otherCorrespondences</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform a search for correspondences between "this" and another lansmarks map: Firsly, the landmarks' descriptor is used to find correspondences, then inconsistent ones removed by looking at their 3D poses. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">otherMap</td><td>[IN] The other map. </td></tr>
    <tr><td class="paramname">correspondences</td><td>[OUT] The matched pairs between maps. </td></tr>
    <tr><td class="paramname">correspondencesRatio</td><td>[OUT] This is NumberOfMatchings / NumberOfLandmarksInTheAnotherMap </td></tr>
    <tr><td class="paramname">otherCorrespondences</td><td>[OUT] Will be returned with a vector containing "true" for the indexes of the other map's landmarks with a correspondence. </td></tr>
  </table>
  </dd>
</dl>

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

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

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

</div>
</div>
<a class="anchor" id="a7d00a85d2ba0979a7137931641d8d736"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::computeObservationLikelihood" ref="a7d00a85d2ba0979a7137931641d8d736" args="(const CObservation *obs, const CPose3D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CBeaconMap::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 (logarithmic) likelihood that a given observation was taken from a given pose in the world being modeled with this map. </p>
<p>In the current implementation, this method behaves in a different way according to the nature of the observation's class:</p>
<ul>
<li>"mrpt::slam::CObservation2DRangeScan": This calls "computeLikelihood_RSLC_2007".</li>
<li>"mrpt::slam::CObservationStereoImages": This calls "computeLikelihood_SIFT_LandmarkMap".</li>
</ul>
<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 value &gt; 0.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>Used in particle filter algorithms, see: CMultiMetricMapPDF::update </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="a8184371fde28bc35a9ec461240b83b43"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::computeObservationsLikelihood" ref="a8184371fde28bc35a9ec461240b83b43" args="(const CSensoryFrame &amp;sf, const CPose2D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CMetricMap::computeObservationsLikelihood </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>takenFrom</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="af25a8b0aeeec7c72461f91242871039e"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::Create" ref="af25a8b0aeeec7c72461f91242871039e" 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_beacon_map_ptr.html">CBeaconMapPtr</a> mrpt::slam::CBeaconMap::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a66cd2817cd034489cfc4c1fa6683c2cb"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::CreateObject" ref="a66cd2817cd034489cfc4c1fa6683c2cb" 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::CBeaconMap::CreateObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac96c1b225716e20ed93e20962bf029be"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::duplicate" ref="ac96c1b225716e20ed93e20962bf029be" 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::CBeaconMap::duplicate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

</div>
</div>
<a class="anchor" id="ac9e86a012b04c15a35bd7253341105f6"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::end" ref="ac9e86a012b04c15a35bd7253341105f6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a344acb09a45b693c80d27ac2624d0eb2">iterator</a> mrpt::slam::CBeaconMap::end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00125">125</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a58341cb50e5685e8104a98cca794b1db"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::end" ref="a58341cb50e5685e8104a98cca794b1db" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a69ffbf9739be11525d3cbe16ed191e83">const_iterator</a> mrpt::slam::CBeaconMap::end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00126">126</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5366a3d5101d8aa5639b6fed0cb1bc14"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::get" ref="a5366a3d5101d8aa5639b6fed0cb1bc14" args="(size_t i) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&amp; mrpt::slam::CBeaconMap::get </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to individual beacons. </p>

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00108">108</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

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

</div>
</div>
<a class="anchor" id="aa91684a568b0a983e457822cefde73d7"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::get" ref="aa91684a568b0a983e457822cefde73d7" args="(size_t i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&amp; mrpt::slam::CBeaconMap::get </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to individual beacons. </p>

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

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

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

<p>Returns a 3D object representing the map. </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="ae7b0688c0e2c0d75554e22b739649463"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::getAsSimplePointsMap" ref="ae7b0688c0e2c0d75554e22b739649463" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a>* mrpt::slam::CMetricMap::getAsSimplePointsMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="a46d283659471a825e6d692e8af4b057c"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::getBeaconByID" ref="a46d283659471a825e6d692e8af4b057c" args="(CBeacon::TBeaconID id) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>* mrpt::slam::CBeaconMap::getBeaconByID </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html#a8ee2d42606200f1c4cece3520a60cbe7">CBeacon::TBeaconID</a>&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to the beacon with the given ID, or NULL if it does not exist. </p>

</div>
</div>
<a class="anchor" id="a8cb543c8c17fee4941072aec99fd05d5"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::getBeaconByID" ref="a8cb543c8c17fee4941072aec99fd05d5" args="(CBeacon::TBeaconID id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>* mrpt::slam::CBeaconMap::getBeaconByID </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html#a8ee2d42606200f1c4cece3520a60cbe7">CBeacon::TBeaconID</a>&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to the beacon with the given ID, or NULL if it does not exist. </p>

</div>
</div>
<a class="anchor" id="a9c158fb8e26380ea26ed250601599bc6"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::GetRuntimeClass" ref="a9c158fb8e26380ea26ed250601599bc6" 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::CBeaconMap::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

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

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

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

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

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

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

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>, <a class="el" href="_c_observation_8h_source.html#l00067">mrpt::slam::CObservationPtr::pointer()</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

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

<p>Clear the map, erasing all landmarks. </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="a668d4c99ef65c74893a50424e4b51834"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::internal_insertObservation" ref="a668d4c99ef65c74893a50424e4b51834" 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::CBeaconMap::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>
<p>This method must be implemented in derived classes. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obs</td><td>The observation </td></tr>
    <tr><td class="paramname">robotPose</td><td>The 3D pose of the robot mobile base in the map reference system, or NULL (default) if you want to use CPose2D(0,0,deg)</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</a> </dd></dl>

<p>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="a0164b07f11921725c7397f8a7e9961d5"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::isEmpty" ref="a0164b07f11921725c7397f8a7e9961d5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CBeaconMap::isEmpty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the map is empty/no observation has been inserted. </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="a9fbc1945a342365600bf352ec89fc617"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::loadFromProbabilisticPosesAndObservations" ref="a9fbc1945a342365600bf352ec89fc617" args="(const CSimpleMap &amp;Map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMap::loadFromProbabilisticPosesAndObservations </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;&#160;</td>
          <td class="paramname"><em>Map</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

</div>
</div>
<a class="anchor" id="a1888b92a122444de47a83c589e57f381"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::operator[]" ref="a1888b92a122444de47a83c589e57f381" args="(size_t i) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&amp; mrpt::slam::CBeaconMap::operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to individual beacons. </p>

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00103">103</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

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

</div>
</div>
<a class="anchor" id="a63fab5f16c55a0b2003afddbc88749a3"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::operator[]" ref="a63fab5f16c55a0b2003afddbc88749a3" args="(size_t i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a>&amp; mrpt::slam::CBeaconMap::operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to individual beacons. </p>

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00113">113</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

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

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

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

</div>
</div>
<a class="anchor" id="a5ae4f5765259e34a70cd1ed94f140976"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::push_back" ref="a5ae4f5765259e34a70cd1ed94f140976" args="(const CBeacon &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::push_back </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html">CBeacon</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts a copy of the given mode into the SOG. </p>

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00129">129</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

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

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

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

</div>
</div>
<a class="anchor" id="add20b3c56b6e45654162b288518eb724"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::resize" ref="add20b3c56b6e45654162b288518eb724" args="(const size_t N)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::resize </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>N</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resize the number of SOG modes. </p>

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

<p>This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface). </p>
<p>In the case of this class, these files are generated:</p>
<ul>
<li>"filNamePrefix"+"_3D.m": A script for MATLAB for drawing landmarks as 3D ellipses.</li>
<li>"filNamePrefix"+"_3D.3DScene": A 3D scene with a "ground plane grid" and the set of ellipsoids in 3D.</li>
<li>"filNamePrefix"+"_covs.m": A textual representation (see saveToTextFile) </li>
</ul>

<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="a0d633f6b08d06ceb25b568e9fc0939b2"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::saveToMATLABScript3D" ref="a0d633f6b08d06ceb25b568e9fc0939b2" args="(std::string file, const char *style=&quot;b&quot;, float confInterval=0.95f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CBeaconMap::saveToMATLABScript3D </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>style</em> = <code>&quot;b&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>confInterval</em> = <code>0.95f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Save to a MATLAB script which displays 3D error ellipses for the map. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>The name of the file to save the script to. </td></tr>
    <tr><td class="paramname">style</td><td>The MATLAB-like string for the style of the lines (see 'help plot' in MATLAB for posibilities) </td></tr>
    <tr><td class="paramname">stdCount</td><td>The ellipsoids will be drawn from the center to a given confidence interval in [0,1], e.g. 2 sigmas=0.95 (default is 2std = 0.95 confidence intervals)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns false if any error occured, true elsewere. </dd></dl>

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

<p>Save a text file with a row per beacon, containing this 11 elements: </p>
<ul>
<li>X Y Z: Mean values</li>
<li>VX VY VZ: Variances of each dimension (C11, C22, C33)</li>
<li>DET2D DET3D: Determinant of the 2D and 3D covariance matrixes.</li>
<li>C12, C13, C23: Cross covariances </li>
</ul>

</div>
</div>
<a class="anchor" id="a9a8f6c6af093ccea89ffddb0f0ec2d35"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::simulateBeaconReadings" ref="a9a8f6c6af093ccea89ffddb0f0ec2d35" args="(const CPose3D &amp;in_robotPose, const CPoint3D &amp;in_sensorLocationOnRobot, CObservationBeaconRanges &amp;out_Observations) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CBeaconMap::simulateBeaconReadings </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>in_robotPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>in_sensorLocationOnRobot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation_beacon_ranges.html">CObservationBeaconRanges</a> &amp;&#160;</td>
          <td class="paramname"><em>out_Observations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simulates a reading toward each of the beacons in the landmarks map, if any. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_robotPose</td><td>This robot pose is used to simulate the ranges to each beacon. </td></tr>
    <tr><td class="paramname">in_sensorLocationOnRobot</td><td>The 3D position of the sensor on the robot </td></tr>
    <tr><td class="paramname">out_Observations</td><td>The results will be stored here. NOTICE that the fields "CObservationBeaconRanges::minSensorDistance","CObservationBeaconRanges::maxSensorDistance" and "CObservationBeaconRanges::stdError" MUST BE FILLED OUT before calling this function. An observation will be generated for each beacon in the map, but notice that some of them may be missed if out of the sensor maximum range. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae2069895de05d7abb8be8ab1c964bcf2"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::size" ref="ae2069895de05d7abb8be8ab1c964bcf2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::slam::CBeaconMap::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the stored landmarks count. </p>

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

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

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

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

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

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

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

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

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

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

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

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a963ff3ffc0defb2434ca3313cbf1df4c"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::_init_CBeaconMap" ref="a963ff3ffc0defb2434ca3313cbf1df4c" 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_beacon_map.html#a963ff3ffc0defb2434ca3313cbf1df4c">mrpt::slam::CBeaconMap::_init_CBeaconMap</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00072">72</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4e21fcb9463c2208863f4f65f626db23"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::classCBeaconMap" ref="a4e21fcb9463c2208863f4f65f626db23" 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_beacon_map.html#a4e21fcb9463c2208863f4f65f626db23">mrpt::slam::CBeaconMap::classCBeaconMap</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00072">72</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="aae044c77b854d9a82f84587d8ea08479"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::classinfo" ref="aae044c77b854d9a82f84587d8ea08479" 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_beacon_map.html#aae044c77b854d9a82f84587d8ea08479">mrpt::slam::CBeaconMap::classinfo</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_beacon_map_8h_source.html#l00072">72</a> of file <a class="el" href="_c_beacon_map_8h_source.html">CBeaconMap.h</a>.</p>

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

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

</div>
</div>
<a class="anchor" id="af158107c00aed005d3b197b9cd029a31"></a><!-- doxytag: member="mrpt::slam::CBeaconMap::m_beacons" ref="af158107c00aed005d3b197b9cd029a31" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#a970050930df22b53c16b68ff8c0dcfde">TSequenceBeacons</a> <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#af158107c00aed005d3b197b9cd029a31">mrpt::slam::CBeaconMap::m_beacons</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The individual beacons. </p>

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

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

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

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

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