Sophie

Sophie

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

mrpt-doc-0.9.4-0.1.20110110svn2383.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>The MRPT project: mrpt::slam::CLandmarksMap Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.2 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
          <span class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </span><span class="right"></span>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li><a class="el" href="namespacemrpt_1_1slam.html">slam</a>      </li>
      <li><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</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="#pri-methods">Private Member Functions</a>  </div>
  <div class="headertitle">
<h1>mrpt::slam::CLandmarksMap Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::CLandmarksMap" --><!-- doxytag: inherits="mrpt::slam::CMetricMap" --><hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A class for storing a map of 3D probabilistic landmarks. </p>
<p><br/>
 Currently these types of landmarks are defined: (see <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html" title="The class for storing &quot;landmarks&quot; (visual or laser-scan-extracted features,...)">mrpt::slam::CLandmark</a>)</p>
<ul>
<li>For "visual landmarks" from images: features with associated descriptors.</li>
<li>For laser scanners: each of the range measuremnts, as "occupancy" landmarks.</li>
<li>For grid maps: "Panoramic descriptor" feature points.</li>
<li>For range-only localization and SLAM: Beacons. It is also supported the simulation of expected beacon-to-sensor readings, observation likelihood,... <br/>
 <b>How to load landmarks from observations:</b><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.">CLandmarksMap::insertObservation()</a>, the values in <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ad91970cef3d85aa5c83fd848776cef34">CLandmarksMap::insertionOptions</a> will determinate the kind of landmarks that will be extracted and fused into the map. Supported feature extraction processes are listed next:</li>
</ul>
<table class="doxtable">
<tr>
<td><b>Observation class:</b> </td><td><b>Generated Landmarks:</b> </td><td><b>Comments:</b>  </td></tr>
<tr>
<td><a class="el" href="classmrpt_1_1slam_1_1_c_observation_image.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules an image from a camera...">CObservationImage</a> </td><td>vlSIFT </td><td>1) A SIFT feature is created for each SIFT detected in the image, <br/>
2) Correspondences between SIFTs features and existing ones are finded by computeMatchingWith3DLandmarks, <br/>
3) The corresponding feaures are fused, and the new ones added, with an initial uncertainty according to insertionOptions  </td></tr>
<tr>
<td><a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html" title="Observation class for either a pair of left+right or left+disparity images from a stereo camera...">CObservationStereoImages</a> </td><td>vlSIFT </td><td>Each image is separately procesed by the method for <a class="el" href="classmrpt_1_1slam_1_1_c_observation_image.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules an image from a camera...">CObservationImage</a> observations   </td></tr>
<tr>
<td><a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html" title="Observation class for either a pair of left+right or left+disparity images from a stereo camera...">CObservationStereoImages</a> </td><td>vlColor </td><td>TODO...   </td></tr>
<tr>
<td><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html" title="A &quot;CObservation&quot;-derived class that represents a 2D range scan measurement (typically from ...">CObservation2DRangeScan</a> </td><td>glOccupancy </td><td>A landmark is added for each range in the scan, with its appropiate covariance matrix derived from the jacobians matrixes.   </td></tr>
</table>
<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>

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

<p><code>#include &lt;<a class="el" href="_c_landmarks_map_8h_source.html">mrpt/slam/CLandmarksMap.h</a>&gt;</code></p>
<!-- startSectionHeader --><div class="dynheader">
Inheritance diagram for mrpt::slam::CLandmarksMap:<!-- endSectionHeader --></div>
<!-- startSectionSummary --><!-- endSectionSummary --><!-- startSectionContent --><div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_landmarks_map__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_landmarks_map_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_landmarks_map_inherit__map" id="mrpt_1_1slam_1_1_c_landmarks_map_inherit__map">
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center><!-- endSectionContent --></div>

<p><a href="classmrpt_1_1slam_1_1_c_landmarks_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_landmarks_map_1_1_t_custom_sequence_landmarks.html">TCustomSequenceLandmarks</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of landmarks: the wrapper class is just for maintaining the KD-Tree representation.  <a href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_custom_sequence_landmarks.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_landmarks_map_1_1_t_fuse_options.html">TFuseOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">With this struct options are provided to the fusion process.  <a href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_fuse_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_landmarks_map_1_1_t_insertion_options.html">TInsertionOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">With this struct options are provided to the observation insertion process.  <a href="structmrpt_1_1slam_1_1_c_landmarks_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_landmarks_map_1_1_t_insertion_results.html">TInsertionResults</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct stores extra results from invoking insertObservation.  <a href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_insertion_results.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_landmarks_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_landmarks_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="classmrpt_1_1slam_1_1_c_landmark.html">mrpt::slam::CLandmark</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ab48b1c6e6701a0d5182e17d50248d32d">landmark_type</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_landmarks_map.html#a4a208e02529813a34dfffe58110e7d33">CLandmarksMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a4a208e02529813a34dfffe58110e7d33"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a9bb649f8ad348d557d4ea0bc077f51a7">~CLandmarksMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor.  <a href="#a9bb649f8ad348d557d4ea0bc077f51a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a8885713da55db046537a3b423ddf22a5">getMapMaxID</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ab97e7f011d8b72951725669d770af58e">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="#ab97e7f011d8b72951725669d770af58e"></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_landmarks_map.html#ad7e91ccd233e610a748c2438715e1b62">saveToTextFile</a> (std::string file)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save to a text file.  <a href="#ad7e91ccd233e610a748c2438715e1b62"></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_landmarks_map.html#a5c2e6012bb95017cd62fa7f9de228470">saveToMATLABScript2D</a> (std::string file, const char *style=&quot;b&quot;, float stdCount=2.0f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save to a MATLAB script which displays 2D error ellipses for the map (top-view, projection on the XY plane).  <a href="#a5c2e6012bb95017cd62fa7f9de228470"></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_landmarks_map.html#a5043597fe0351ff24d499035a4fc907e">saveToMATLABScript3D</a> (std::string 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="#a5043597fe0351ff24d499035a4fc907e"></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_landmarks_map.html#a36f9e28d3f98e252e9c8265a775a3d43">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stored landmarks count.  <a href="#a36f9e28d3f98e252e9c8265a775a3d43"></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_landmarks_map.html#a5e959578c8c44f14f6658bdee4b6a4af">computeLikelihood_RSLC_2007</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> *s, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;sensorPose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy.  <a href="#a5e959578c8c44f14f6658bdee4b6a4af"></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_landmarks_map.html#a6e5ac291f1edda8ce0e31dcb26727ef5">loadSiftFeaturesFromImageObservation</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_image.html">CObservationImage</a> &amp;obs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads into this landmarks map the SIFT features extracted from an image observation (Previous contents of map will be erased) The robot is assumed to be at the origin of the map.  <a href="#a6e5ac291f1edda8ce0e31dcb26727ef5"></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_landmarks_map.html#a3cbf9def37b2397cc51ed9747f24f515">loadSiftFeaturesFromStereoImageObservation</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html">CObservationStereoImages</a> &amp;obs, <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a> fID)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads into this landmarks map the SIFT features extracted from an observation consisting of a pair of stereo-image (Previous contents of map will be erased) The robot is assumed to be at the origin of the map.  <a href="#a3cbf9def37b2397cc51ed9747f24f515"></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_landmarks_map.html#adc50d9b64f4850cdbd5991bdb5f05e75">loadOccupancyFeaturesFrom2DRangeScan</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL, unsigned int downSampleFactor=1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads into this landmarks-map a set of occupancy features according to a 2D range scan (Previous contents of map will be erased)  <a href="#adc50d9b64f4850cdbd5991bdb5f05e75"></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_landmarks_map.html#aabed5d111907270ef896b2588a8bfbb8">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="#aabed5d111907270ef896b2588a8bfbb8"></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_landmarks_map.html#a1b4ddd18ca59e4ff5ce4624fee6602ea">computeMatchingWith2D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the matchings between this and another 2D points map.  <a href="#a1b4ddd18ca59e4ff5ce4624fee6602ea"></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_landmarks_map.html#a73ba59b3b1af33c4f86e648268991cea">computeMatchingWith3DLandmarks</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">mrpt::slam::CLandmarksMap</a> *otherMap, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, std::vector&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: In this class, the matching is established solely based on the landmarks' IDs.  <a href="#a73ba59b3b1af33c4f86e648268991cea"></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_landmarks_map.html#ab4654023680f19e3b4b612ed1bc94ffb">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="#ab4654023680f19e3b4b612ed1bc94ffb"></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_landmarks_map.html#a0fddef49f06149f3f5b4692f9284b04d">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_landmarks_map.html">mrpt::slam::CLandmarksMap</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="#a0fddef49f06149f3f5b4692f9284b04d"></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_landmarks_map.html#adede8ba9b97599bfdb6763d030bb2681">fuseWith</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &amp;other, bool justInsertAllOfThem=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fuses the contents of another map with this one, updating "this" object with the result.  <a href="#adede8ba9b97599bfdb6763d030bb2681"></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_landmarks_map.html#a7c953e35011ee54f8cdb0405cf29c2e3">computeLikelihood_SIFT_LandmarkMap</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> *map, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> *correspondences=NULL, std::vector&lt; bool &gt; *otherCorrespondences=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the (logarithmic) likelihood of a set of landmarks "map" given "this" map.  <a href="#a7c953e35011ee54f8cdb0405cf29c2e3"></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_landmarks_map.html#ac4df34b818a5d55074c5cb3fc711252d">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="#ac4df34b818a5d55074c5cb3fc711252d"></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_landmarks_map.html#a27bce6a4ab09791a50b009fd96dc98c4">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 noisy reading toward each of the beacons in the landmarks map, if any.  <a href="#a27bce6a4ab09791a50b009fd96dc98c4"></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_landmarks_map.html#a08fd3ab063d7a8300f84b8771601ed7e">simulateRangeBearingReadings</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_pose3_d.html">CPose3D</a> &amp;in_sensorLocationOnRobot, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html">CObservationBearingRange</a> &amp;out_Observations, bool sensorDetectsIDs=true, const float &amp;in_stdRange=0.01f, const float &amp;in_stdYaw=DEG2RAD(0.1f), const float &amp;in_stdPitch=DEG2RAD(0.1f), vector_size_t *out_real_associations=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulates a noisy bearing-range observation of all the beacons (landamrks with type glBeacon) in the landmarks map, if any.  <a href="#a08fd3ab063d7a8300f84b8771601ed7e"></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_landmarks_map.html#aaa36737baa422bf3efc4958a85dcc6fc">saveMetricMapRepresentationToFile</a> (const std::string &amp;filNamePrefix) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface).  <a href="#aaa36737baa422bf3efc4958a85dcc6fc"></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_landmarks_map.html#a3da069a47977f0d9e0c5755a4f785044">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="#a3da069a47977f0d9e0c5755a4f785044"></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_landmarks_map.html#a6d3cceef8d16570879f392c1274042e1">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="#a6d3cceef8d16570879f392c1274042e1"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct VISION_IMPEXP <br class="typebreak"/>
<a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_custom_sequence_landmarks.html">mrpt::slam::CLandmarksMap::TCustomSequenceLandmarks</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a9d722a101559b8f25bfe251eb43afee3">landmarks</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_insertion_options.html">mrpt::slam::CLandmarksMap::TInsertionOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ad91970cef3d85aa5c83fd848776cef34">insertionOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_likelihood_options.html">mrpt::slam::CLandmarksMap::TLikelihoodOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#abdfc84a36d90df2ec598dfad9db275b7">likelihoodOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct VISION_IMPEXP <br class="typebreak"/>
<a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_insertion_results.html">mrpt::slam::CLandmarksMap::TInsertionResults</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a1c6ab87ec1fab5b221ba33db50445653">insertionResults</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct VISION_IMPEXP <br class="typebreak"/>
<a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_fuse_options.html">mrpt::slam::CLandmarksMap::TFuseOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a47c295ea68e88e9c5d067c91ff80fdd1">fuseOptions</a></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 <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a8ffcbfa68adf79f56c4d00e4157ebf55">COLOR_LANDMARKS_IN_3DSCENES</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The color of landmark ellipsoids in <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a3da069a47977f0d9e0c5755a4f785044" title="Returns a 3D object representing the map.">CLandmarksMap::getAs3DObject</a>.  <a href="#a8ffcbfa68adf79f56c4d00e4157ebf55"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static std::map&lt; std::pair<br class="typebreak"/>
&lt; <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a>, <br class="typebreak"/>
<a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a> &gt;<br class="typebreak"/>
, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a2ce793f40b47fae3855a944727eecc6d">_mEDD</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_map.html" title="A matrix or vector expression mapping an existing array of data.">Map</a> of the Euclidean Distance between the descriptors of two SIFT-based landmarks.  <a href="#a2ce793f40b47fae3855a944727eecc6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <br class="typebreak"/>
<a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ae9ac8e48f336e11dae14770b9348c30a">_mapMaxID</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ab7e0c7d75843806aaa90a29d9d372a0f">_maxIDUpdated</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a6ca13b1304fba1d8b83c289caa74dd72">internal_clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method called by <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b" title="Erase all the contents of the map.">clear()</a>  <a href="#a6ca13b1304fba1d8b83c289caa74dd72"></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_landmarks_map.html#a1cc9215c31d5ce3d6e1715ae4844088f">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="#a1cc9215c31d5ce3d6e1715ae4844088f"></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_landmarks_map_ptr.html">CLandmarksMapPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a55c53c2f970e1847e6b8b06259869896">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_landmarks_map.html#a96a8d85d6b29e753c8aa02853a2a0bb1">_init_CLandmarksMap</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_landmarks_map.html#a071a29e6ddbc5d0d18cdaa09700dd5a8">classCLandmarksMap</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_landmarks_map.html#acdacdb286656906e8600af5fa7d6fe3c">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_landmarks_map.html#a6d92c6e8161894485da8f966a94eeb85">_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_landmarks_map.html#aee803e47300b638302daf2a6c737c4c5">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="#aee803e47300b638302daf2a6c737c4c5"></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_landmarks_map.html#a2092c4cab9d1062f66449832e970d427">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="#a2092c4cab9d1062f66449832e970d427"></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_landmarks_map.html#afc7416252811f80a321774e243eaafda">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_ptr.html">CLandmarksMapPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a549e66ea060c96ab704c4917825b0c04">Create</a> ()</td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ab48b1c6e6701a0d5182e17d50248d32d"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::landmark_type" ref="ab48b1c6e6701a0d5182e17d50248d32d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html">mrpt::slam::CLandmark</a> <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html">mrpt::slam::CLandmarksMap::landmark_type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a55c53c2f970e1847e6b8b06259869896"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::SmartPtr" ref="a55c53c2f970e1847e6b8b06259869896" 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_landmarks_map_ptr.html">CLandmarksMapPtr</a> <a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_ptr.html">mrpt::slam::CLandmarksMap::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_landmarks_map_8h_source.html#l00083">83</a> of file <a class="el" href="_c_landmarks_map_8h_source.html">CLandmarksMap.h</a>.</p>

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

<p>Constructor. </p>

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

<p>Virtual destructor. </p>

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

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

</div>
</div>
<a class="anchor" id="a6d3cceef8d16570879f392c1274042e1"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::auxParticleFilterCleanUp" ref="a6d3cceef8d16570879f392c1274042e1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::auxParticleFilterCleanUp </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ab4654023680f19e3b4b612ed1bc94ffb"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::changeCoordinatesReference" ref="ab4654023680f19e3b4b612ed1bc94ffb" args="(const CPose3D &amp;newOrg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::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>&#160;)</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="a0fddef49f06149f3f5b4692f9284b04d"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::changeCoordinatesReference" ref="a0fddef49f06149f3f5b4692f9284b04d" args="(const CPose3D &amp;newOrg, const mrpt::slam::CLandmarksMap *otherMap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::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_landmarks_map.html">mrpt::slam::CLandmarksMap</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="ab97e7f011d8b72951725669d770af58e"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::compute3DMatchingRatio" ref="ab97e7f011d8b72951725669d770af58e" 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::CLandmarksMap::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_landmarks_map.html#a1b4ddd18ca59e4ff5ce4624fee6602ea" 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="a5e959578c8c44f14f6658bdee4b6a4af"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::computeLikelihood_RSLC_2007" ref="a5e959578c8c44f14f6658bdee4b6a4af" args="(const CLandmarksMap *s, const CPose2D &amp;sensorPose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CLandmarksMap::computeLikelihood_RSLC_2007 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> *&#160;</td>
          <td class="paramname"> <em>s</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>sensorPose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy. </p>
<p>Computes the (logarithmic) likelihood function for a sensed observation "o" according to "this" map. This is the implementation of the algorithm reported in the paper: <em>J.L. Blanco, J. Gonzalez, and J.A. Fernandez-Madrigal, "A Consensus-based Approach for Estimating the Observation Likelihood of Accurate Range Sensors", in IEEE International Conference on Robotics and Automation (ICRA), Rome (Italy), Apr 10-14, 2007</em> </p>

</div>
</div>
<a class="anchor" id="a7c953e35011ee54f8cdb0405cf29c2e3"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::computeLikelihood_SIFT_LandmarkMap" ref="a7c953e35011ee54f8cdb0405cf29c2e3" args="(CLandmarksMap *map, TMatchingPairList *correspondences=NULL, std::vector&lt; bool &gt; *otherCorrespondences=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CLandmarksMap::computeLikelihood_SIFT_LandmarkMap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> *&#160;</td>
          <td class="paramname"> <em>map</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> *&#160;</td>
          <td class="paramname"> <em>correspondences</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
          <td class="paramname"> <em>otherCorrespondences</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the (logarithmic) likelihood of a set of landmarks "map" given "this" map. </p>
<p>See paper: JJAA 2006 </p>

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

<p>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">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_landmarks_map.html#ab97e7f011d8b72951725669d770af58e" title="Computes the ratio in [0,1] of correspondences between &quot;this&quot; and the &quot;otherMap&quot; ...">compute3DMatchingRatio</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a73ba59b3b1af33c4f86e648268991cea"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::computeMatchingWith3DLandmarks" ref="a73ba59b3b1af33c4f86e648268991cea" args="(const mrpt::slam::CLandmarksMap *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::CLandmarksMap::computeMatchingWith3DLandmarks </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">mrpt::slam::CLandmarksMap</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">std::vector&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: In this class, the matching is established solely based on the landmarks' IDs. </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="aabed5d111907270ef896b2588a8bfbb8"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::computeObservationLikelihood" ref="aabed5d111907270ef896b2588a8bfbb8" args="(const CObservation *obs, const CPose3D &amp;takenFrom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CLandmarksMap::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="a549e66ea060c96ab704c4917825b0c04"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::Create" ref="a549e66ea060c96ab704c4917825b0c04" 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_landmarks_map_ptr.html">CLandmarksMapPtr</a> mrpt::slam::CLandmarksMap::Create </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

</div>
</div>
<a class="anchor" id="adede8ba9b97599bfdb6763d030bb2681"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::fuseWith" ref="adede8ba9b97599bfdb6763d030bb2681" args="(CLandmarksMap &amp;other, bool justInsertAllOfThem=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::fuseWith </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html">CLandmarksMap</a> &amp;&#160;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>justInsertAllOfThem</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fuses the contents of another map with this one, updating "this" object with the result. </p>
<p>This process involves fusing corresponding landmarks, then adding the new ones. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>The other landmarkmap, whose landmarks will be inserted into "this" </td></tr>
    <tr><td class="paramname">justInsertAllOfThem</td><td>If set to "true", all the landmarks in "other" will be inserted into "this" without checking for possible correspondences (may appear duplicates ones, etc...) </td></tr>
  </table>
  </dd>
</dl>

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

<p>Returns a 3D object representing the map. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a8ffcbfa68adf79f56c4d00e4157ebf55" title="The color of landmark ellipsoids in CLandmarksMap::getAs3DObject.">COLOR_LANDMARKS_IN_3DSCENES</a> </dd></dl>

<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="a8885713da55db046537a3b423ddf22a5"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::getMapMaxID" ref="a8885713da55db046537a3b423ddf22a5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a> mrpt::slam::CLandmarksMap::getMapMaxID </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="a6ca13b1304fba1d8b83c289caa74dd72"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::internal_clear" ref="a6ca13b1304fba1d8b83c289caa74dd72" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CLandmarksMap::internal_clear </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [private, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal method called by <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b" title="Erase all the contents of the map.">clear()</a> </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="a1cc9215c31d5ce3d6e1715ae4844088f"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::internal_insertObservation" ref="a1cc9215c31d5ce3d6e1715ae4844088f" 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::CLandmarksMap::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> [private, 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#abb4939fca9a78fe17a0fe71684ef486c" title="This method is equivalent to:">CObservation::insertObservationInto</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="ac4df34b818a5d55074c5cb3fc711252d"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::isEmpty" ref="ac4df34b818a5d55074c5cb3fc711252d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CLandmarksMap::isEmpty </td>
          <td>(</td>
          <td class="paramname">&#160;)</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="adc50d9b64f4850cdbd5991bdb5f05e75"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::loadOccupancyFeaturesFrom2DRangeScan" ref="adc50d9b64f4850cdbd5991bdb5f05e75" args="(const CObservation2DRangeScan &amp;obs, const CPose3D *robotPose=NULL, unsigned int downSampleFactor=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::loadOccupancyFeaturesFrom2DRangeScan </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>downSampleFactor</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads into this landmarks-map a set of occupancy features according to a 2D range scan (Previous contents of map will be erased) </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 robot pose in the map (Default = the origin) Some options may be applicable from "insertionOptions" </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6e5ac291f1edda8ce0e31dcb26727ef5"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::loadSiftFeaturesFromImageObservation" ref="a6e5ac291f1edda8ce0e31dcb26727ef5" args="(const CObservationImage &amp;obs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::loadSiftFeaturesFromImageObservation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_image.html">CObservationImage</a> &amp;&#160;</td>
          <td class="paramname"> <em>obs</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads into this landmarks map the SIFT features extracted from an image observation (Previous contents of map will be erased) The robot is assumed to be at the origin of the map. </p>
<p>Some options may be applicable from "insertionOptions" (insertionOptions.SIFTsLoadDistanceOfTheMean) </p>

</div>
</div>
<a class="anchor" id="a3cbf9def37b2397cc51ed9747f24f515"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::loadSiftFeaturesFromStereoImageObservation" ref="a3cbf9def37b2397cc51ed9747f24f515" args="(const CObservationStereoImages &amp;obs, mrpt::slam::CLandmark::TLandmarkID fID)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::loadSiftFeaturesFromStereoImageObservation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html">CObservationStereoImages</a> &amp;&#160;</td>
          <td class="paramname"> <em>obs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a>&#160;</td>
          <td class="paramname"> <em>fID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads into this landmarks map the SIFT features extracted from an observation consisting of a pair of stereo-image (Previous contents of map will be erased) The robot is assumed to be at the origin of the map. </p>
<p>Some options may be applicable from "insertionOptions" </p>

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

<p>This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface). </p>
<p>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>
</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="a5c2e6012bb95017cd62fa7f9de228470"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::saveToMATLABScript2D" ref="a5c2e6012bb95017cd62fa7f9de228470" args="(std::string file, const char *style=&quot;b&quot;, float stdCount=2.0f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CLandmarksMap::saveToMATLABScript2D </td>
          <td>(</td>
          <td class="paramtype">std::string&#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>stdCount</em> = <code>2.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Save to a MATLAB script which displays 2D error ellipses for the map (top-view, projection on the XY plane). </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 "stdCount" times the "standard deviations". (default is 2std = 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="a5043597fe0351ff24d499035a4fc907e"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::saveToMATLABScript3D" ref="a5043597fe0351ff24d499035a4fc907e" 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::CLandmarksMap::saveToMATLABScript3D </td>
          <td>(</td>
          <td class="paramtype">std::string&#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="ad7e91ccd233e610a748c2438715e1b62"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::saveToTextFile" ref="ad7e91ccd233e610a748c2438715e1b62" args="(std::string file)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CLandmarksMap::saveToTextFile </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"> <em>file</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Save to a text file. </p>
<p>In line "i" there are the (x,y,z) mean values of the i'th landmark + type of landmark + # times seen + timestamp + RGB/descriptor + ID</p>
<p>Returns false if any error occured, true elsewere. </p>

</div>
</div>
<a class="anchor" id="a27bce6a4ab09791a50b009fd96dc98c4"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::simulateBeaconReadings" ref="a27bce6a4ab09791a50b009fd96dc98c4" 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::CLandmarksMap::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 noisy 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="a08fd3ab063d7a8300f84b8771601ed7e"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::simulateRangeBearingReadings" ref="a08fd3ab063d7a8300f84b8771601ed7e" args="(const CPose3D &amp;in_robotPose, const CPose3D &amp;in_sensorLocationOnRobot, CObservationBearingRange &amp;out_Observations, bool sensorDetectsIDs=true, const float &amp;in_stdRange=0.01f, const float &amp;in_stdYaw=DEG2RAD(0.1f), const float &amp;in_stdPitch=DEG2RAD(0.1f), vector_size_t *out_real_associations=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CLandmarksMap::simulateRangeBearingReadings </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_pose3_d.html">CPose3D</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_bearing_range.html">CObservationBearingRange</a> &amp;&#160;</td>
          <td class="paramname"> <em>out_Observations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>sensorDetectsIDs</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"> <em>in_stdRange</em> = <code>0.01f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"> <em>in_stdYaw</em> = <code>DEG2RAD(0.1f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"> <em>in_stdPitch</em> = <code>DEG2RAD(0.1f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt.html#ad4d2b1efd37ed750302c76ebbcfc310d">vector_size_t</a> *&#160;</td>
          <td class="paramname"> <em>out_real_associations</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simulates a noisy bearing-range observation of all the beacons (landamrks with type glBeacon) 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>The robot pose. </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. </td></tr>
    <tr><td class="paramname">sensorDetectsIDs</td><td>If this is set to false, all the landmarks will be sensed with INVALID_LANDMARK_ID as ID. </td></tr>
    <tr><td class="paramname">in_stdRange</td><td>The sigma of the sensor noise in range (meters). </td></tr>
    <tr><td class="paramname">in_stdYaw</td><td>The sigma of the sensor noise in yaw (radians). </td></tr>
    <tr><td class="paramname">in_stdPitch</td><td>The sigma of the sensor noise in pitch (radians). </td></tr>
    <tr><td class="paramname">out_real_associations</td><td>If it's not a NULL pointer, this will contain at the return the real indices of the landmarks in the map in the same order than they appear in out_Observations. Useful when sensorDetectsIDs=false. </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The fields "CObservationBearingRange::fieldOfView_*","CObservationBearingRange::maxSensorDistance" and "CObservationBearingRange::minSensorDistance" MUST BE FILLED OUT before calling this function. </dd>
<dd>
At output, the observation will have <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html#aa04b4729509318c0774a74081f48e7f1" title="True: The individual 3x3 covariance matrices must be taken into account, false (default): All the mea...">CObservationBearingRange::validCovariances</a> set to "false" and the 3 sensor_std_* members correctly set to their values. 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 or field of view- </dd></dl>

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

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

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

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

</div>
</div>
<a class="anchor" id="ae9ac8e48f336e11dae14770b9348c30a"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::_mapMaxID" ref="ae9ac8e48f336e11dae14770b9348c30a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a> <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#ae9ac8e48f336e11dae14770b9348c30a">mrpt::slam::CLandmarksMap::_mapMaxID</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="a2ce793f40b47fae3855a944727eecc6d"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::_mEDD" ref="a2ce793f40b47fae3855a944727eecc6d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;std::pair&lt;<a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a7d42fbd58a31278cb344b78ce8af3cf9">mrpt::slam::CLandmark::TLandmarkID</a>&gt;, double&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a2ce793f40b47fae3855a944727eecc6d">mrpt::slam::CLandmarksMap::_mEDD</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="class_map.html" title="A matrix or vector expression mapping an existing array of data.">Map</a> of the Euclidean Distance between the descriptors of two SIFT-based landmarks. </p>

<p>Definition at line <a class="el" href="_c_landmarks_map_8h_source.html#l00182">182</a> of file <a class="el" href="_c_landmarks_map_8h_source.html">CLandmarksMap.h</a>.</p>

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

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

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

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

</div>
</div>
<a class="anchor" id="a8ffcbfa68adf79f56c4d00e4157ebf55"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::COLOR_LANDMARKS_IN_3DSCENES" ref="a8ffcbfa68adf79f56c4d00e4157ebf55" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a8ffcbfa68adf79f56c4d00e4157ebf55">mrpt::slam::CLandmarksMap::COLOR_LANDMARKS_IN_3DSCENES</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The color of landmark ellipsoids in <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a3da069a47977f0d9e0c5755a4f785044" title="Returns a 3D object representing the map.">CLandmarksMap::getAs3DObject</a>. </p>

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

</div>
</div>
<a class="anchor" id="a47c295ea68e88e9c5d067c91ff80fdd1"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::fuseOptions" ref="a47c295ea68e88e9c5d067c91ff80fdd1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct VISION_IMPEXP <a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_fuse_options.html">mrpt::slam::CLandmarksMap::TFuseOptions</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a47c295ea68e88e9c5d067c91ff80fdd1">mrpt::slam::CLandmarksMap::fuseOptions</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a1c6ab87ec1fab5b221ba33db50445653"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::insertionResults" ref="a1c6ab87ec1fab5b221ba33db50445653" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct VISION_IMPEXP <a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_insertion_results.html">mrpt::slam::CLandmarksMap::TInsertionResults</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a1c6ab87ec1fab5b221ba33db50445653">mrpt::slam::CLandmarksMap::insertionResults</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9d722a101559b8f25bfe251eb43afee3"></a><!-- doxytag: member="mrpt::slam::CLandmarksMap::landmarks" ref="a9d722a101559b8f25bfe251eb43afee3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct VISION_IMPEXP <a class="el" href="structmrpt_1_1slam_1_1_c_landmarks_map_1_1_t_custom_sequence_landmarks.html">mrpt::slam::CLandmarksMap::TCustomSequenceLandmarks</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a9d722a101559b8f25bfe251eb43afee3">mrpt::slam::CLandmarksMap::landmarks</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.2</a> for MRPT 0.9.4 SVN: at Mon Jan 10 22:30:30 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table> </body></html>