Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::slam::CPointsMap Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1slam.html">slam</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::slam::CPointsMap Class Reference<div class="ingroups"><a class="el" href="group__mrpt__maps__grp.html">[mrpt-maps]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::CPointsMap" --><!-- doxytag: inherits="mrpt::slam::CMetricMap,KDTreeCapable&lt; CPointsMap &gt;,mrpt::utils::PLY_Importer,mrpt::utils::PLY_Exporter" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors. </p>
<p>This is a virtual class, thus only a derived class can be instantiated by the user. The user most usually wants to use <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans.">CSimplePointsMap</a>.</p>
<p>This class implements generic version of mrpt::slam::CMetric::insertObservation() accepting these types of sensory data:</p>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html" title="A &quot;CObservation&quot;-derived class that represents a 2D range scan measurement (typically from a laser sc...">mrpt::slam::CObservation2DRangeScan</a>: 2D range scans</li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">mrpt::slam::CObservation3DRangeScan</a>: 3D range scans (Kinect, etc...)</li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_observation_range.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a single range measurement, and associated parameters.">mrpt::slam::CObservationRange</a>: IRs, Sonars, etc.</li>
</ul>
<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>, CPoint, <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT...">mrpt::utils::CSerializable</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_points_map_8h_source.html">mrpt/slam/CPointsMap.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CPointsMap:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_points_map__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_points_map_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_points_map_inherit__map" id="mrpt_1_1slam_1_1_c_points_map_inherit__map">
<area shape="rect" id="node19" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html" title="A map of 2D/3D points with individual colours (RGB)." alt="" coords="1079,87,1295,113"/><area shape="rect" id="node21" href="classmrpt_1_1slam_1_1_c_simple_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans." alt="" coords="1085,137,1289,164"/><area shape="rect" id="node23" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans." alt="" coords="1077,188,1296,215"/><area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_metric_map.html" title="Declares a virtual base class for all metric maps storage classes." alt="" coords="588,56,751,83"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT..." alt="" coords="203,5,368,32"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="5,5,141,32"/><area shape="rect" id="node8" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class..." alt="" coords="203,56,367,83"/><area shape="rect" id="node10" href="classmrpt_1_1math_1_1_k_d_tree_capable.html" title="mrpt::math::KDTreeCapable\&lt; CPointsMap \&gt;" alt="" coords="528,107,811,133"/><area shape="rect" id="node12" href="classmrpt_1_1math_1_1_k_d_tree_capable.html" title="A generic adaptor class for providing Approximate Nearest Neighbors (ANN) (via the nanoflann library)..." alt="" coords="192,107,379,133"/><area shape="rect" id="node14" href="classmrpt_1_1utils_1_1_p_l_y___importer.html" title="A virtual base class that implements the capability of importing 3D point clouds and faces from a fil..." alt="" coords="585,157,753,184"/><area shape="rect" id="node16" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html" title="A virtual base class that implements the capability of exporting 3D point clouds and faces to a file ..." alt="" coords="585,208,754,235"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_points_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_points_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_points_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_points_map_1_1_t_laser_range2_d_insert_context.html">TLaserRange2DInsertContext</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper struct used for <em>internal_loadFromRangeScan2D_prepareOneRange()</em>  <a href="structmrpt_1_1slam_1_1_c_points_map_1_1_t_laser_range2_d_insert_context.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_points_map_1_1_t_laser_range3_d_insert_context.html">TLaserRange3DInsertContext</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper struct used for <em>internal_loadFromRangeScan3D_prepareOneRange()</em>  <a href="structmrpt_1_1slam_1_1_c_points_map_1_1_t_laser_range3_d_insert_context.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_points_map_1_1_t_likelihood_options.html">TLikelihoodOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Options used when evaluating "computeObservationLikelihood" in the derived classes.  <a href="structmrpt_1_1slam_1_1_c_points_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_1math_1_1_k_d_tree_capable.html">KDTreeCapable</a>&lt; Derived, <br class="typebreak"/>
num_t, metric_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#ae848e2006de4cda4f4a50d0c057d086c">self_t</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a8548c2ec0f286f5a883b870dff362488">CPointsMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ctor.  <a href="#a8548c2ec0f286f5a883b870dff362488"></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_points_map.html#a8361c1ad135c1c80ef971c3a6d461628">~CPointsMap</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor.  <a href="#a8361c1ad135c1c80ef971c3a6d461628"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9d2113d876815fe5f88810d230dbf970">squareDistanceToClosestCorrespondence</a> (float x0, float y0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map.  <a href="#a9d2113d876815fe5f88810d230dbf970"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac367eb5a8720b1d09b7ae8e8f4bfb8bd">squareDistanceToClosestCorrespondenceT</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;p0) const </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_points_map.html#a859be10bcfa10896eea281ba0b2cb7bd">addFrom</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;anotherMap)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds all the points from <em>anotherMap</em> to this map, without fusing.  <a href="#a859be10bcfa10896eea281ba0b2cb7bd"></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_points_map.html#a3f4578b8ab47dab204792147caf1842b">operator+=</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;anotherMap)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This operator is synonymous with <em>addFrom</em>.  <a href="#a3f4578b8ab47dab204792147caf1842b"></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_points_map.html#a824ead686b0ee2035f462782c489cb14">insertAnotherMap</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;otherPose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the contents of another map into this one with some geometric transformation, without fusing close points.  <a href="#a824ead686b0ee2035f462782c489cb14"></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_points_map.html#a4abadd7ddee0e92381c514fa23c29999">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of stored points in the map.  <a href="#a4abadd7ddee0e92381c514fa23c29999"></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_points_map.html#aabc4c43549b092019a61a8eeb0c194d7">getPointsCount</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of stored points in the map (DEPRECATED, use "size()" instead better)  <a href="#aabc4c43549b092019a61a8eeb0c194d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a17067ebed8be364c7f9123bc6b2e908e">getPoint</a> (size_t index, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to a given point from map, as a 2D point.  <a href="#a17067ebed8be364c7f9123bc6b2e908e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a3d42a6168c92830a7002791df2bac8d4">getPoint</a> (size_t index, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a02bbbdd434151c848d174ea5431bc7c5">getPoint</a> (size_t index, double &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, double &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, double &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af76f87224f5866a376417a093149366c">getPoint</a> (size_t index, double &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, double &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a3ce718a63c0733bcdfe0944267bfcce2">getPoint</a> (size_t index, <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aad3fb20bbc9e0c778596204b05dd0c62">getPoint</a> (size_t index, <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af597ecaafd5ec51b978e5173d0d1153b">getPoint</a> (size_t index, <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">mrpt::math::TPoint2D</a> &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a63456178721baa909f2c18020f582dc0">getPoint</a> (size_t index, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;p) const </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_points_map.html#a8815468742e10ec2cf542e0f856db539">getPoint</a> (size_t index, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>, float &amp;R, float &amp;G, float &amp;B) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to a given point from map, and its colors, if the map defines them (othersise, R=G=B=1.0).  <a href="#a8815468742e10ec2cf542e0f856db539"></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_points_map.html#a4d2ba33d8a318da5a55829e5073b886b">getPointFast</a> (size_t index, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float &amp;<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a17067ebed8be364c7f9123bc6b2e908e" title="Access to a given point from map, as a 2D point.">getPoint()</a></em> but without checking out-of-bound index and without returning the point weight, just XYZ.  <a href="#a4d2ba33d8a318da5a55829e5073b886b"></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_points_map.html#a4976f7a84c65f882e06529b3ffc6e985">hasColorPoints</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the point map has a color field for each point.  <a href="#a4976f7a84c65f882e06529b3ffc6e985"></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_points_map.html#aaf0d8a56ceb231e684fe18238479aebe">setPoint</a> (size_t index, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes a given point from map, with Z defaulting to 0 if not provided.  <a href="#aaf0d8a56ceb231e684fe18238479aebe"></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_points_map.html#ae1d0a9ae0b55fbf31a1f0f4b904d57b6">setPoint</a> (size_t index, <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;p)</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_points_map.html#a4e00422cb502c214469d7eeaec60de2b">setPoint</a> (size_t index, <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;p)</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_points_map.html#a755b43a1187bc6706b7f9ba75b5172ab">setPoint</a> (size_t index, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>)</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_points_map.html#a0fdaffa9c652c27a16e97283f88ed489">setPoint</a> (size_t index, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>, float R, float G, float B)</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_points_map.html#aaeb151dbe5d18be6494e1c6882f6ba8a">setPointWeight</a> (size_t index, unsigned long w)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the point weight, which is ignored in all classes but those which actually store that field (Note: No checks are done for out-of-bounds index).  <a href="#aaeb151dbe5d18be6494e1c6882f6ba8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a38ec7522ec35ad0bb6c2d4987d647f92">getPointWeight</a> (size_t index) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the point weight, which is ignored in all classes (defaults to 1) but in those which actually store that field (Note: No checks are done for out-of-bounds index).  <a href="#a38ec7522ec35ad0bb6c2d4987d647f92"></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_points_map.html#a5cad425a5c1d035d30377171f1a89f28">getPointsBuffer</a> (size_t &amp;outPointsCount, const float *&amp;xs, const float *&amp;ys, const float *&amp;zs) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a direct access to points buffer, or NULL if there is no points in the map.  <a href="#a5cad425a5c1d035d30377171f1a89f28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa3fb0ae4aa2620bde91e0e859c8fd695">getPointsBufferRef_x</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a direct access to a read-only reference of the internal point buffer.  <a href="#aa3fb0ae4aa2620bde91e0e859c8fd695"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9aef705ea139d585ce0617eb1e03322d">getPointsBufferRef_y</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a direct access to a read-only reference of the internal point buffer.  <a href="#a9aef705ea139d585ce0617eb1e03322d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a22a28b1fa66e48fd82dd0597e8da45dd">getPointsBufferRef_z</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a direct access to a read-only reference of the internal point buffer.  <a href="#a22a28b1fa66e48fd82dd0597e8da45dd"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class VECTOR &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aca0f289c4c4caedd60604c349216ad5f">getAllPoints</a> (VECTOR &amp;xs, VECTOR &amp;ys, VECTOR &amp;zs, size_t decimation=1) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the 2D/3D points as a <a class="el" href="classstd_1_1vector.html" title="STL class.">std::vector</a> of float coordinates.  <a href="#aca0f289c4c4caedd60604c349216ad5f"></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_points_map.html#a62638c177a1a056808c8346bdcfbe19a">getAllPoints</a> (<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt; &amp;ps, size_t decimation=1) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad76891e4406af9ea695e00c344d5451e">getAllPoints</a> (<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;xs, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;ys, size_t decimation=1) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the 2D/3D points as a <a class="el" href="classstd_1_1vector.html" title="STL class.">std::vector</a> of float coordinates.  <a href="#ad76891e4406af9ea695e00c344d5451e"></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_points_map.html#accfde089a2cb721d2412d94a78d24e00">getAllPoints</a> (<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &gt; &amp;ps, size_t decimation=1) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aad8346e26d776369ba24711e70206b3d">insertPoint</a> (float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a way to insert (append) individual points into the map: the missing fields of child classes (color, weight, etc) are left to their default values.  <a href="#aad8346e26d776369ba24711e70206b3d"></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_points_map.html#ab389147c86e55ae2043c46ec55af5fff">insertPoint</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;p)</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_points_map.html#af0ee824da205af075d588eee9b13849b">insertPoint</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;p)</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_points_map.html#a9ef6b4d41470d42b8f3103d31b33db13">insertPoint</a> (float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>, float R, float G, float B)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename VECTOR &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a2144cb76ac32d776db95f98a85ee7f8f">setAllPointsTemplate</a> (const VECTOR &amp;X, const VECTOR &amp;Y, const VECTOR &amp;Z=VECTOR())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the points at once from vectors with X,Y and Z coordinates (if Z is not provided, it will be set to all zeros).  <a href="#a2144cb76ac32d776db95f98a85ee7f8f"></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_points_map.html#adc878eb5f32d6b0900aad2bee5de7438">setAllPoints</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;X, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;Y, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;Z)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the points at once from vectors with X,Y and Z coordinates.  <a href="#adc878eb5f32d6b0900aad2bee5de7438"></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_points_map.html#a74f949340a13dcccab1110c445060d84">setAllPoints</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;X, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;Y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the points at once from vectors with X and Y coordinates (Z=0).  <a href="#a74f949340a13dcccab1110c445060d84"></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_points_map.html#aaf601e3656906e94f1038e957314a2fa">getPointAllFields</a> (const size_t index, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;point_data) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc...  <a href="#aaf601e3656906e94f1038e957314a2fa"></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_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3">setPointAllFields</a> (const size_t index, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;point_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc...  <a href="#ad7814ba94edc58cb8115537af9f3e1b3"></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_points_map.html#a9842705c917a54e3af455ef189ca7e48">clipOutOfRangeInZ</a> (float zMin, float zMax)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete points out of the given "z" axis range have been removed.  <a href="#a9842705c917a54e3af455ef189ca7e48"></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_points_map.html#a22544f538531bc201fc815a005e28de1">clipOutOfRange</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;point, float maxRange)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete points which are more far than "maxRange" away from the given "point".  <a href="#a22544f538531bc201fc815a005e28de1"></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_points_map.html#a448067bbd339434596411def8d26e77e">applyDeletionMask</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; bool &gt; &amp;mask)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove from the map the points marked in a bool's array as "true".  <a href="#a448067bbd339434596411def8d26e77e"></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_points_map.html#a396aa18fe072aec193268cdc4875daee">computeMatchingWith2D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the matchings between this and another 2D/3D points map.  <a href="#a396aa18fe072aec193268cdc4875daee"></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_points_map.html#a64e5a209ec58036ff3c74866efd6ec72">computeMatchingWith3D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">CMetricMap</a> *otherMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;angularDistPivotPoint, <a class="el" href="classmrpt_1_1utils_1_1_t_matching_pair_list.html">TMatchingPairList</a> &amp;correspondences, float &amp;correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=true, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the matchings between this and another 3D points map - method used in 3D-ICP.  <a href="#a64e5a209ec58036ff3c74866efd6ec72"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af8c51def1d9b4f24dfdc77f0701c38e6">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="#af8c51def1d9b4f24dfdc77f0701c38e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a71bb7e6036298e63ebcac81a2a4fdc75">loadFromRangeScan</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html">CObservation2DRangeScan</a> &amp;rangeScan, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform the range scan into a set of cartessian coordinated points.  <a href="#a71bb7e6036298e63ebcac81a2a4fdc75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af27b9ff110f817e57a2796ea4789fcdc">loadFromRangeScan</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html">CObservation3DRangeScan</a> &amp;rangeScan, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Overload of <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a71bb7e6036298e63ebcac81a2a4fdc75" title="Transform the range scan into a set of cartessian coordinated points.">loadFromRangeScan()</a></em> for 3D range scans (for example, Kinect observations).  <a href="#af27b9ff110f817e57a2796ea4789fcdc"></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_points_map.html#a27bd2218114ff12e7e259ce98f5ea22a">fuseWith</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *anotherMap, float minDistForFuse=0.02f, std::vector&lt; bool &gt; *notFusedPoints=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the contents of another map into this one, fusing the previous content with the new one.  <a href="#a27bd2218114ff12e7e259ce98f5ea22a"></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_points_map.html#afabfa31f5dffc5b5826132a07810032d">changeCoordinatesReference</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace each point <img class="formulaInl" alt="$ p_i $" src="form_104.png"/> by <img class="formulaInl" alt="$ p'_i = b \oplus p_i $" src="form_105.png"/> (pose compounding operator).  <a href="#afabfa31f5dffc5b5826132a07810032d"></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_points_map.html#a61477fc1d0696b512ef979e7aedfe5cf">changeCoordinatesReference</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace each point <img class="formulaInl" alt="$ p_i $" src="form_104.png"/> by <img class="formulaInl" alt="$ p'_i = b \oplus p_i $" src="form_105.png"/> (pose compounding operator).  <a href="#a61477fc1d0696b512ef979e7aedfe5cf"></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_points_map.html#a98430268f70b38c370f59d3ea3543d38">changeCoordinatesReference</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;other, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy all the points from "other" map to "this", replacing each point <img class="formulaInl" alt="$ p_i $" src="form_104.png"/> by <img class="formulaInl" alt="$ p'_i = b \oplus p_i $" src="form_105.png"/> (pose compounding operator).  <a href="#a98430268f70b38c370f59d3ea3543d38"></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_points_map.html#aebd31fda88c9a07724491391ff1139ac">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="#aebd31fda88c9a07724491391ff1139ac"></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_points_map.html#a97b60ddee727ab5de5c62cc9cf52adf2">empty</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">STL-like method to check whether the map is empty:  <a href="#a97b60ddee727ab5de5c62cc9cf52adf2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a435da84d88e90c516be09d374b0032db">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="#a435da84d88e90c516be09d374b0032db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9846b0622be65148a62575533919eaa0">getAsSimplePointsMap</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points map, return it.  <a href="#a9846b0622be65148a62575533919eaa0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html">CSimplePointsMap</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a64c588c08d8ddbaf80c689c2ab06a72a">getAsSimplePointsMap</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_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af">getLargestDistanceFromOrigin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method returns the largest distance from the origin to any of the points, such as a sphere centered at the origin with this radius cover ALL the points in the map (the results are buffered, such as, if the map is not modified, the second call will be much faster than the first one).  <a href="#ac004b3282bce5cfd2a6dbc497efd15af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ab44fa5c6bce789384ea7a151a7b8fb1e">getLargestDistanceFromOriginNoRecompute</a> (bool &amp;output_is_valid) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af" title="This method returns the largest distance from the origin to any of the points, such as a sphere cente...">getLargestDistanceFromOrigin()</a></em> but returns in <em>output_is_valid</em> = false if the distance was not already computed, skipping its computation then, unlike <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af" title="This method returns the largest distance from the origin to any of the points, such as a sphere cente...">getLargestDistanceFromOrigin()</a>  <a href="#ab44fa5c6bce789384ea7a151a7b8fb1e"></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_points_map.html#ae8008375c03e6cec8ae99cb96ec7bcd5">boundingBox</a> (float &amp;min_x, float &amp;max_x, float &amp;min_y, float &amp;max_y, float &amp;min_z, float &amp;max_z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the bounding box of all the points, or (0,0 ,0,0, 0,0) if there are no points.  <a href="#ae8008375c03e6cec8ae99cb96ec7bcd5"></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_points_map.html#afb579f7666e1a32990e1656e4bfc79ec">boundingBox</a> (<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;pMin, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;pMax) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a7624db62454aad4228f03308094ca809">extractCylinder</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;center, const double radius, const double zmin, const double zmax, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *outMap)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a4f61bafb85ddf17eb783d8d4abb46c18">computeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the likelihood of taking a given observation from a given pose in the world being modeled with this map.  <a href="#a4f61bafb85ddf17eb783d8d4abb46c18"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#afe18b3eac9b4ff07b674e0eb74652f5b">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase all the contents of the map.  <a href="#afe18b3eac9b4ff07b674e0eb74652f5b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a9fbc1945a342365600bf352ec89fc617">loadFromProbabilisticPosesAndObservations</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;Map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map.  <a href="#a9fbc1945a342365600bf352ec89fc617"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aedf155237d3fe3d595994b9659a4e688">loadFromSimpleMap</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;Map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the map contents from a <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus a &quot;metric map&quot; can be t...">CSimpleMap</a> object, erasing all previous content of the map.  <a href="#aedf155237d3fe3d595994b9659a4e688"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782">insertObservation</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the observation information into this map.  <a href="#ad1d3f22228d6dbdb3c31c132713bf782"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a7cb614f5ec634ec6f6a20b14163e5b07">insertObservationPtr</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper for smart pointers, just calls the non-smart pointer version.  <a href="#a7cb614f5ec634ec6f6a20b14163e5b07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a6adfc3df476a7edafaca40444d8dad04">computeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the log-likelihood of a given observation given an arbitrary robot 2D pose.  <a href="#a6adfc3df476a7edafaca40444d8dad04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8936d61e45446a74633d00a7ce6b4603">canComputeObservationLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> *obs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.  <a href="#a8936d61e45446a74633d00a7ce6b4603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a8184371fde28bc35a9ec461240b83b43">computeObservationsLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;takenFrom)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the sum of the log-likelihoods of each individual observation within a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot; taken by the robot approximat...">mrpt::slam::CSensoryFrame</a>.  <a href="#a8184371fde28bc35a9ec461240b83b43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ab3b66046cae11313beba57052b852eca">canComputeObservationsLikelihood</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.  <a href="#ab3b66046cae11313beba57052b852eca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aabd4d4be402cdd01bc8db467f214516a">auxParticleFilterCleanUp</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::CMetricMapBuilderRBPF::processActionObservation".  <a href="#aabd4d4be402cdd01bc8db467f214516a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ae6235efcb6d5da8e9db1ad6ccfb8225c">squareDistanceToClosestCorrespondence</a> (const float &amp;x0, const float &amp;y0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map.  <a href="#ae6235efcb6d5da8e9db1ad6ccfb8225c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#aa1070e173c5f7e307b09c53f1fd256e2">duplicate</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class.  <a href="#aa1070e173c5f7e307b09c53f1fd256e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a534695890364f4b916bba07dad311bcf">duplicateGetSmartPtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).  <a href="#a534695890364f4b916bba07dad311bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a9ef7857a0b36059c078e195a0a65ac00">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cloning interface for smart pointers.  <a href="#a9ef7857a0b36059c078e195a0a65ac00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const Derived &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a1f2be858dfb40e06cbae68375c98941b">derived</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">CRTP helper method.  <a href="#a1f2be858dfb40e06cbae68375c98941b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Derived &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a0be68a7843dfe5d5dfa5206c06e3d4fb">derived</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">CRTP helper method.  <a href="#a0be68a7843dfe5d5dfa5206c06e3d4fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a7c340b4858926edfcaa300e85b7e3758">loadFromPlyFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;filename, <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> *file_comments=NULL, <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> *file_obj_info=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads from a PLY file.  <a href="#a7c340b4858926edfcaa300e85b7e3758"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a1d9782483d4284c04cde1051b8543435">getLoadPLYErrorString</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a description of the error if <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a7c340b4858926edfcaa300e85b7e3758" title="Loads from a PLY file.">loadFromPlyFile()</a> returned false, or an empty string if the file was loaded without problems.  <a href="#a1d9782483d4284c04cde1051b8543435"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html#a849c09483bdcf2414834af8a06bd84d6">saveToPlyFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;filename, bool save_in_binary=false, const <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> &amp;file_comments=<a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a>(), const <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> &amp;file_obj_info=<a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a>()) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves to a PLY file.  <a href="#a849c09483bdcf2414834af8a06bd84d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html#a9ee5f77b023b7ef39f935f14ce624650">getSavePLYErrorString</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a description of the error if loadFromPlyFile() returned false, or an empty string if the file was loaded without problems.  <a href="#a9ee5f77b023b7ef39f935f14ce624650"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">File input/output methods</div></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_points_map.html#a4b43f2c974fd73e4e69c3c51d9e76bc7">load2D_from_text_file</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load from a text file.  <a href="#a4b43f2c974fd73e4e69c3c51d9e76bc7"></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_points_map.html#a5053f8df3646f82f0e80b80c9cb86840">load3D_from_text_file</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load from a text file.  <a href="#a5053f8df3646f82f0e80b80c9cb86840"></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_points_map.html#a88f5cf5b88458fd1f5f984f63285a6a8">load2Dor3D_from_text_file</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file, const bool is_3D)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">2D or 3D generic implementation of <em>load2D_from_text_file</em> and load3D_from_text_file  <a href="#a88f5cf5b88458fd1f5f984f63285a6a8"></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_points_map.html#a4d9d4cefd1e14e3d9d1b6eb26b8e529f">save2D_to_text_file</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save to a text file.  <a href="#a4d9d4cefd1e14e3d9d1b6eb26b8e529f"></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_points_map.html#a59a3de6a27b6428e9f5759cdaca81cc5">save3D_to_text_file</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;file) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save to a text file.  <a href="#a59a3de6a27b6428e9f5759cdaca81cc5"></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_points_map.html#a82d94f8aa153e3102610d18fc25f2fa6">saveMetricMapRepresentationToFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;filNamePrefix) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This virtual method saves the map to a file "filNamePrefix"+&lt; some_file_extension &gt;, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface).  <a href="#a82d94f8aa153e3102610d18fc25f2fa6"></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_points_map.html#a3a2d3dcc6eb283187b01cc12fb585842">savePCDFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;filename, bool save_as_binary) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the point cloud as a PCL PCD file, in either ASCII or binary format (requires MRPT built against PCL)  <a href="#a3a2d3dcc6eb283187b01cc12fb585842"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Filter-by-height stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ab9063f7c83687192a2f739863c8ba80f">enableFilterByHeight</a> (bool enable=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the filter-by-height functionality.  <a href="#ab9063f7c83687192a2f739863c8ba80f"></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_points_map.html#acbd445624ea8c62e5587342dc3ae4d6f">isFilterByHeightEnabled</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether filter-by-height is enabled.  <a href="#acbd445624ea8c62e5587342dc3ae4d6f"></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_points_map.html#a577223305acb3f6a9900a352c9522e86">setHeightFilterLevels</a> (const double _z_min, const double _z_max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the min/max Z levels for points to be actually inserted in the map (only if <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ab9063f7c83687192a2f739863c8ba80f" title="Enable/disable the filter-by-height functionality.">enableFilterByHeight()</a></em> was called before).  <a href="#a577223305acb3f6a9900a352c9522e86"></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_points_map.html#a0e18ecb30fb7c35d4dcaf329c6b4f88d">getHeightFilterLevels</a> (double &amp;_z_min, double &amp;_z_max) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the min/max Z levels for points to be actually inserted in the map.  <a href="#a0e18ecb30fb7c35d4dcaf329c6b4f88d"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">PCL library support</div></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class POINTCLOUD &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac7ef4277ce42b02e575cbbbcee9817dd">getPCLPointCloud</a> (POINTCLOUD &amp;cloud) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Use to convert this MRPT point cloud object into a PCL point cloud object.  <a href="#ac7ef4277ce42b02e575cbbbcee9817dd"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods that MUST be implemented by children classes of KDTreeCapable</div></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_points_map.html#a71debc2cba084a2c63fbc04412f841f3">kdtree_get_point_count</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Must return the number of data points.  <a href="#a71debc2cba084a2c63fbc04412f841f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad45e1f1a45c016e4df2d54f6d233420a">kdtree_get_pt</a> (const size_t idx, int dim) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dim'th component of the idx'th point in the class:  <a href="#ad45e1f1a45c016e4df2d54f6d233420a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af949c6bbd44c833213e6842bc9048dd2">kdtree_distance</a> (const float *p1, const size_t idx_p2, size_t size) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the distance between the vector "p1[0:size-1]" and the data point with index "idx_p2" stored in the class:  <a href="#af949c6bbd44c833213e6842bc9048dd2"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename BBOX &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a04e670ff64c79b8a66824bcf98ac7e5d">kdtree_get_bbox</a> (BBOX &amp;bb) const </td></tr>
<tr><td colspan="2"><div class="groupHeader">Public utility methods to query the KD-tree</div></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_1math_1_1_k_d_tree_capable.html#ae9c0bb8eae4945085a0b03408adaa180">kdTreeClosestPoint2D</a> (float x0, float y0, float &amp;out_x, float &amp;out_y, float &amp;out_dist_sqr) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the closest point (only ONE) to some given 2D coordinates.  <a href="#ae9c0bb8eae4945085a0b03408adaa180"></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_1math_1_1_k_d_tree_capable.html#acccf80ebe86d7512a2eabb1f4cd7d5e7">kdTreeClosestPoint2D</a> (float x0, float y0, float &amp;out_dist_sqr) const </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_1math_1_1_k_d_tree_capable.html#aa931ad90835e719b966cf61c317c6e6d">kdTreeClosestPoint2D</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;p0, <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;pOut, float &amp;outDistSqr) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#aa8a35f96809c7677b730f8282c77e1ac">kdTreeClosestPoint2DsqrError</a> (float x0, float y0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like kdTreeClosestPoint2D, but just return the square error from some point to its closest neighbor.  <a href="#aa8a35f96809c7677b730f8282c77e1ac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#abee2f8ff656e8eca62d0444021577776">kdTreeClosestPoint2DsqrError</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;p0) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a9edfbd2ada1466c02e7bf136c39ca9dd">kdTreeTwoClosestPoint2D</a> (float x0, float y0, float &amp;out_x1, float &amp;out_y1, float &amp;out_x2, float &amp;out_y2, float &amp;out_dist_sqr1, float &amp;out_dist_sqr2) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the TWO closest point to some given 2D coordinates.  <a href="#a9edfbd2ada1466c02e7bf136c39ca9dd"></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_1math_1_1_k_d_tree_capable.html#ad9af4bb0f1547c6718c7a5ef5f3e7591">kdTreeTwoClosestPoint2D</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;p0, <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;pOut1, <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;pOut2, float &amp;outDistSqr1, float &amp;outDistSqr2) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#abf55cf62066eeff4c9db446b040c481d">kdTreeNClosestPoint2D</a> (float x0, float y0, size_t knn, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_x, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_y, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_dist_sqr) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the N closest point to some given 2D coordinates.  <a href="#abf55cf62066eeff4c9db446b040c481d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a98394b54ad28658bdb397116bcd7a1d7">kdTreeNClosestPoint2D</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;p0, size_t N, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &gt; &amp;pOut, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;outDistSqr) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a17665632b43c9a65530cbc97581128bc">kdTreeNClosestPoint2DIdx</a> (float x0, float y0, size_t knn, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;out_idx, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_dist_sqr) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the N closest point to some given 2D coordinates and returns their indexes.  <a href="#a17665632b43c9a65530cbc97581128bc"></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_1math_1_1_k_d_tree_capable.html#a6d16ab2d09b0e2f59b368ce43f4ba944">kdTreeNClosestPoint2DIdx</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;p0, size_t N, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;outIdx, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;outDistSqr) const </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_1math_1_1_k_d_tree_capable.html#a89eab3ed58a61ba1dd561552562a1215">kdTreeClosestPoint3D</a> (float x0, float y0, float z0, float &amp;out_x, float &amp;out_y, float &amp;out_z, float &amp;out_dist_sqr) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the closest point (only ONE) to some given 3D coordinates.  <a href="#a89eab3ed58a61ba1dd561552562a1215"></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_1math_1_1_k_d_tree_capable.html#a44afd69e49d989baa2973ffd7f7037e6">kdTreeClosestPoint3D</a> (float x0, float y0, float z0, float &amp;out_dist_sqr) const </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_1math_1_1_k_d_tree_capable.html#a2f18fd292f21f156b9ac5ae3503f44aa">kdTreeClosestPoint3D</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;p0, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;pOut, float &amp;outDistSqr) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a9fd5af04995704c55b1a17f4515da803">kdTreeNClosestPoint3D</a> (float x0, float y0, float z0, size_t knn, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_x, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_y, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_z, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_dist_sqr) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the N closest points to some given 3D coordinates.  <a href="#a9fd5af04995704c55b1a17f4515da803"></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_1math_1_1_k_d_tree_capable.html#a61a35dc755ae1225f6d09e6d81eefb05">kdTreeNClosestPoint3D</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;p0, size_t N, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt; &amp;pOut, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;outDistSqr) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a343546d3f23d9c1df671c4d8c5c9eb39">kdTreeNClosestPoint3DIdx</a> (float x0, float y0, float z0, size_t knn, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;out_idx, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;out_dist_sqr) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KD Tree-based search for the N closest point to some given 3D coordinates and returns their indexes.  <a href="#a343546d3f23d9c1df671c4d8c5c9eb39"></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_1math_1_1_k_d_tree_capable.html#ab6112525867566c872402236781413e7">kdTreeNClosestPoint3DIdx</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;p0, size_t N, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;outIdx, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;outDistSqr) const </td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_points_map_1_1_t_insertion_options.html">TInsertionOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a0f9ff5c1a7d19283a85856bfddb0e232">insertionOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The options used when inserting observations in the map.  <a href="#a0f9ff5c1a7d19283a85856bfddb0e232"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_points_map_1_1_t_likelihood_options.html">TLikelihoodOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a3f290053399ae8e26f01c7d4f66ed110">likelihoodOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a2b50a8c61d853cc452b82d58756e9603">m_disableSaveAs3DObject</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">When set to true (default=false), calling "getAs3DObject" will have no effects.  <a href="#a2b50a8c61d853cc452b82d58756e9603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TKDTreeSearchParams&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a65f5da9a222c2c7b913f7e6242c6c77e">kdtree_search_params</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameters to tune the ANN searches.  <a href="#a65f5da9a222c2c7b913f7e6242c6c77e"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a8903a53dd6a311cb590084b05d36d8d6">COLOR_3DSCENE_R</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The color [0,1] of points when extracted from getAs3DObject (default=blue)  <a href="#a8903a53dd6a311cb590084b05d36d8d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#abf258aab6bac3c1a3b8eb608851a65d8">COLOR_3DSCENE_G</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e6d8616374de431d3e37426c547e6d2">COLOR_3DSCENE_B</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_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTTI stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a1cbb8630027acc3d6d227fa7d78c724f">classCMetricMap</a></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTTI stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad5028a5349d4f0b2f16bb490efa387cc">mark_as_modified</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called only by this class or children classes, set m_largestDistanceFromOriginIsUpdated=false and such.  <a href="#ad5028a5349d4f0b2f16bb490efa387cc"></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_points_map.html#ab08f10325208248ce3d8abc08fcbc87a">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)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a common version of <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">CMetricMap::insertObservation()</a> for point maps (actually, <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aab88fec1ad02cceaaaf74c02d4e6f68a" title="Internal method called by insertObservation()">CMetricMap::internal_insertObservation</a>), so derived classes don't need to worry implementing that method unless something special is really necesary.  <a href="#ab08f10325208248ce3d8abc08fcbc87a"></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_points_map.html#a730492c1bea7291abcb33bab99a7716d">base_copyFrom</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper method for ::copyFrom()  <a href="#a730492c1bea7291abcb33bab99a7716d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a0b6b801e67bca3d8e0d355e7035f8013">writeToStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;out, int *getVersion) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>.  <a href="#a0b6b801e67bca3d8e0d355e7035f8013"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a73ba83035a64939cdc3aa1c0dfed23ec">readFromStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;in, int version)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori.  <a href="#a73ba83035a64939cdc3aa1c0dfed23ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a0c384e00c06199bc2ff37ff5ecb520c9">publishEvent</a> (const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &amp;e) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when you want this object to emit an event to all the observers currently subscribed to this object.  <a href="#a0c384e00c06199bc2ff37ff5ecb520c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e">hasSubscribers</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called by a derived class before preparing an event for publishing with <em>publishEvent</em> to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read.  <a href="#a1c1e8c7d0d184ccdaa7d5a0ee5184e1e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a257dd22c1a52d1150117195aaf416f16">kdtree_mark_as_outdated</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">To be called by child classes when KD tree data changes.  <a href="#a257dd22c1a52d1150117195aaf416f16"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">PLY Import virtual methods to implement in base classes</div></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_points_map.html#ad9ea76652470ebba193d23234d93dd56">PLY_import_set_face_count</a> (const size_t N)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">In a base class, reserve memory to prepare subsequent calls to PLY_import_set_face.  <a href="#ad9ea76652470ebba193d23234d93dd56"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a18e74e4a0750de0cb4e74685d2f73d45">PLY_import_set_vertex</a> (const size_t idx, const <a class="el" href="structmrpt_1_1math_1_1_t_point3_df.html">mrpt::math::TPoint3Df</a> &amp;pt, const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> *pt_color=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">In a base class, will be called after <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a658b98fa22aabb2282de1c12e953db76" title="In a base class, reserve memory to prepare subsequent calls to PLY_import_set_vertex.">PLY_import_set_vertex_count()</a> once for each loaded point.  <a href="#a18e74e4a0750de0cb4e74685d2f73d45"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">PLY Export virtual methods to implement in base classes</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa59022a6966dca11b5cc417c00b1b553">PLY_export_get_vertex_count</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">In a base class, return the number of vertices.  <a href="#aa59022a6966dca11b5cc417c00b1b553"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aea9230b8985aa6eb82d55110049343e8">PLY_export_get_face_count</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">In a base class, return the number of faces.  <a href="#aea9230b8985aa6eb82d55110049343e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a17b10cad494a23c6917661fb345b0014">PLY_export_get_vertex</a> (const size_t idx, <a class="el" href="structmrpt_1_1math_1_1_t_point3_df.html">mrpt::math::TPoint3Df</a> &amp;pt, bool &amp;pt_has_color, <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> &amp;pt_color) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">In a base class, will be called after <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa59022a6966dca11b5cc417c00b1b553" title="In a base class, return the number of vertices.">PLY_export_get_vertex_count()</a> once for each exported point.  <a href="#a17b10cad494a23c6917661fb345b0014"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">PLY Import virtual methods to implement in base classes</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a658b98fa22aabb2282de1c12e953db76">PLY_import_set_vertex_count</a> (const size_t N)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">In a base class, reserve memory to prepare subsequent calls to PLY_import_set_vertex.  <a href="#a658b98fa22aabb2282de1c12e953db76"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The point coordinates.  <a href="#a347bc872aaa9cf01b17a6f087fb8c6c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sin_cos_look_up_table_for2_d_scans.html">CSinCosLookUpTableFor2DScans</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a90235c924f8595aea0ef5a10c2bea86a">m_scans_sincos_cache</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cache of sin/cos values for the latest 2D scan geometries.  <a href="#a90235c924f8595aea0ef5a10c2bea86a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9a36f0fde69940fce6bc648a35b4bbe3">m_largestDistanceFromOrigin</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variables used in "getLargestDistanceFromOrigin".  <a href="#a9a36f0fde69940fce6bc648a35b4bbe3"></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_points_map.html#a095ebbf33aad995e1a67462194f669a4">m_largestDistanceFromOriginIsUpdated</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variables used in "getLargestDistanceFromOrigin".  <a href="#a095ebbf33aad995e1a67462194f669a4"></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_points_map.html#af0f33257b75543f76629ff9f1ed2ab2f">m_boundingBoxIsUpdated</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_points_map.html#a2fb1b66d150d21509e1b0f4651e4271e">m_bb_min_x</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_points_map.html#ad6779dd635a5866164bfd9b4e8c098da">m_bb_max_x</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_points_map.html#a92d220a9988d1cc5761538c7135c729a">m_bb_min_y</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac0ccfa83c500adda592d8859149d7bd6">m_bb_max_y</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa1e45bcc45cfb68847304766509a0055">m_bb_min_z</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_points_map.html#a413a1f710f72b5dacdb2c406e4639c56">m_bb_max_z</a></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_points_map.html#af10f5171b41b28f17e93179bdfe98e55">m_heightfilter_z_min</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum and maximum height for a certain laser scan to be inserted into this map.  <a href="#af10f5171b41b28f17e93179bdfe98e55"></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_points_map.html#ac8b73c6c51eeeeb47e58c7e2bf02f7f2">m_heightfilter_z_max</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a663718e0db4253ff846bc8c3af4dba63">m_heightfilter_enabled</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether or not (default=not) filter the input points by height.  <a href="#a663718e0db4253ff846bc8c3af4dba63"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a700526b4e30cabbc0586c55a7b6f6741">detail::loadFromRangeImpl</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aafa381e2b3f5424967299d7ff37dc181">detail::pointmap_traits</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#acbdabd464cdce8da670d60124dfd81cf">classCPointsMap</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</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_points_map.html#aa6ba780484bba068796c4195ad10392b">_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_points_map.html#ad2982f2cf593e82861cc22e742335eab">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="#ad2982f2cf593e82861cc22e742335eab"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Pure virtual interfaces to be implemented by any class derived from CPointsMap</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_points_map.html#a44c7ce9395f8fd360638e51f0e8338cc">reserve</a> (size_t newLength)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory.  <a href="#a44c7ce9395f8fd360638e51f0e8338cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a3e1115d12361e36b718977d549ea3e67">resize</a> (size_t newLength)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes all point buffers so they can hold the given number of points: newly created points are set to default values, and old contents are not changed.  <a href="#a3e1115d12361e36b718977d549ea3e67"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a667bbe3ac140930e027b2354b7e3dddb">setSize</a> (size_t newLength)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes all point buffers so they can hold the given number of points, *erasing* all previous contents and leaving all points to default values.  <a href="#a667bbe3ac140930e027b2354b7e3dddb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a2a478c086aa1fea4f4e0cb815d510f56">setPointFast</a> (size_t index, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the coordinates of the given point (0-based index), *without* checking for out-of-bounds and *without* calling <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad5028a5349d4f0b2f16bb490efa387cc" title="Called only by this class or children classes, set m_largestDistanceFromOriginIsUpdated=false and suc...">mark_as_modified()</a>  <a href="#a2a478c086aa1fea4f4e0cb815d510f56"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a25b66b2977826e25af612de86430938e">insertPointFast</a> (float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e2ee9304dea0b0e1b712809f4317e55">x</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a49d0f0bca8d960111df816b6f50b3132">y</a>, float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a347bc872aaa9cf01b17a6f087fb8c6c1">z</a>=0)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The virtual method for <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aad8346e26d776369ba24711e70206b3d" title="Provides a way to insert (append) individual points into the map: the missing fields of child classes...">insertPoint()</a></em> *without* calling <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad5028a5349d4f0b2f16bb490efa387cc" title="Called only by this class or children classes, set m_largestDistanceFromOriginIsUpdated=false and suc...">mark_as_modified()</a>  <a href="#a25b66b2977826e25af612de86430938e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac2734b489f3bb0e47f518f71f313bea0">copyFrom</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;obj)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual assignment operator, copies as much common data (XYZ, color,...) as possible from the source map into this one.  <a href="#ac2734b489f3bb0e47f518f71f313bea0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a0d1488b4087097aca0e56ca4c76428a9">getPointAllFieldsFast</a> (const size_t index, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;point_data) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc...  <a href="#a0d1488b4087097aca0e56ca4c76428a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#afd77da4549b936f182355675ace9caf2">setPointAllFieldsFast</a> (const size_t index, const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;point_data)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc...  <a href="#afd77da4549b936f182355675ace9caf2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a0cd6ce2ff326fc32eec3111f5e7bc31e">addFrom_classSpecific</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;anotherMap, const size_t nPreviousPoints)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary method called from within <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a859be10bcfa10896eea281ba0b2cb7bd" title="Adds all the points from anotherMap to this map, without fusing.">addFrom()</a></em> automatically, to finish the copying of class-specific data.  <a href="#a0cd6ce2ff326fc32eec3111f5e7bc31e"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ae848e2006de4cda4f4a50d0c057d086c"></a><!-- doxytag: member="mrpt::slam::CPointsMap::self_t" ref="ae848e2006de4cda4f4a50d0c057d086c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html">KDTreeCapable</a>&lt;Derived,num_t,metric_t&gt; <a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#ae848e2006de4cda4f4a50d0c057d086c">mrpt::math::KDTreeCapable::self_t</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Ctor. </p>

</div>
</div>
<a class="anchor" id="a8361c1ad135c1c80ef971c3a6d461628"></a><!-- doxytag: member="mrpt::slam::CPointsMap::~CPointsMap" ref="a8361c1ad135c1c80ef971c3a6d461628" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::slam::CPointsMap::~CPointsMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</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="aa6ba780484bba068796c4195ad10392b"></a><!-- doxytag: member="mrpt::slam::CPointsMap::_GetBaseClass" ref="aa6ba780484bba068796c4195ad10392b" 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::CPointsMap::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#aa12678534542e81a66ea72ff84cd237e">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a9ad2d0be295a634f49f6dd9aab32962e">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a6d7cba32f67207ad869bad4066c09aa0">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a859be10bcfa10896eea281ba0b2cb7bd"></a><!-- doxytag: member="mrpt::slam::CPointsMap::addFrom" ref="a859be10bcfa10896eea281ba0b2cb7bd" args="(const CPointsMap &amp;anotherMap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::addFrom </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;&#160;</td>
          <td class="paramname"><em>anotherMap</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds all the points from <em>anotherMap</em> to this map, without fusing. </p>
<p>This operation can be also invoked via the "+=" operator, for example: </p>
<div class="fragment"><pre class="fragment">   CSimplePointsMap m1, m2;
   ...
   m1.addFrom( m2 );  <span class="comment">// Add all points of m2 to m1</span>
   m1 += m2;          <span class="comment">// Exactly the same than above</span>
</pre></div> <dl class="note"><dt><b>Note:</b></dt><dd>The method in <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...">CPointsMap</a> is generic but derived classes may redefine this virtual method to another one more optimized. </dd></dl>

</div>
</div>
<a class="anchor" id="a0cd6ce2ff326fc32eec3111f5e7bc31e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::addFrom_classSpecific" ref="a0cd6ce2ff326fc32eec3111f5e7bc31e" args="(const CPointsMap &amp;anotherMap, const size_t nPreviousPoints)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::addFrom_classSpecific </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;&#160;</td>
          <td class="paramname"><em>anotherMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>nPreviousPoints</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary method called from within <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a859be10bcfa10896eea281ba0b2cb7bd" title="Adds all the points from anotherMap to this map, without fusing.">addFrom()</a></em> automatically, to finish the copying of class-specific data. </p>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a3a4aa488269e436e6f4a719561094571">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a8c1157d730ae2da2db940270ca024396">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#af6d823144a6ccd21bcc649d8a03d3ad4">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a448067bbd339434596411def8d26e77e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::applyDeletionMask" ref="a448067bbd339434596411def8d26e77e" args="(const std::vector&lt; bool &gt; &amp;mask)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::applyDeletionMask </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>mask</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove from the map the points marked in a bool's array as "true". </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>If mask size is not equal to points count. </td></tr>
  </table>
  </dd>
</dl>

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

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

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

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

</div>
</div>
<a class="anchor" id="a730492c1bea7291abcb33bab99a7716d"></a><!-- doxytag: member="mrpt::slam::CPointsMap::base_copyFrom" ref="a730492c1bea7291abcb33bab99a7716d" args="(const CPointsMap &amp;obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::base_copyFrom </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper method for ::copyFrom() </p>

</div>
</div>
<a class="anchor" id="ae8008375c03e6cec8ae99cb96ec7bcd5"></a><!-- doxytag: member="mrpt::slam::CPointsMap::boundingBox" ref="ae8008375c03e6cec8ae99cb96ec7bcd5" args="(float &amp;min_x, float &amp;max_x, float &amp;min_y, float &amp;max_y, float &amp;min_z, float &amp;max_z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::boundingBox </td>
          <td>(</td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>min_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>max_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>min_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>max_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>min_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>max_z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the bounding box of all the points, or (0,0 ,0,0, 0,0) if there are no points. </p>
<p>Results are cached unless the map is somehow modified to avoid repeated calculations. </p>

</div>
</div>
<a class="anchor" id="afb579f7666e1a32990e1656e4bfc79ec"></a><!-- doxytag: member="mrpt::slam::CPointsMap::boundingBox" ref="afb579f7666e1a32990e1656e4bfc79ec" args="(TPoint3D &amp;pMin, TPoint3D &amp;pMax) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::boundingBox </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>pMin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>pMax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00675">675</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="lightweight__geom__data_8h_source.html#l00293">mrpt::math::TPoint3D::x</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00294">mrpt::math::TPoint3D::y</a>, and <a class="el" href="lightweight__geom__data_8h_source.html#l00295">mrpt::math::TPoint3D::z</a>.</p>

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

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

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

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

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

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

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

<p>Replace each point <img class="formulaInl" alt="$ p_i $" src="form_104.png"/> by <img class="formulaInl" alt="$ p'_i = b \oplus p_i $" src="form_105.png"/> (pose compounding operator). </p>

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

<p>Replace each point <img class="formulaInl" alt="$ p_i $" src="form_104.png"/> by <img class="formulaInl" alt="$ p'_i = b \oplus p_i $" src="form_105.png"/> (pose compounding operator). </p>

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

<p>Copy all the points from "other" map to "this", replacing each point <img class="formulaInl" alt="$ p_i $" src="form_104.png"/> by <img class="formulaInl" alt="$ p'_i = b \oplus p_i $" src="form_105.png"/> (pose compounding operator). </p>

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

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

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

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

</div>
</div>
<a class="anchor" id="a22544f538531bc201fc815a005e28de1"></a><!-- doxytag: member="mrpt::slam::CPointsMap::clipOutOfRange" ref="a22544f538531bc201fc815a005e28de1" args="(const CPoint2D &amp;point, float maxRange)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::clipOutOfRange </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>maxRange</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete points which are more far than "maxRange" away from the given "point". </p>

</div>
</div>
<a class="anchor" id="a9842705c917a54e3af455ef189ca7e48"></a><!-- doxytag: member="mrpt::slam::CPointsMap::clipOutOfRangeInZ" ref="a9842705c917a54e3af455ef189ca7e48" args="(float zMin, float zMax)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::clipOutOfRangeInZ </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>zMin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>zMax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete points out of the given "z" axis range have been removed. </p>

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

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

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

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

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

<p>Computes the matchings between this and another 2D/3D 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 distance between two points to be matched. </td></tr>
    <tr><td class="paramname">maxAngularDistForCorrespondence</td><td>[IN] Maximum angular distance in radians to allow far points to be matched. </td></tr>
    <tr><td class="paramname">angularDistPivotPoint</td><td>[IN] The point from which to measure the "angular distances" </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 number of correct correspondences. </td></tr>
    <tr><td class="paramname">sumSqrDist</td><td>[OUT] The sum of all matched points squared distances.If undesired, set to NULL, as default. </td></tr>
    <tr><td class="paramname">covariance</td><td>[OUT] The resulting matching covariance 3x3 matrix, or NULL if undesired. </td></tr>
    <tr><td class="paramname">onlyKeepTheClosest</td><td>[OUT] Returns only the closest correspondence (default=false)</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>computeMatching3DWith </dd></dl>

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

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

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

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

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

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

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

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

<p>Computes the likelihood of taking a given observation from a given pose in the world being modeled with this map. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">takenFrom</td><td>The robot's pose the observation is supposed to be taken from. </td></tr>
    <tr><td class="paramname">obs</td><td>The observation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>This method returns a likelihood in the range [0,1].</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>Used in particle filter algorithms, see: <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map_p_d_f.html" title="Declares a class that represents a Rao-Blackwellized set of particles for solving the SLAM problem (T...">CMultiMetricMapPDF</a> </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>In <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...">CPointsMap</a> this method is virtual so it can be redefined in derived classes, if desired. </dd></dl>

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

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

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

</div>
</div>
<a class="anchor" id="ac2734b489f3bb0e47f518f71f313bea0"></a><!-- doxytag: member="mrpt::slam::CPointsMap::copyFrom" ref="ac2734b489f3bb0e47f518f71f313bea0" args="(const CPointsMap &amp;obj)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::copyFrom </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Virtual assignment operator, copies as much common data (XYZ, color,...) as possible from the source map into this one. </p>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a498ccc24d9f88534063c24360f8d8a26">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#aaea2786f8db66ff6abcca1c4b5120e50">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#ae72a9aa963239d323b919ee00dbc9a04">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a1f2be858dfb40e06cbae68375c98941b"></a><!-- doxytag: member="mrpt::slam::CPointsMap::derived" ref="a1f2be858dfb40e06cbae68375c98941b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const Derived&amp; mrpt::math::KDTreeCapable::derived </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>CRTP helper method. </p>

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

</div>
</div>
<a class="anchor" id="a0be68a7843dfe5d5dfa5206c06e3d4fb"></a><!-- doxytag: member="mrpt::slam::CPointsMap::derived" ref="a0be68a7843dfe5d5dfa5206c06e3d4fb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Derived&amp; mrpt::math::KDTreeCapable::derived </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>CRTP helper method. </p>

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

</div>
</div>
<a class="anchor" id="aa1070e173c5f7e307b09c53f1fd256e2"></a><!-- doxytag: member="mrpt::slam::CPointsMap::duplicate" ref="aa1070e173c5f7e307b09c53f1fd256e2" args="() const =0" -->
<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">CObject</a>* mrpt::utils::CObject::duplicate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Implemented in <a class="el" href="classmrpt_1_1graphs_1_1_c_network_of_poses3_d_inf.html#aa418a18b42f0cd0345f7f74254d3816a">mrpt::graphs::CNetworkOfPoses3DInf</a>, <a class="el" href="classmrpt_1_1graphs_1_1_c_network_of_poses2_d_inf.html#a3a4aefa2c8700d412e577aa67b38ef92">mrpt::graphs::CNetworkOfPoses2DInf</a>, <a class="el" href="classmrpt_1_1graphs_1_1_c_network_of_poses3_d_cov.html#a1e8073ae7f1eea303ff200be62a39dc8">mrpt::graphs::CNetworkOfPoses3DCov</a>, <a class="el" href="classmrpt_1_1graphs_1_1_c_network_of_poses2_d_cov.html#abdae8c21f63f137061ccb70cad7a00a4">mrpt::graphs::CNetworkOfPoses2DCov</a>, <a class="el" href="classmrpt_1_1graphs_1_1_c_network_of_poses3_d.html#a322d25fb1e05935950f9a7667c8186db">mrpt::graphs::CNetworkOfPoses3D</a>, <a class="el" href="classmrpt_1_1graphs_1_1_c_network_of_poses2_d.html#ac67931093925b89d8ffbf5940d53cba0">mrpt::graphs::CNetworkOfPoses2D</a>, <a class="el" href="classmrpt_1_1utils_1_1_t_stereo_camera.html#ab6a8fbe4d003f10c364378c5105be2ef">mrpt::utils::TStereoCamera</a>, <a class="el" href="classmrpt_1_1reactivenav_1_1_c_log_file_record___n_d.html#a3b657b853f3d81f1b85fe63ad90811a4">mrpt::reactivenav::CLogFileRecord_ND</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_simple_database.html#ac8261cd70c8ccbb5d6f0bcbe02f7b129">mrpt::utils::CSimpleDatabase</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aad2da5b6028c862896eeff130254b268">mrpt::utils::CImage</a>, <a class="el" href="classmrpt_1_1detectors_1_1_c_detectable3_d.html#af14e72e5cb029e2b48ed085a269ec3d5">mrpt::detectors::CDetectable3D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html#a0e414505f603f461879a817e628fd847">mrpt::slam::CObservation3DRangeScan</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_t_hypothesis_i_d_set.html#a91551aa5c70ca76a79009d152dd85132">mrpt::hmtslam::THypothesisIDSet</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html#a5e90b6efdf7c8646c43619f805d1447d">mrpt::slam::COccupancyGridMap2D</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html#aaf8fcfb1dc4c86b88c86aec138a11072">mrpt::hmtslam::CHMTSLAM</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ac78d9a44f581338715379d0cd17e2fd1">mrpt::hmtslam::CLocalMetricHypothesis</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_display_window3_d.html#af1330a1e443ddb156f55966a204404d3">mrpt::gui::CDisplayWindow3D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_height_grid_map2_d.html#a197c2c0f0bd6b6b6cd82eb4b78b99e0d">mrpt::slam::CHeightGridMap2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_i_m_u.html#addc93579b7a501a8486ed8178e1b1163">mrpt::slam::CObservationIMU</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map_p_d_f.html#af9bb29381a79d37c8e48319e99b79506">mrpt::slam::CMultiMetricMapPDF</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_landmarks_map.html#a2092c4cab9d1062f66449832e970d427">mrpt::slam::CLandmarksMap</a>, <a class="el" href="classmrpt_1_1vision_1_1_c_feature.html#a43eac0701c624df4976a459ab0ed5f9a">mrpt::vision::CFeature</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html#a40bb0f23493a06d109b9857882e73cc9">mrpt::slam::CMultiMetricMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_rawlog.html#a73cf5cd5a1118c882a75f7b489b4c260">mrpt::slam::CRawlog</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a42ae7a4409660ed30a889f4d293c7cbb">mrpt::slam::CSensoryFrame</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#ad10511d0f2da9bd690a92bf8b80bffaa">mrpt::poses::CPose3D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a8752d16a6e4ee043b88101c9850f4099">mrpt::slam::CObservation2DRangeScan</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html#a7f571259a8c4934b39b51c1810c6953d">mrpt::poses::CPointPDFParticles</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a6e0706f9975f7f26b3d8096c4b93604d">mrpt::poses::CPose3DInterpolator</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_open_g_l_viewport.html#af57c300ecbd7c559a9d93fd0614d8f37">mrpt::opengl::COpenGLViewport</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_beacon_map.html#ac96c1b225716e20ed93e20962bf029be">mrpt::slam::CBeaconMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_reflectivity_grid_map2_d.html#a738ccf6288f6b32ebe7d1c580967223a">mrpt::slam::CReflectivityGridMap2D</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m_particle_data.html#aa32623b7b721c6c827dccf8418e29dc1">mrpt::hmtslam::CLSLAMParticleData</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_point_cloud.html#aee94205aa8bf0fa4465036031a062fc0">mrpt::opengl::CPointCloud</a>, <a class="el" href="classmrpt_1_1detectors_1_1_c_detectable2_d.html#a1ae410e57a6919e6007f6b33b12d9bf9">mrpt::detectors::CDetectable2D</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_open_g_l_scene.html#a9b3a8da932f784bb49c32e49dcda3b96">mrpt::opengl::COpenGLScene</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_point_cloud_coloured.html#a5f42667250317195e9a1f5b280797d1b">mrpt::opengl::CPointCloudColoured</a>, <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#aa929ee8c57cd51dc5642a605aa70bfbd">mrpt::math::CMatrixD</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_m_h_properties_values_list.html#aa96c50b8298d9986b7e38df79cefd526">mrpt::utils::CMHPropertiesValuesList</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_planar_laser_scan.html#a174be00acf923c26a2a5933ffe750f6b">mrpt::opengl::CPlanarLaserScan</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_wireless_power_grid_map2_d.html#a446665d934bb68fc8582f33bff9d92b8">mrpt::slam::CWirelessPowerGridMap2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images.html#abb628a6fcb83bb9803bb4f72dffe1f1c">mrpt::slam::CObservationStereoImages</a>, <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a4fb51439298d885903af7000d353f46b">mrpt::math::CMatrix</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html#a7304e3b9362d80754232877aacdaa808">mrpt::poses::CPose3DPDFParticles</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_quat.html#a9c680e7f88f85b165e8f806fd02d4a56">mrpt::poses::CPose3DQuat</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#acf667fcb7d982bf6dce0a4616136c262">mrpt::hmtslam::CHMHMapNode</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_beacon.html#a8c5aa5059603c4457fef60eb8fdb1ecf">mrpt::slam::CBeacon</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_text3_d.html#aaa3a55f9b83404ad3842cd764060683d">mrpt::opengl::CText3D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_stereo_images_features.html#aba4a19c73ed95546f0fcb16eb057f18e">mrpt::slam::CObservationStereoImagesFeatures</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_ellipsoid.html#a3650d34de6b1f5019fe777978c02cafb">mrpt::opengl::CEllipsoid</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_landmark.html#a75becf8cf9a5879930d55afddada8e8a">mrpt::slam::CLandmark</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_quat_p_d_f_gaussian.html#ad33b8d9da7a6f510520c342cb1ba81bd">mrpt::poses::CPose3DQuatPDFGaussian</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_robot_poses_graph.html#aadda9db6b2b0928164ad50e8cd11eaee">mrpt::hmtslam::CRobotPosesGraph</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_mesh.html#a5d7468f17d7679ab2f620e1e200e3806">mrpt::opengl::CMesh</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_particles.html#a7cf711985eb19c122259fb73e57ac79b">mrpt::poses::CPosePDFParticles</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_s_o_g.html#ab76de1691de9b7eeb0aa79308743b3b1">mrpt::poses::CPosePDFSOG</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_display_window_plots.html#aa6f1cf193c3bf6a2313b53951346e782">mrpt::gui::CDisplayWindowPlots</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_gas_concentration_grid_map2_d.html#a2291a08ea655179c09a95a7c2bd1795d">mrpt::slam::CGasConcentrationGridMap2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_image.html#a3faac43a2aa3cc2cb83009dea36fb091">mrpt::slam::CObservationImage</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_set_of_lines.html#a310eb858ada8a9becd13c951c2d24bf8">mrpt::opengl::CSetOfLines</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_text.html#a3687a19a0da6211642fea5da8c3a8ec4">mrpt::opengl::CText</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_gaussian.html#a9b27d9967b815ee3940c15de195a36e2">mrpt::poses::CPose3DPDFGaussian</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_gaussian_inf.html#a9bd19644e5dbc753f2fbb5f6aaa973aa">mrpt::poses::CPose3DPDFGaussianInf</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_arc.html#a3d86e457d12686c0cfcc43ad82428799">mrpt::hmtslam::CHMHMapArc</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_polyhedron.html#a511f6a7e6cc8e6744bc0373174c7427d">mrpt::opengl::CPolyhedron</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian_inf.html#a7846f251ee6c4a06823a9e317efe9425">mrpt::poses::CPosePDFGaussianInf</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_hierarchical_m_h_map.html#a27438440f4020af9344d231faccc753f">mrpt::hmtslam::CHierarchicalMHMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_angular_observation_mesh.html#a18b235563a3fc738b91a6e6e53a9015f">mrpt::opengl::CAngularObservationMesh</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#aa9464b5162eb23c17d9e8cfb261d05a7">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html#a31d7ca9b000e8f07a79929e591343d86">mrpt::slam::CIncrementalMapPartitioner</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_r_b_p_f_particle_data.html#a5bcc1c02aed4050434ed55b74f2ff650">mrpt::slam::CRBPFParticleData</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html#a0bf70b9de6ac93f51598aac53e2003d3">mrpt::poses::CPoint2D</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point_p_d_f_s_o_g.html#a49ae926af8ad565263ce3cfbfac678a0">mrpt::poses::CPointPDFSOG</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html#a7bfbc310c6895373d2a861c32a7e9a42">mrpt::poses::CPose2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#ade98e5012f143f773dca038ebedaf414">mrpt::slam::CSimplePointsMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_disk.html#ac24e8aff817cff149884379a9f2bc8f3">mrpt::opengl::CDisk</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_set_of_objects.html#a7b52c011ee07d664d4fb68e8a8aadbcd">mrpt::opengl::CSetOfObjects</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_s_o_g.html#a446f3aa07c01e02a3e6b217cf5add70a">mrpt::poses::CPose3DPDFSOG</a>, <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html#ae3614449388ba0d04ada82669bec0737">mrpt::utils::TCamera</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a7e8d6d2fb451afbde43e9ac7221ddc9b">mrpt::slam::CActionRobotMovement2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_battery_state.html#a2cb06e193f5eb42aa2a831020d95afff">mrpt::slam::CObservationBatteryState</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_grid_plane_x_y.html#abbd3dfcf7b030079b2abfba5ea6444be">mrpt::opengl::CGridPlaneXY</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_grid_plane_x_z.html#aefe4896e131caf88278a5a716217332e">mrpt::opengl::CGridPlaneXZ</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html#a29bbab541ccead175735cb918d824df8">mrpt::poses::CPoint3D</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html#a965e60ece7618520c2b8ca8fffd193a8">mrpt::poses::CPosePDFGaussian</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html#a6d025252ed5f6b5f4e0a4e3ddc416b7f">mrpt::slam::CSimpleMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_arrow.html#a41cc3bf824b9cb780a3ab7cf192a3364">mrpt::opengl::CArrow</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_axis.html#ac25fb689167766f779d410e27ea1d49e">mrpt::opengl::CAxis</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_sphere.html#aa575a8579770705b353c529c2cb087fb">mrpt::opengl::CSphere</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a0e0d2c095e57a26850f403067f8a57b9">mrpt::slam::CWeightedPointsMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_camera.html#a633a46c1730b7ab2a384894aaeb5a2b1">mrpt::opengl::CCamera</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_grid.html#ab2e0aecfd0e0b44f72034ccc3fbb9b31">mrpt::poses::CPosePDFGrid</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html#ac9a15d228b7367a12ca0b7eb4d83c6b5">mrpt::utils::CStringList</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_odometry.html#a05fd7949574d81da2ba09078098ecf30">mrpt::slam::CObservationOdometry</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_box.html#a8c9b11cb2c190d0e483139fa867b18c6">mrpt::opengl::CBox</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_set_of_textured_triangles.html#ad2a5d067f01067243281582300ec203b">mrpt::opengl::CSetOfTexturedTriangles</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_memory_chunk.html#a78bcb5c78c30e2ce9264f175992824e7">mrpt::utils::CMemoryChunk</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html#a407a76e436c9a8e8078894c35fdb5158">mrpt::slam::CActionCollection</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_g_p_s.html#a55cbbc63858e0090c78510beec989412">mrpt::slam::CObservationGPS</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_range.html#a99ebd8676c155b314f49dab5e3a76330">mrpt::slam::CObservationRange</a>, <a class="el" href="classmrpt_1_1reactivenav_1_1_c_log_file_record.html#a04c05b92a6607524ea23b9e5b5ed8b09">mrpt::reactivenav::CLogFileRecord</a>, <a class="el" href="classmrpt_1_1math_1_1_c_spline_interpolator1_d.html#a53aa9a1e2f53f277b9e1488e0c96b6c5">mrpt::math::CSplineInterpolator1D</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_properties_values_list.html#aa79cf430bc89538e7550ec20a10491e4">mrpt::utils::CPropertiesValuesList</a>, <a class="el" href="classmrpt_1_1gui_1_1_c_display_window.html#a5f25675c29fb9c67cabf4c6ca2162cf3">mrpt::gui::CDisplayWindow</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_bearing_range.html#a2507aece9dce13c5f3bb9f5a190e096c">mrpt::slam::CObservationBearingRange</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_gas_sensors.html#abcc880fd8478f9062e10e765a6207ba9">mrpt::slam::CObservationGasSensors</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_wireless_power.html#a9b77480065c165be0e906ad2ff971cd9">mrpt::slam::CObservationWirelessPower</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c3_d_s_scene.html#a3cb1f8940317a760f31397e1c3ad0027">mrpt::opengl::C3DSScene</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_visual_landmarks.html#ab1be9ba6c66ffd5ac0c3d3cef5a133f9">mrpt::slam::CObservationVisualLandmarks</a>, <a class="el" href="classmrpt_1_1math_1_1_c_matrix_b.html#a59912ae9f05fa0604d49df187947af11">mrpt::math::CMatrixB</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point_p_d_f_gaussian.html#ac4c2c51962f520b5879919cba0a9e206">mrpt::poses::CPointPDFGaussian</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_poses2_d_sequence.html#aabce19dce3c15e10b340f26f4ebe535f">mrpt::poses::CPoses2DSequence</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_poses3_d_sequence.html#a095af4ace78646a9fab689723fa00508">mrpt::poses::CPoses3DSequence</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_simple_database_table.html#a696a686e91fd5f7289706fd0bd6ddfc5">mrpt::utils::CSimpleDatabaseTable</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement3_d.html#a16bc246dde9470e74a1033da69c9866e">mrpt::slam::CActionRobotMovement3D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_beacon_ranges.html#a23e787119a1f9bd94eb9b5690e0daccb">mrpt::slam::CObservationBeaconRanges</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_comment.html#a434bcdda2cc6f6c265ae62788adfd98a">mrpt::slam::CObservationComment</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_cylinder.html#a8e5b85adca444e64144ee6f3faf83114">mrpt::opengl::CCylinder</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_set_of_triangles.html#abbbbb3d087ed3ee7c2da39eac11ab95a">mrpt::opengl::CSetOfTriangles</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation_reflectivity.html#a17ef8a534a2149e36dc7b95fba49eae0">mrpt::slam::CObservationReflectivity</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_generalized_cylinder.html#a77bf22c0582d88b4faeb742d29b5c048">mrpt::opengl::CGeneralizedCylinder</a>, <a class="el" href="classmrpt_1_1math_1_1_c_polygon.html#a5e7e04d290bd0a8e5ea200c5c6161789">mrpt::math::CPolygon</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d_p_d_f_gaussian.html#ae3fd0af40f8db138878c9bec82d334cb">mrpt::poses::CPoint2DPDFGaussian</a>, <a class="el" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#ad234b06eecf2225506f9095dd8e8a6d7">mrpt::poses::TSimple3DPoint</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_open_g_l_standard_object.html#a8988a84c557b3ca109ad0549abc5a146">mrpt::opengl::COpenGLStandardObject</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_simple_line.html#ad04236958bd785b246c4b128c0921fed">mrpt::opengl::CSimpleLine</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_textured_plane.html#a85b062e19d9544cdc2aca554ef99c326">mrpt::opengl::CTexturedPlane</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_type_selector.html#ab43700d20fcedc8db931a39a061ef5a0">mrpt::utils::CTypeSelector</a>, and <a class="el" href="classmrpt_1_1reactivenav_1_1_c_log_file_record___v_f_f.html#af9583f931124d502e9c20d2786262b0e">mrpt::reactivenav::CLogFileRecord_VFF</a>.</p>

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

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

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

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

<p>STL-like method to check whether the map is empty: </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00646">646</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab9063f7c83687192a2f739863c8ba80f"></a><!-- doxytag: member="mrpt::slam::CPointsMap::enableFilterByHeight" ref="ab9063f7c83687192a2f739863c8ba80f" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::enableFilterByHeight </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable/disable the filter-by-height functionality. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a577223305acb3f6a9900a352c9522e86" title="Set the min/max Z levels for points to be actually inserted in the map (only if enableFilterByHeight(...">setHeightFilterLevels</a> </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Default upon construction is disabled. </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00692">692</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7624db62454aad4228f03308094ca809"></a><!-- doxytag: member="mrpt::slam::CPointsMap::extractCylinder" ref="a7624db62454aad4228f03308094ca809" args="(const CPoint2D &amp;center, const double radius, const double zmin, const double zmax, CPointsMap *outMap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::extractCylinder </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>zmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>zmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *&#160;</td>
          <td class="paramname"><em>outMap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a27bd2218114ff12e7e259ce98f5ea22a"></a><!-- doxytag: member="mrpt::slam::CPointsMap::fuseWith" ref="a27bd2218114ff12e7e259ce98f5ea22a" args="(CPointsMap *anotherMap, float minDistForFuse=0.02f, std::vector&lt; bool &gt; *notFusedPoints=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::fuseWith </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> *&#160;</td>
          <td class="paramname"><em>anotherMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>minDistForFuse</em> = <code>0.02f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; bool &gt; *&#160;</td>
          <td class="paramname"><em>notFusedPoints</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert the contents of another map into this one, fusing the previous content with the new one. </p>
<p>This means that points very close to existing ones will be "fused", rather than "added". This prevents the unbounded increase in size of these class of maps. NOTICE that "otherMap" is neither translated nor rotated here, so if this is desired it must done before calling this method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">otherMap</td><td>The other map whose points are to be inserted into this one. </td></tr>
    <tr><td class="paramname">minDistForFuse</td><td>Minimum distance (in meters) between two points, each one in a map, to be considered the same one and be fused rather than added. </td></tr>
    <tr><td class="paramname">notFusedPoints</td><td>If a pointer is supplied, this list will contain at output a list with a "bool" value per point in "this" map. This will be false/true according to that point having been fused or not. </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_points_map.html#a71bb7e6036298e63ebcac81a2a4fdc75" title="Transform the range scan into a set of cartessian coordinated points.">loadFromRangeScan</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a859be10bcfa10896eea281ba0b2cb7bd" title="Adds all the points from anotherMap to this map, without fusing.">addFrom</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aca0f289c4c4caedd60604c349216ad5f"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getAllPoints" ref="aca0f289c4c4caedd60604c349216ad5f" args="(VECTOR &amp;xs, VECTOR &amp;ys, VECTOR &amp;zs, size_t decimation=1) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class VECTOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getAllPoints </td>
          <td>(</td>
          <td class="paramtype">VECTOR &amp;&#160;</td>
          <td class="paramname"><em>xs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">VECTOR &amp;&#160;</td>
          <td class="paramname"><em>ys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">VECTOR &amp;&#160;</td>
          <td class="paramname"><em>zs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>decimation</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the 2D/3D points as a <a class="el" href="classstd_1_1vector.html" title="STL class.">std::vector</a> of float coordinates. </p>
<p>If decimation is greater than 1, only 1 point out of that number will be saved in the output, effectively performing a subsampling of the points. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa3fb0ae4aa2620bde91e0e859c8fd695" title="Provides a direct access to a read-only reference of the internal point buffer.">getPointsBufferRef_x</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9aef705ea139d585ce0617eb1e03322d" title="Provides a direct access to a read-only reference of the internal point buffer.">getPointsBufferRef_y</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a22a28b1fa66e48fd82dd0597e8da45dd" title="Provides a direct access to a read-only reference of the internal point buffer.">getPointsBufferRef_z</a> </dd></dl>
<dl><dt><b>Template Parameters:</b></dt><dd>
  <table class="">
    <tr><td class="paramname">VECTOR</td><td>can be std::vector&lt;float or double&gt; or any row/column <a class="el" href="class_eigen_1_1_array.html" title="General-purpose arrays with easy API for coefficient-wise operations.">Eigen::Array</a> or <a class="el" href="class_eigen_1_1_matrix.html" title="The matrix class, also used for vectors and row-vectors.">Eigen::Matrix</a> (this includes <a class="el" href="namespacemrpt.html#aa271572e3985202e030758bfd54a02e1">mrpt::vector_float</a> and <a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">mrpt::vector_double</a>). </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00390">390</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, <a class="el" href="_core_source.html#l00604">Eigen::internal::y</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a62638c177a1a056808c8346bdcfbe19a"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getAllPoints" ref="a62638c177a1a056808c8346bdcfbe19a" args="(std::vector&lt; TPoint3D &gt; &amp;ps, size_t decimation=1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getAllPoints </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>decimation</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00408">408</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad76891e4406af9ea695e00c344d5451e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getAllPoints" ref="ad76891e4406af9ea695e00c344d5451e" args="(std::vector&lt; float &gt; &amp;xs, std::vector&lt; float &gt; &amp;ys, size_t decimation=1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getAllPoints </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>xs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>ys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>decimation</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the 2D/3D points as a <a class="el" href="classstd_1_1vector.html" title="STL class.">std::vector</a> of float coordinates. </p>
<p>If decimation is greater than 1, only 1 point out of that number will be saved in the output, effectively performing a subsampling of the points. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#adc878eb5f32d6b0900aad2bee5de7438" title="Set all the points at once from vectors with X,Y and Z coordinates.">setAllPoints</a> </dd></dl>

</div>
</div>
<a class="anchor" id="accfde089a2cb721d2412d94a78d24e00"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getAllPoints" ref="accfde089a2cb721d2412d94a78d24e00" args="(std::vector&lt; TPoint2D &gt; &amp;ps, size_t decimation=1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getAllPoints </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>decimation</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00425">425</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>Returns a 3D object representing the map. </p>
<p>The color of the points is given by the static variables: COLOR_3DSCENE_R,COLOR_3DSCENE_G,COLOR_3DSCENE_B </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespacemrpt_1_1global__settings.html#a82116abc80994c2092c0fc7f2d05d304" title="The size of points when exporting with getAs3DObject() (default=3.0) Affects to:">mrpt::global_settings::POINTSMAPS_3DOBJECT_POINTSIZE</a> </dd></dl>

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

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a7eb2acd0723e931c4121c3d8696fee88">mrpt::slam::CColouredPointsMap</a>.</p>

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

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

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

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a6c5f6976255dc9b50b218af23f8ea7bf">mrpt::slam::CSimplePointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00657">657</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

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

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a340ffc456415944bd87fc75c370eb575">mrpt::slam::CSimplePointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00658">658</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0e18ecb30fb7c35d4dcaf329c6b4f88d"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getHeightFilterLevels" ref="a0e18ecb30fb7c35d4dcaf329c6b4f88d" args="(double &amp;_z_min, double &amp;_z_max) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getHeightFilterLevels </td>
          <td>(</td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_z_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>_z_max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the min/max Z levels for points to be actually inserted in the map. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ab9063f7c83687192a2f739863c8ba80f" title="Enable/disable the filter-by-height functionality.">enableFilterByHeight</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a577223305acb3f6a9900a352c9522e86" title="Set the min/max Z levels for points to be actually inserted in the map (only if enableFilterByHeight(...">setHeightFilterLevels</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00699">699</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac004b3282bce5cfd2a6dbc497efd15af"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getLargestDistanceFromOrigin" ref="ac004b3282bce5cfd2a6dbc497efd15af" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::CPointsMap::getLargestDistanceFromOrigin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method returns the largest distance from the origin to any of the points, such as a sphere centered at the origin with this radius cover ALL the points in the map (the results are buffered, such as, if the map is not modified, the second call will be much faster than the first one). </p>

</div>
</div>
<a class="anchor" id="ab44fa5c6bce789384ea7a151a7b8fb1e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getLargestDistanceFromOriginNoRecompute" ref="ab44fa5c6bce789384ea7a151a7b8fb1e" args="(bool &amp;output_is_valid) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::CPointsMap::getLargestDistanceFromOriginNoRecompute </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>output_is_valid</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af" title="This method returns the largest distance from the origin to any of the points, such as a sphere cente...">getLargestDistanceFromOrigin()</a></em> but returns in <em>output_is_valid</em> = false if the distance was not already computed, skipping its computation then, unlike <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af" title="This method returns the largest distance from the origin to any of the points, such as a sphere cente...">getLargestDistanceFromOrigin()</a> </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00665">665</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1d9782483d4284c04cde1051b8543435"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getLoadPLYErrorString" ref="a1d9782483d4284c04cde1051b8543435" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::utils::PLY_Importer::getLoadPLYErrorString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a description of the error if <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a7c340b4858926edfcaa300e85b7e3758" title="Loads from a PLY file.">loadFromPlyFile()</a> returned false, or an empty string if the file was loaded without problems. </p>

<p>Definition at line <a class="el" href="_p_l_y__import__export_8h_source.html#l00060">60</a> of file <a class="el" href="_p_l_y__import__export_8h_source.html">PLY_import_export.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac7ef4277ce42b02e575cbbbcee9817dd"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPCLPointCloud" ref="ac7ef4277ce42b02e575cbbbcee9817dd" args="(POINTCLOUD &amp;cloud) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class POINTCLOUD &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getPCLPointCloud </td>
          <td>(</td>
          <td class="paramtype">POINTCLOUD &amp;&#160;</td>
          <td class="paramname"><em>cloud</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Use to convert this MRPT point cloud object into a PCL point cloud object. </p>
<p>Usage example: </p>
<div class="fragment"><pre class="fragment">    mrpt::slam::CPointsCloud       pc;
    pcl::PointCloud&lt;pcl::PointXYZ&gt; cloud;

    pc.getPCLPointCloud(cloud);
</pre></div> 
<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00733">733</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="bits_8h_source.html#l00065">mrpt::math::size()</a>, and <a class="el" href="_core_source.html#l00604">Eigen::internal::y</a>.</p>

</div>
</div>
<a class="anchor" id="a17067ebed8be364c7f9123bc6b2e908e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="a17067ebed8be364c7f9123bc6b2e908e" args="(size_t index, float &amp;x, float &amp;y, float &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to a given point from map, as a 2D point. </p>
<p>First index is 0. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The return value is the weight of the point (the times it has been fused), or 1 if weights are not used. </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">Throws</td><td><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a> on index out of bound. </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_points_map.html#aaf0d8a56ceb231e684fe18238479aebe" title="Changes a given point from map, with Z defaulting to 0 if not provided.">setPoint</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a4d2ba33d8a318da5a55829e5073b886b" title="Just like getPoint() but without checking out-of-bound index and without returning the point weight...">getPointFast</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#aafd1f8a2fb9d32af2459862b3c24ff67">mrpt::slam::CColouredPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a3d42a6168c92830a7002791df2bac8d4"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="a3d42a6168c92830a7002791df2bac8d4" args="(size_t index, float &amp;x, float &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="a02bbbdd434151c848d174ea5431bc7c5"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="a02bbbdd434151c848d174ea5431bc7c5" args="(size_t index, double &amp;x, double &amp;y, double &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="af76f87224f5866a376417a093149366c"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="af76f87224f5866a376417a093149366c" args="(size_t index, double &amp;x, double &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="a3ce718a63c0733bcdfe0944267bfcce2"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="a3ce718a63c0733bcdfe0944267bfcce2" args="(size_t index, CPoint2D &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00325">325</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00325">getPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00325">getPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="aad3fb20bbc9e0c778596204b05dd0c62"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="aad3fb20bbc9e0c778596204b05dd0c62" args="(size_t index, CPoint3D &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00327">327</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00327">getPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00327">getPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="af597ecaafd5ec51b978e5173d0d1153b"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="af597ecaafd5ec51b978e5173d0d1153b" args="(size_t index, mrpt::math::TPoint2D &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">mrpt::math::TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00329">329</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00329">getPoint()</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00076">mrpt::math::TPoint2D::x</a>, and <a class="el" href="lightweight__geom__data_8h_source.html#l00080">mrpt::math::TPoint2D::y</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00329">getPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a63456178721baa909f2c18020f582dc0"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="a63456178721baa909f2c18020f582dc0" args="(size_t index, mrpt::math::TPoint3D &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00331">331</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00331">getPoint()</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00293">mrpt::math::TPoint3D::x</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00294">mrpt::math::TPoint3D::y</a>, and <a class="el" href="lightweight__geom__data_8h_source.html#l00295">mrpt::math::TPoint3D::z</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00331">getPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a8815468742e10ec2cf542e0f856db539"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPoint" ref="a8815468742e10ec2cf542e0f856db539" args="(size_t index, float &amp;x, float &amp;y, float &amp;z, float &amp;R, float &amp;G, float &amp;B) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::getPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>R</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>G</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to a given point from map, and its colors, if the map defines them (othersise, R=G=B=1.0). </p>
<p>First index is 0. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The return value is the weight of the point (the times it has been fused) </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">Throws</td><td><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a> on index out of bound. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#ad14ebc00a0ced330359d4ab8c1655322">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00337">337</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="aaf601e3656906e94f1038e957314a2fa"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointAllFields" ref="aaf601e3656906e94f1038e957314a2fa" args="(const size_t index, std::vector&lt; float &gt; &amp;point_data) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getPointAllFields </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>point_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc... </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a0d1488b4087097aca0e56ca4c76428a9" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFieldsFast</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#afd77da4549b936f182355675ace9caf2" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFieldsFast</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00475">475</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00287">ASSERT_BELOW_</a>, and <a class="el" href="bits_8h_source.html#l00065">mrpt::math::size()</a>.</p>

</div>
</div>
<a class="anchor" id="a0d1488b4087097aca0e56ca4c76428a9"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointAllFieldsFast" ref="a0d1488b4087097aca0e56ca4c76428a9" args="(const size_t index, std::vector&lt; float &gt; &amp;point_data) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::getPointAllFieldsFast </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>point_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc... </p>
<p>Unlike <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf601e3656906e94f1038e957314a2fa" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFields()</a>, this method does not check for index out of bounds </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf601e3656906e94f1038e957314a2fa" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#afd77da4549b936f182355675ace9caf2" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFieldsFast</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a686464c642a349b8d3f213b8c0e4ccbf">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a54de1c2997eab5fcf2e17f23bafc7f4b">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#afdc531ec22b00021b479c332cd31c888">mrpt::slam::CWeightedPointsMap</a>.</p>

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

<p>Just like <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a17067ebed8be364c7f9123bc6b2e908e" title="Access to a given point from map, as a 2D point.">getPoint()</a></em> but without checking out-of-bound index and without returning the point weight, just XYZ. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00345">345</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5cad425a5c1d035d30377171f1a89f28"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointsBuffer" ref="a5cad425a5c1d035d30377171f1a89f28" args="(size_t &amp;outPointsCount, const float *&amp;xs, const float *&amp;ys, const float *&amp;zs) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::getPointsBuffer </td>
          <td>(</td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>outPointsCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&amp;&#160;</td>
          <td class="paramname"><em>xs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&amp;&#160;</td>
          <td class="paramname"><em>ys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&amp;&#160;</td>
          <td class="paramname"><em>zs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Provides a direct access to points buffer, or NULL if there is no points in the map. </p>

</div>
</div>
<a class="anchor" id="aa3fb0ae4aa2620bde91e0e859c8fd695"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointsBufferRef_x" ref="aa3fb0ae4aa2620bde91e0e859c8fd695" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;float&gt;&amp; mrpt::slam::CPointsMap::getPointsBufferRef_x </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Provides a direct access to a read-only reference of the internal point buffer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aca0f289c4c4caedd60604c349216ad5f" title="Returns a copy of the 2D/3D points as a std::vector of float coordinates.">getAllPoints</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a9aef705ea139d585ce0617eb1e03322d"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointsBufferRef_y" ref="a9aef705ea139d585ce0617eb1e03322d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;float&gt;&amp; mrpt::slam::CPointsMap::getPointsBufferRef_y </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Provides a direct access to a read-only reference of the internal point buffer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aca0f289c4c4caedd60604c349216ad5f" title="Returns a copy of the 2D/3D points as a std::vector of float coordinates.">getAllPoints</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00380">380</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_core_source.html#l00604">Eigen::internal::y</a>.</p>

</div>
</div>
<a class="anchor" id="a22a28b1fa66e48fd82dd0597e8da45dd"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointsBufferRef_z" ref="a22a28b1fa66e48fd82dd0597e8da45dd" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;float&gt;&amp; mrpt::slam::CPointsMap::getPointsBufferRef_z </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Provides a direct access to a read-only reference of the internal point buffer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aca0f289c4c4caedd60604c349216ad5f" title="Returns a copy of the 2D/3D points as a std::vector of float coordinates.">getAllPoints</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00382">382</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>Returns the number of stored points in the map (DEPRECATED, use "size()" instead better) </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00310">310</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="bits_8h_source.html#l00065">mrpt::math::size()</a>.</p>

</div>
</div>
<a class="anchor" id="a38ec7522ec35ad0bb6c2d4987d647f92"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getPointWeight" ref="a38ec7522ec35ad0bb6c2d4987d647f92" args="(size_t index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual unsigned int mrpt::slam::CPointsMap::getPointWeight </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the point weight, which is ignored in all classes (defaults to 1) but in those which actually store that field (Note: No checks are done for out-of-bounds index). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaeb151dbe5d18be6494e1c6882f6ba8a" title="Sets the point weight, which is ignored in all classes but those which actually store that field (Not...">setPointWeight</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a4172d8cf9b0430577ad3fd683c5b8b4a">mrpt::slam::CWeightedPointsMap</a>.</p>

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

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

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

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

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#adad91911ab28570cac85136391b0ed09">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a46e7c0d1dcd1e783a2863e9f544800fa">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a0e9e3b6b499c6a41dcab7c2cc2a2d239">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a9ee5f77b023b7ef39f935f14ce624650"></a><!-- doxytag: member="mrpt::slam::CPointsMap::getSavePLYErrorString" ref="a9ee5f77b023b7ef39f935f14ce624650" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::utils::PLY_Exporter::getSavePLYErrorString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a description of the error if loadFromPlyFile() returned false, or an empty string if the file was loaded without problems. </p>

<p>Definition at line <a class="el" href="_p_l_y__import__export_8h_source.html#l00106">106</a> of file <a class="el" href="_p_l_y__import__export_8h_source.html">PLY_import_export.h</a>.</p>

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

<p>Returns true if the point map has a color field for each point. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a56c1019cbdc5608bc42a31357867e326">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00348">348</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

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

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

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

<p>Insert the contents of another map into this one with some geometric transformation, without fusing close points. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">otherMap</td><td>The other map whose points are to be inserted into this one. </td></tr>
    <tr><td class="paramname">otherPose</td><td>The pose of the other map in the coordinates of THIS map </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a27bd2218114ff12e7e259ce98f5ea22a" title="Insert the contents of another map into this one, fusing the previous content with the new one...">fuseWith</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a859be10bcfa10896eea281ba0b2cb7bd" title="Adds all the points from anotherMap to this map, without fusing.">addFrom</a> </dd></dl>

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

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

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

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

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

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

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

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

<p>Provides a way to insert (append) individual points into the map: the missing fields of child classes (color, weight, etc) are left to their default values. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a0549ebd200f3285e7943343043ae9cbc">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00438">438</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab389147c86e55ae2043c46ec55af5fff"></a><!-- doxytag: member="mrpt::slam::CPointsMap::insertPoint" ref="ab389147c86e55ae2043c46ec55af5fff" args="(const CPoint3D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::insertPoint </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>p</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#adb9744467316409f9b474a3cb6e30757">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00440">440</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00440">insertPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00440">insertPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="af0ee824da205af075d588eee9b13849b"></a><!-- doxytag: member="mrpt::slam::CPointsMap::insertPoint" ref="af0ee824da205af075d588eee9b13849b" args="(const mrpt::math::TPoint3D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::insertPoint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a1b97f8ecb351260d70578efc6adbe37b">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00442">442</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00442">insertPoint()</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00293">mrpt::math::TPoint3D::x</a>, <a class="el" href="lightweight__geom__data_8h_source.html#l00294">mrpt::math::TPoint3D::y</a>, and <a class="el" href="lightweight__geom__data_8h_source.html#l00295">mrpt::math::TPoint3D::z</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00442">insertPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a9ef6b4d41470d42b8f3103d31b33db13"></a><!-- doxytag: member="mrpt::slam::CPointsMap::insertPoint" ref="a9ef6b4d41470d42b8f3103d31b33db13" args="(float x, float y, float z, float R, float G, float B)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::insertPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>R</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>G</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#aaebb916ae54df35c9d4dda9ea6199bb6">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00444">444</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00444">insertPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00444">insertPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a25b66b2977826e25af612de86430938e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::insertPointFast" ref="a25b66b2977826e25af612de86430938e" args="(float x, float y, float z=0)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::insertPointFast </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The virtual method for <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aad8346e26d776369ba24711e70206b3d" title="Provides a way to insert (append) individual points into the map: the missing fields of child classes...">insertPoint()</a></em> *without* calling <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad5028a5349d4f0b2f16bb490efa387cc" title="Called only by this class or children classes, set m_largestDistanceFromOriginIsUpdated=false and suc...">mark_as_modified()</a> </p>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#ad67612f39c9875a95a27e5b8da57b34e">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a5a036583205903fc494d3eaa28882292">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#aa82bb538d15ee1c29c15514409df7972">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="ab08f10325208248ce3d8abc08fcbc87a"></a><!-- doxytag: member="mrpt::slam::CPointsMap::internal_insertObservation" ref="ab08f10325208248ce3d8abc08fcbc87a" args="(const CObservation *obs, const CPose3D *robotPose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CPointsMap::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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is a common version of <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">CMetricMap::insertObservation()</a> for point maps (actually, <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#aab88fec1ad02cceaaaf74c02d4e6f68a" title="Internal method called by insertObservation()">CMetricMap::internal_insertObservation</a>), so derived classes don't need to worry implementing that method unless something special is really necesary. </p>
<p>See <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...">mrpt::slam::CPointsMap</a> for the enumeration of types of observations which are accepted. </p>

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

<p>Returns true if the map is empty/no observation has been inserted. </p>

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

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

<p>Return whether filter-by-height is enabled. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ab9063f7c83687192a2f739863c8ba80f" title="Enable/disable the filter-by-height functionality.">enableFilterByHeight</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00694">694</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="af949c6bbd44c833213e6842bc9048dd2"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdtree_distance" ref="af949c6bbd44c833213e6842bc9048dd2" args="(const float *p1, const size_t idx_p2, size_t size) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::CPointsMap::kdtree_distance </td>
          <td>(</td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>p1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>idx_p2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the distance between the vector "p1[0:size-1]" and the data point with index "idx_p2" stored in the class: </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00764">764</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_core_source.html#l00604">Eigen::internal::y</a>.</p>

</div>
</div>
<a class="anchor" id="a04e670ff64c79b8a66824bcf98ac7e5d"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdtree_get_bbox" ref="a04e670ff64c79b8a66824bcf98ac7e5d" args="(BBOX &amp;bb) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename BBOX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CPointsMap::kdtree_get_bbox </td>
          <td>(</td>
          <td class="paramtype">BBOX &amp;&#160;</td>
          <td class="paramname"><em>bb</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00785">785</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>Must return the number of data points. </p>

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

<p>References <a class="el" href="bits_8h_source.html#l00065">mrpt::math::size()</a>.</p>

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

<p>Returns the dim'th component of the idx'th point in the class: </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00757">757</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_core_source.html#l00604">Eigen::internal::y</a>.</p>

</div>
</div>
<a class="anchor" id="a257dd22c1a52d1150117195aaf416f16"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdtree_mark_as_outdated" ref="a257dd22c1a52d1150117195aaf416f16" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdtree_mark_as_outdated </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>To be called by child classes when KD tree data changes. </p>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00575">575</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae9c0bb8eae4945085a0b03408adaa180"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint2D" ref="ae9c0bb8eae4945085a0b03408adaa180" args="(float x0, float y0, float &amp;out_x, float &amp;out_y, float &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::math::KDTreeCapable::kdTreeClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the closest point (only ONE) to some given 2D coordinates. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 3D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">out_x</td><td>The X coordinate of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_y</td><td>The Y coordinate of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_dist_sqr</td><td>The square distance between the query and the returned point.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The index of the closest point in the map array. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeClosestPoint3D, kdTreeTwoClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00136">136</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="acccf80ebe86d7512a2eabb1f4cd7d5e7"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint2D" ref="acccf80ebe86d7512a2eabb1f4cd7d5e7" args="(float x0, float y0, float &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::math::KDTreeCapable::kdTreeClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00166">166</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa931ad90835e719b966cf61c317c6e6d"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint2D" ref="aa931ad90835e719b966cf61c317c6e6d" args="(const TPoint2D &amp;p0, TPoint2D &amp;pOut, float &amp;outDistSqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::math::KDTreeCapable::kdTreeClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00189">189</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

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

<p>Like kdTreeClosestPoint2D, but just return the square error from some point to its closest neighbor. </p>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00199">199</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="abee2f8ff656e8eca62d0444021577776"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint2DsqrError" ref="abee2f8ff656e8eca62d0444021577776" args="(const TPoint2D &amp;p0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::math::KDTreeCapable::kdTreeClosestPoint2DsqrError </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00208">208</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a89eab3ed58a61ba1dd561552562a1215"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint3D" ref="a89eab3ed58a61ba1dd561552562a1215" args="(float x0, float y0, float z0, float &amp;out_x, float &amp;out_y, float &amp;out_z, float &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::math::KDTreeCapable::kdTreeClosestPoint3D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the closest point (only ONE) to some given 3D coordinates. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 2D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">z0</td><td>The Z coordinate of the query. </td></tr>
    <tr><td class="paramname">out_x</td><td>The X coordinate of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_y</td><td>The Y coordinate of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_z</td><td>The Z coordinate of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_dist_sqr</td><td>The square distance between the query and the returned point.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The index of the closest point in the map array. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00394">394</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a44afd69e49d989baa2973ffd7f7037e6"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint3D" ref="a44afd69e49d989baa2973ffd7f7037e6" args="(float x0, float y0, float z0, float &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::math::KDTreeCapable::kdTreeClosestPoint3D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00428">428</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2f18fd292f21f156b9ac5ae3503f44aa"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeClosestPoint3D" ref="a2f18fd292f21f156b9ac5ae3503f44aa" args="(const TPoint3D &amp;p0, TPoint3D &amp;pOut, float &amp;outDistSqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::math::KDTreeCapable::kdTreeClosestPoint3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00454">454</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="abf55cf62066eeff4c9db446b040c481d"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint2D" ref="abf55cf62066eeff4c9db446b040c481d" args="(float x0, float y0, size_t knn, std::vector&lt; float &gt; &amp;out_x, std::vector&lt; float &gt; &amp;out_y, std::vector&lt; float &gt; &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;int&gt; mrpt::math::KDTreeCapable::kdTreeNClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the N closest point to some given 2D coordinates. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 3D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">N</td><td>The number of closest points to search. </td></tr>
    <tr><td class="paramname">out_x</td><td>The vector containing the X coordinates of the correspondences. </td></tr>
    <tr><td class="paramname">out_y</td><td>The vector containing the Y coordinates of the correspondences. </td></tr>
    <tr><td class="paramname">out_dist_sqr</td><td>The vector containing the square distance between the query and the returned points.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The list of indices </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeClosestPoint2D </dd>
<dd>
kdTreeTwoClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00293">293</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a98394b54ad28658bdb397116bcd7a1d7"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint2D" ref="a98394b54ad28658bdb397116bcd7a1d7" args="(const TPoint2D &amp;p0, size_t N, std::vector&lt; TPoint2D &gt; &amp;pOut, std::vector&lt; float &gt; &amp;outDistSqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;int&gt; mrpt::math::KDTreeCapable::kdTreeNClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a17665632b43c9a65530cbc97581128bc"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint2DIdx" ref="a17665632b43c9a65530cbc97581128bc" args="(float x0, float y0, size_t knn, std::vector&lt; int &gt; &amp;out_idx, std::vector&lt; float &gt; &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeNClosestPoint2DIdx </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the N closest point to some given 2D coordinates and returns their indexes. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 3D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">N</td><td>The number of closest points to search. </td></tr>
    <tr><td class="paramname">out_idx</td><td>The indexes of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_dist_sqr</td><td>The square distance between the query and the returned point.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00351">351</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6d16ab2d09b0e2f59b368ce43f4ba944"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint2DIdx" ref="a6d16ab2d09b0e2f59b368ce43f4ba944" args="(const TPoint2D &amp;p0, size_t N, std::vector&lt; int &gt; &amp;outIdx, std::vector&lt; float &gt; &amp;outDistSqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeNClosestPoint2DIdx </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>outIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a9fd5af04995704c55b1a17f4515da803"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint3D" ref="a9fd5af04995704c55b1a17f4515da803" args="(float x0, float y0, float z0, size_t knn, std::vector&lt; float &gt; &amp;out_x, std::vector&lt; float &gt; &amp;out_y, std::vector&lt; float &gt; &amp;out_z, std::vector&lt; float &gt; &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeNClosestPoint3D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the N closest points to some given 3D coordinates. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 2D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">z0</td><td>The Z coordinate of the query. </td></tr>
    <tr><td class="paramname">N</td><td>The number of closest points to search. </td></tr>
    <tr><td class="paramname">out_x</td><td>The vector containing the X coordinates of the correspondences. </td></tr>
    <tr><td class="paramname">out_y</td><td>The vector containing the Y coordinates of the correspondences. </td></tr>
    <tr><td class="paramname">out_z</td><td>The vector containing the Z coordinates of the correspondences. </td></tr>
    <tr><td class="paramname">out_dist_sqr</td><td>The vector containing the square distance between the query and the returned points.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeNClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00480">480</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a61a35dc755ae1225f6d09e6d81eefb05"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint3D" ref="a61a35dc755ae1225f6d09e6d81eefb05" args="(const TPoint3D &amp;p0, size_t N, std::vector&lt; TPoint3D &gt; &amp;pOut, std::vector&lt; float &gt; &amp;outDistSqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeNClosestPoint3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00517">517</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a343546d3f23d9c1df671c4d8c5c9eb39"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint3DIdx" ref="a343546d3f23d9c1df671c4d8c5c9eb39" args="(float x0, float y0, float z0, size_t knn, std::vector&lt; int &gt; &amp;out_idx, std::vector&lt; float &gt; &amp;out_dist_sqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeNClosestPoint3DIdx </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the N closest point to some given 3D coordinates and returns their indexes. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 2D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">z0</td><td>The Z coordinate of the query. </td></tr>
    <tr><td class="paramname">N</td><td>The number of closest points to search. </td></tr>
    <tr><td class="paramname">out_idx</td><td>The indexes of the found closest correspondence. </td></tr>
    <tr><td class="paramname">out_dist_sqr</td><td>The square distance between the query and the returned point.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00543">543</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab6112525867566c872402236781413e7"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeNClosestPoint3DIdx" ref="ab6112525867566c872402236781413e7" args="(const TPoint3D &amp;p0, size_t N, std::vector&lt; int &gt; &amp;outIdx, std::vector&lt; float &gt; &amp;outDistSqr) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeNClosestPoint3DIdx </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>outIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00567">567</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9edfbd2ada1466c02e7bf136c39ca9dd"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeTwoClosestPoint2D" ref="a9edfbd2ada1466c02e7bf136c39ca9dd" args="(float x0, float y0, float &amp;out_x1, float &amp;out_y1, float &amp;out_x2, float &amp;out_y2, float &amp;out_dist_sqr1, float &amp;out_dist_sqr2) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeTwoClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_y2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>out_dist_sqr2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KD Tree-based search for the TWO closest point to some given 2D coordinates. </p>
<p>This method automatically build the "m_kdtree_data" structure when:</p>
<ul>
<li>It is called for the first time</li>
<li>The map has changed</li>
<li>The KD-tree was build for 3D.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The X coordinate of the query. </td></tr>
    <tr><td class="paramname">y0</td><td>The Y coordinate of the query. </td></tr>
    <tr><td class="paramname">out_x1</td><td>The X coordinate of the first correspondence. </td></tr>
    <tr><td class="paramname">out_y1</td><td>The Y coordinate of the first correspondence. </td></tr>
    <tr><td class="paramname">out_x2</td><td>The X coordinate of the second correspondence. </td></tr>
    <tr><td class="paramname">out_y2</td><td>The Y coordinate of the second correspondence. </td></tr>
    <tr><td class="paramname">out_dist_sqr1</td><td>The square distance between the query and the first returned point. </td></tr>
    <tr><td class="paramname">out_dist_sqr2</td><td>The square distance between the query and the second returned point.</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>kdTreeClosestPoint2D </dd></dl>

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00229">229</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad9af4bb0f1547c6718c7a5ef5f3e7591"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdTreeTwoClosestPoint2D" ref="ad9af4bb0f1547c6718c7a5ef5f3e7591" args="(const TPoint2D &amp;p0, TPoint2D &amp;pOut1, TPoint2D &amp;pOut2, float &amp;outDistSqr1, float &amp;outDistSqr2) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::KDTreeCapable::kdTreeTwoClosestPoint2D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pOut1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pOut2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>outDistSqr2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_k_d_tree_capable_8h_source.html#l00266">266</a> of file <a class="el" href="_k_d_tree_capable_8h_source.html">KDTreeCapable.h</a>.</p>

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

<p>Load from a text file. </p>
<p>Each line should contain an "X Y" coordinate pair, separated by whitespaces. Returns false if any error occured, true elsewere. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00268">268</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>2D or 3D generic implementation of <em>load2D_from_text_file</em> and load3D_from_text_file </p>

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

<p>Load from a text file. </p>
<p>Each line should contain an "X Y Z" coordinate tuple, separated by whitespaces. Returns false if any error occured, true elsewere. </p>

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

</div>
</div>
<a class="anchor" id="a7c340b4858926edfcaa300e85b7e3758"></a><!-- doxytag: member="mrpt::slam::CPointsMap::loadFromPlyFile" ref="a7c340b4858926edfcaa300e85b7e3758" args="(const std::string &amp;filename, CStringList *file_comments=NULL, CStringList *file_obj_info=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::PLY_Importer::loadFromPlyFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> *&#160;</td>
          <td class="paramname"><em>file_comments</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> *&#160;</td>
          <td class="paramname"><em>file_obj_info</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads from a PLY file. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The filename to open. It can be either in binary or text format. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">file_comments</td><td>If provided (!=NULL) the list of comment strings stored in the file will be returned. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">file_obj_info</td><td>If provided (!=NULL) the list of "object info" strings stored in the file will be returned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error in the file format or reading it. To obtain more details on the error you can call <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a1d9782483d4284c04cde1051b8543435" title="Return a description of the error if loadFromPlyFile() returned false, or an empty string if the file...">getLoadPLYErrorString()</a> </dd></dl>

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

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

</div>
</div>
<a class="anchor" id="a71bb7e6036298e63ebcac81a2a4fdc75"></a><!-- doxytag: member="mrpt::slam::CPointsMap::loadFromRangeScan" ref="a71bb7e6036298e63ebcac81a2a4fdc75" args="(const CObservation2DRangeScan &amp;rangeScan, const CPose3D *robotPose=NULL)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::loadFromRangeScan </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>rangeScan</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> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Transform the range scan into a set of cartessian coordinated points. </p>
<p>The options in "insertionOptions" are considered in this method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">rangeScan</td><td>The scan to be inserted into this map </td></tr>
    <tr><td class="paramname">robotPose</td><td>The robot 3D pose, default to (0,0,0|0deg,0deg,0deg). It is used to compute the sensor pose relative to the robot actual pose. Recall sensor pose is embeded in the observation class.</td></tr>
  </table>
  </dd>
</dl>
<p>Only ranges marked as "valid=true" in the observation will be inserted</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Each derived class may enrich points in different ways (color, weight, etc..), so please refer to the description of the specific implementation of <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...">mrpt::slam::CPointsMap</a> you are using. </dd>
<dd>
The actual generic implementation of this file lives in &lt;src&gt;/CPointsMap_crtp_common.h, but specific instantiations are generated at each derived class.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html" title="A &quot;CObservation&quot;-derived class that represents a 2D range scan measurement (typically from a laser sc...">CObservation2DRangeScan</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html" title="Declares a class derived from &quot;CObservation&quot; that encapsules a 3D range scan measurement (e...">CObservation3DRangeScan</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a0d2dcc123271389f7bdb14b99364db22">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#ab400758d55530685e2c6881a10f1c9d3">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a39b9d05de64b682ec35894830c8d8564">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="af27b9ff110f817e57a2796ea4789fcdc"></a><!-- doxytag: member="mrpt::slam::CPointsMap::loadFromRangeScan" ref="af27b9ff110f817e57a2796ea4789fcdc" args="(const CObservation3DRangeScan &amp;rangeScan, const CPose3D *robotPose=NULL)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::loadFromRangeScan </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html">CObservation3DRangeScan</a> &amp;&#160;</td>
          <td class="paramname"><em>rangeScan</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> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Overload of <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a71bb7e6036298e63ebcac81a2a4fdc75" title="Transform the range scan into a set of cartessian coordinated points.">loadFromRangeScan()</a></em> for 3D range scans (for example, Kinect observations). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">rangeScan</td><td>The scan to be inserted into this map </td></tr>
    <tr><td class="paramname">robotPose</td><td>The robot 3D pose, default to (0,0,0|0deg,0deg,0deg). It is used to compute the sensor pose relative to the robot actual pose. Recall sensor pose is embeded in the observation class.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Each derived class may enrich points in different ways (color, weight, etc..), so please refer to the description of the specific implementation of <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html" title="A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...">mrpt::slam::CPointsMap</a> you are using. </dd>
<dd>
The actual generic implementation of this file lives in &lt;src&gt;/CPointsMap_crtp_common.h, but specific instantiations are generated at each derived class. </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#ae3d7820902008722f23eb6441dc5044a">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a87821f96818aed5b045f1ab38b49ed5c">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#af8bbf63dbbd4bb00265403c3a18bcd00">mrpt::slam::CWeightedPointsMap</a>.</p>

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

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

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

</div>
</div>
<a class="anchor" id="ad5028a5349d4f0b2f16bb490efa387cc"></a><!-- doxytag: member="mrpt::slam::CPointsMap::mark_as_modified" ref="ad5028a5349d4f0b2f16bb490efa387cc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::mark_as_modified </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called only by this class or children classes, set m_largestDistanceFromOriginIsUpdated=false and such. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00821">821</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3f4578b8ab47dab204792147caf1842b"></a><!-- doxytag: member="mrpt::slam::CPointsMap::operator+=" ref="a3f4578b8ab47dab204792147caf1842b" args="(const CPointsMap &amp;anotherMap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">CPointsMap</a> &amp;&#160;</td>
          <td class="paramname"><em>anotherMap</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This operator is synonymous with <em>addFrom</em>. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a859be10bcfa10896eea281ba0b2cb7bd" title="Adds all the points from anotherMap to this map, without fusing.">addFrom</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00247">247</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="aea9230b8985aa6eb82d55110049343e8"></a><!-- doxytag: member="mrpt::slam::CPointsMap::PLY_export_get_face_count" ref="aea9230b8985aa6eb82d55110049343e8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t mrpt::slam::CPointsMap::PLY_export_get_face_count </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>In a base class, return the number of faces. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html#a59156777ea6e9a293b2f0928d85b1731">mrpt::utils::PLY_Exporter</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00858">858</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a17b10cad494a23c6917661fb345b0014"></a><!-- doxytag: member="mrpt::slam::CPointsMap::PLY_export_get_vertex" ref="a17b10cad494a23c6917661fb345b0014" args="(const size_t idx, mrpt::math::TPoint3Df &amp;pt, bool &amp;pt_has_color, mrpt::utils::TColorf &amp;pt_color) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::PLY_export_get_vertex </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_df.html">mrpt::math::TPoint3Df</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>pt_has_color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> &amp;&#160;</td>
          <td class="paramname"><em>pt_color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>In a base class, will be called after <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa59022a6966dca11b5cc417c00b1b553" title="In a base class, return the number of vertices.">PLY_export_get_vertex_count()</a> once for each exported point. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pt_color</td><td>Will be NULL if the loaded file does not provide color info. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html#aaa23c01ae028a91a515f61adf6bcf8b7">mrpt::utils::PLY_Exporter</a>.</p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#ad74a038bf1e4f9d71d021c9256e39555">mrpt::slam::CColouredPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="aa59022a6966dca11b5cc417c00b1b553"></a><!-- doxytag: member="mrpt::slam::CPointsMap::PLY_export_get_vertex_count" ref="aa59022a6966dca11b5cc417c00b1b553" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t mrpt::slam::CPointsMap::PLY_export_get_vertex_count </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>In a base class, return the number of vertices. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html#a638a8dcf29de2572efd56407f47553e4">mrpt::utils::PLY_Exporter</a>.</p>

</div>
</div>
<a class="anchor" id="ad9ea76652470ebba193d23234d93dd56"></a><!-- doxytag: member="mrpt::slam::CPointsMap::PLY_import_set_face_count" ref="ad9ea76652470ebba193d23234d93dd56" args="(const size_t N)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::PLY_import_set_face_count </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>N</em></td><td>)</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>In a base class, reserve memory to prepare subsequent calls to PLY_import_set_face. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a7942d2b85c0ee7eb6ac0fc3846effc55">mrpt::utils::PLY_Importer</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00843">843</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a18e74e4a0750de0cb4e74685d2f73d45"></a><!-- doxytag: member="mrpt::slam::CPointsMap::PLY_import_set_vertex" ref="a18e74e4a0750de0cb4e74685d2f73d45" args="(const size_t idx, const mrpt::math::TPoint3Df &amp;pt, const mrpt::utils::TColorf *pt_color=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::PLY_import_set_vertex </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_df.html">mrpt::math::TPoint3Df</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">mrpt::utils::TColorf</a> *&#160;</td>
          <td class="paramname"><em>pt_color</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>In a base class, will be called after <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#a658b98fa22aabb2282de1c12e953db76" title="In a base class, reserve memory to prepare subsequent calls to PLY_import_set_vertex.">PLY_import_set_vertex_count()</a> once for each loaded point. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pt_color</td><td>Will be NULL if the loaded file does not provide color info. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___importer.html#ab4559cc2cf3cc8cd2eb06d03c28d5a10">mrpt::utils::PLY_Importer</a>.</p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a029c1dfb753c2373217cb075fb072a50">mrpt::slam::CColouredPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a658b98fa22aabb2282de1c12e953db76"></a><!-- doxytag: member="mrpt::slam::CPointsMap::PLY_import_set_vertex_count" ref="a658b98fa22aabb2282de1c12e953db76" args="(const size_t N)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::PLY_Importer::PLY_import_set_vertex_count </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>N</em></td><td>)</td>
          <td><code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>In a base class, reserve memory to prepare subsequent calls to PLY_import_set_vertex. </p>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a8f1a4fc3c5668e5336794e420aefd902">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_point_cloud_coloured.html#a0b699e92902f9fb3acdc2a23727c2866">mrpt::opengl::CPointCloudColoured</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a452c8c346268a64723b364ba4e66aeca">mrpt::slam::CSimplePointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#ad3391e8acbbe850e063babe28c59593e">mrpt::slam::CWeightedPointsMap</a>, and <a class="el" href="classmrpt_1_1opengl_1_1_c_point_cloud.html#a077218b5a2af944b554239d733dbf92c">mrpt::opengl::CPointCloud</a>.</p>

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

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

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

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

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

</div>
</div>
<a class="anchor" id="a44c7ce9395f8fd360638e51f0e8338cc"></a><!-- doxytag: member="mrpt::slam::CPointsMap::reserve" ref="a44c7ce9395f8fd360638e51f0e8338cc" args="(size_t newLength)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::reserve </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>newLength</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory. </p>
<p>This is useful for situations where it is approximately known the final size of the map. This method is more efficient than constantly increasing the size of the buffers. Refer to the STL C++ library's "reserve" methods. </p>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a323dc17bd63763da8bdd968115f9a180">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#af94507d6fc66457fea250da18be34a37">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a1e5f9594b4b9fab121c678831b547f6e">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a3e1115d12361e36b718977d549ea3e67"></a><!-- doxytag: member="mrpt::slam::CPointsMap::resize" ref="a3e1115d12361e36b718977d549ea3e67" args="(size_t newLength)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::resize </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>newLength</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resizes all point buffers so they can hold the given number of points: newly created points are set to default values, and old contents are not changed. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a44c7ce9395f8fd360638e51f0e8338cc" title="Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory.">reserve</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf0d8a56ceb231e684fe18238479aebe" title="Changes a given point from map, with Z defaulting to 0 if not provided.">setPoint</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a2a478c086aa1fea4f4e0cb815d510f56" title="Changes the coordinates of the given point (0-based index), *without* checking for out-of-bounds and ...">setPointFast</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a667bbe3ac140930e027b2354b7e3dddb" title="Resizes all point buffers so they can hold the given number of points, *erasing* all previous content...">setSize</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a79b621aae0403a01a1b98f90bcc7eb24">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#aa8945e614294ef9fca9dd58aa9b3489d">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a1c0f308577dd4e8d93e27e214ff5fa32">mrpt::slam::CWeightedPointsMap</a>.</p>

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

<p>Save to a text file. </p>
<p>Each line will contain "X Y" point coordinates. Returns false if any error occured, true elsewere. </p>

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

<p>Save to a text file. </p>
<p>Each line will contain "X Y Z" point coordinates. Returns false if any error occured, true elsewere. </p>

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

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

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

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00290">290</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3a2d3dcc6eb283187b01cc12fb585842"></a><!-- doxytag: member="mrpt::slam::CPointsMap::savePCDFile" ref="a3a2d3dcc6eb283187b01cc12fb585842" args="(const std::string &amp;filename, bool save_as_binary) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool mrpt::slam::CPointsMap::savePCDFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>save_as_binary</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Save the point cloud as a PCL PCD file, in either ASCII or binary format (requires MRPT built against PCL) </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a0d517540a73de45c6394f0d586f45175">mrpt::slam::CColouredPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a849c09483bdcf2414834af8a06bd84d6"></a><!-- doxytag: member="mrpt::slam::CPointsMap::saveToPlyFile" ref="a849c09483bdcf2414834af8a06bd84d6" args="(const std::string &amp;filename, bool save_in_binary=false, const CStringList &amp;file_comments=CStringList(), const CStringList &amp;file_obj_info=CStringList()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::PLY_Exporter::saveToPlyFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>save_in_binary</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> &amp;&#160;</td>
          <td class="paramname"><em>file_comments</em> = <code><a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a> &amp;&#160;</td>
          <td class="paramname"><em>file_obj_info</em> = <code><a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">CStringList</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Saves to a PLY file. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The filename to be saved. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">file_comments</td><td>If provided (!=NULL) the list of comment strings stored in the file will be returned. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">file_obj_info</td><td>If provided (!=NULL) the list of "object info" strings stored in the file will be returned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error writing the file. To obtain more details on the error you can call <a class="el" href="classmrpt_1_1utils_1_1_p_l_y___exporter.html#a9ee5f77b023b7ef39f935f14ce624650" title="Return a description of the error if loadFromPlyFile() returned false, or an empty string if the file...">getSavePLYErrorString()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="adc878eb5f32d6b0900aad2bee5de7438"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setAllPoints" ref="adc878eb5f32d6b0900aad2bee5de7438" args="(const std::vector&lt; float &gt; &amp;X, const std::vector&lt; float &gt; &amp;Y, const std::vector&lt; float &gt; &amp;Z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setAllPoints </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>Y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>Z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all the points at once from vectors with X,Y and Z coordinates. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aca0f289c4c4caedd60604c349216ad5f" title="Returns a copy of the 2D/3D points as a std::vector of float coordinates.">getAllPoints</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00463">463</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a74f949340a13dcccab1110c445060d84"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setAllPoints" ref="a74f949340a13dcccab1110c445060d84" args="(const std::vector&lt; float &gt; &amp;X, const std::vector&lt; float &gt; &amp;Y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setAllPoints </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>Y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all the points at once from vectors with X and Y coordinates (Z=0). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aca0f289c4c4caedd60604c349216ad5f" title="Returns a copy of the 2D/3D points as a std::vector of float coordinates.">getAllPoints</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00468">468</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2144cb76ac32d776db95f98a85ee7f8f"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setAllPointsTemplate" ref="a2144cb76ac32d776db95f98a85ee7f8f" args="(const VECTOR &amp;X, const VECTOR &amp;Y, const VECTOR &amp;Z=VECTOR())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VECTOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setAllPointsTemplate </td>
          <td>(</td>
          <td class="paramtype">const VECTOR &amp;&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const VECTOR &amp;&#160;</td>
          <td class="paramname"><em>Y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const VECTOR &amp;&#160;</td>
          <td class="paramname"><em>Z</em> = <code>VECTOR()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all the points at once from vectors with X,Y and Z coordinates (if Z is not provided, it will be set to all zeros). </p>
<dl><dt><b>Template Parameters:</b></dt><dd>
  <table class="">
    <tr><td class="paramname">VECTOR</td><td>can be <a class="el" href="namespacemrpt.html#aa271572e3985202e030758bfd54a02e1">mrpt::vector_float</a> or std::vector&lt;float&gt; or any other column or row <a class="el" href="class_eigen_1_1_matrix.html" title="The matrix class, also used for vectors and row-vectors.">Eigen::Matrix</a>. </td></tr>
  </table>
  </dd>
</dl>

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

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00285">ASSERT_EQUAL_</a>, <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, and <a class="el" href="eigen__plugins_8h_source.html#l00300">setSize()</a>.</p>

</div>
</div>
<a class="anchor" id="a577223305acb3f6a9900a352c9522e86"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setHeightFilterLevels" ref="a577223305acb3f6a9900a352c9522e86" args="(const double _z_min, const double _z_max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setHeightFilterLevels </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>_z_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>_z_max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the min/max Z levels for points to be actually inserted in the map (only if <em><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ab9063f7c83687192a2f739863c8ba80f" title="Enable/disable the filter-by-height functionality.">enableFilterByHeight()</a></em> was called before). </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00697">697</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>Changes a given point from map, with Z defaulting to 0 if not provided. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">Throws</td><td><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a> on index out of bound. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a0fd74c70c59aacc14275a070c4c64ad1">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00353">353</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00287">ASSERT_BELOW_</a>, and <a class="el" href="bits_8h_source.html#l00065">mrpt::math::size()</a>.</p>

</div>
</div>
<a class="anchor" id="ae1d0a9ae0b55fbf31a1f0f4b904d57b6"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPoint" ref="ae1d0a9ae0b55fbf31a1f0f4b904d57b6" args="(size_t index, CPoint2D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_point2_d.html">CPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a43f006567b7a11b12d08abb31a98c927">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00359">359</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00359">setPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00359">setPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a4e00422cb502c214469d7eeaec60de2b"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPoint" ref="a4e00422cb502c214469d7eeaec60de2b" args="(size_t index, CPoint3D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a243de027379e1c2e6f8127fad67aab22">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00361">361</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00361">setPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00361">setPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a755b43a1187bc6706b7f9ba75b5172ab"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPoint" ref="a755b43a1187bc6706b7f9ba75b5172ab" args="(size_t index, float x, float y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a19f852504249b3d889d386c977415946">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00363">363</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00363">setPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00363">setPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="a0fdaffa9c652c27a16e97283f88ed489"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPoint" ref="a0fdaffa9c652c27a16e97283f88ed489" args="(size_t index, float x, float y, float z, float R, float G, float B)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::setPoint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>R</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>G</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a07a80a98476d8996e2f9456cebe25c45">mrpt::slam::CColouredPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00365">365</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="_c_points_map_8h_source.html#l00365">setPoint()</a>.</p>

<p>Referenced by <a class="el" href="_c_points_map_8h_source.html#l00365">setPoint()</a>.</p>

</div>
</div>
<a class="anchor" id="ad7814ba94edc58cb8115537af9f3e1b3"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPointAllFields" ref="ad7814ba94edc58cb8115537af9f3e1b3" args="(const size_t index, const std::vector&lt; float &gt; &amp;point_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CPointsMap::setPointAllFields </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>point_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc... </p>
<p>Unlike <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFields()</a>, this method does not check for index out of bounds </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf601e3656906e94f1038e957314a2fa" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a0d1488b4087097aca0e56ca4c76428a9" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFieldsFast</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00484">484</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00287">ASSERT_BELOW_</a>, and <a class="el" href="bits_8h_source.html#l00065">mrpt::math::size()</a>.</p>

</div>
</div>
<a class="anchor" id="afd77da4549b936f182355675ace9caf2"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPointAllFieldsFast" ref="afd77da4549b936f182355675ace9caf2" args="(const size_t index, const std::vector&lt; float &gt; &amp;point_data)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::setPointAllFieldsFast </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>point_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all the data fields for one point as a vector: depending on the implementation class this can be [X Y Z] or [X Y Z R G B], etc... </p>
<p>Unlike <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFields()</a>, this method does not check for index out of bounds </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad7814ba94edc58cb8115537af9f3e1b3" title="Set all the data fields for one point as a vector: depending on the implementation class this can be ...">setPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf601e3656906e94f1038e957314a2fa" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFields</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a0d1488b4087097aca0e56ca4c76428a9" title="Get all the data fields for one point as a vector: depending on the implementation class this can be ...">getPointAllFieldsFast</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#aa46442e28710531aef4b2ac589c2531f">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#aff0e95ea2514343737e8dbad5abc0cca">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#aaddeffc2093ed1a90c043864701137fa">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="a2a478c086aa1fea4f4e0cb815d510f56"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPointFast" ref="a2a478c086aa1fea4f4e0cb815d510f56" args="(size_t index, float x, float y, float z)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::setPointFast </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the coordinates of the given point (0-based index), *without* checking for out-of-bounds and *without* calling <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad5028a5349d4f0b2f16bb490efa387cc" title="Called only by this class or children classes, set m_largestDistanceFromOriginIsUpdated=false and suc...">mark_as_modified()</a> </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf0d8a56ceb231e684fe18238479aebe" title="Changes a given point from map, with Z defaulting to 0 if not provided.">setPoint</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a10fac4d795a4b992301b9a3adb2a23e8">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#aa20c0d6c6b1c272e88064a8362db68e9">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#aa46fcb4509eda29dd05155a7ec881f43">mrpt::slam::CWeightedPointsMap</a>.</p>

</div>
</div>
<a class="anchor" id="aaeb151dbe5d18be6494e1c6882f6ba8a"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setPointWeight" ref="aaeb151dbe5d18be6494e1c6882f6ba8a" args="(size_t index, unsigned long w)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::setPointWeight </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>w</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the point weight, which is ignored in all classes but those which actually store that field (Note: No checks are done for out-of-bounds index). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a38ec7522ec35ad0bb6c2d4987d647f92" title="Gets the point weight, which is ignored in all classes (defaults to 1) but in those which actually st...">getPointWeight</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#afe8447220367df6c4ba225727c24f1d4">mrpt::slam::CWeightedPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00368">368</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a667bbe3ac140930e027b2354b7e3dddb"></a><!-- doxytag: member="mrpt::slam::CPointsMap::setSize" ref="a667bbe3ac140930e027b2354b7e3dddb" args="(size_t newLength)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::slam::CPointsMap::setSize </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>newLength</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resizes all point buffers so they can hold the given number of points, *erasing* all previous contents and leaving all points to default values. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a44c7ce9395f8fd360638e51f0e8338cc" title="Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory.">reserve</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aaf0d8a56ceb231e684fe18238479aebe" title="Changes a given point from map, with Z defaulting to 0 if not provided.">setPoint</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a2a478c086aa1fea4f4e0cb815d510f56" title="Changes the coordinates of the given point (0-based index), *without* checking for out-of-bounds and ...">setPointFast</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a667bbe3ac140930e027b2354b7e3dddb" title="Resizes all point buffers so they can hold the given number of points, *erasing* all previous content...">setSize</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#acc6596aa5995caee16290ede875e1b11">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a0979c4e15a155955a06805b74b082e80">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#ad52e03dd0adf423efa730bef18f25105">mrpt::slam::CWeightedPointsMap</a>.</p>

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

<p>Returns the number of stored points in the map. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00306">306</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="ac367eb5a8720b1d09b7ae8e8f4bfb8bd"></a><!-- doxytag: member="mrpt::slam::CPointsMap::squareDistanceToClosestCorrespondenceT" ref="ac367eb5a8720b1d09b7ae8e8f4bfb8bd" args="(const TPoint2D &amp;p0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::slam::CPointsMap::squareDistanceToClosestCorrespondenceT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>References <a class="el" href="lightweight__geom__data_8h_source.html#l00076">mrpt::math::TPoint2D::x</a>, and <a class="el" href="lightweight__geom__data_8h_source.html#l00080">mrpt::math::TPoint2D::y</a>.</p>

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

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

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

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a700526b4e30cabbc0586c55a7b6f6741"></a><!-- doxytag: member="mrpt::slam::CPointsMap::detail::loadFromRangeImpl" ref="a700526b4e30cabbc0586c55a7b6f6741" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend struct detail::loadFromRangeImpl<code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#a700526b4e30cabbc0586c55a7b6f6741">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#a700526b4e30cabbc0586c55a7b6f6741">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#a700526b4e30cabbc0586c55a7b6f6741">mrpt::slam::CWeightedPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00881">881</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="aafa381e2b3f5424967299d7ff37dc181"></a><!-- doxytag: member="mrpt::slam::CPointsMap::detail::pointmap_traits" ref="aafa381e2b3f5424967299d7ff37dc181" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend struct detail::pointmap_traits<code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_coloured_points_map.html#aafa381e2b3f5424967299d7ff37dc181">mrpt::slam::CColouredPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_simple_points_map.html#aafa381e2b3f5424967299d7ff37dc181">mrpt::slam::CSimplePointsMap</a>, and <a class="el" href="classmrpt_1_1slam_1_1_c_weighted_points_map.html#aafa381e2b3f5424967299d7ff37dc181">mrpt::slam::CWeightedPointsMap</a>.</p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00882">882</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

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

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

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

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

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="a9e6d8616374de431d3e37426c547e6d2"></a><!-- doxytag: member="mrpt::slam::CPointsMap::COLOR_3DSCENE_B" ref="a9e6d8616374de431d3e37426c547e6d2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9e6d8616374de431d3e37426c547e6d2">mrpt::slam::CPointsMap::COLOR_3DSCENE_B</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00706">706</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="abf258aab6bac3c1a3b8eb608851a65d8"></a><!-- doxytag: member="mrpt::slam::CPointsMap::COLOR_3DSCENE_G" ref="abf258aab6bac3c1a3b8eb608851a65d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#abf258aab6bac3c1a3b8eb608851a65d8">mrpt::slam::CPointsMap::COLOR_3DSCENE_G</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00705">705</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8903a53dd6a311cb590084b05d36d8d6"></a><!-- doxytag: member="mrpt::slam::CPointsMap::COLOR_3DSCENE_R" ref="a8903a53dd6a311cb590084b05d36d8d6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a8903a53dd6a311cb590084b05d36d8d6">mrpt::slam::CPointsMap::COLOR_3DSCENE_R</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The color [0,1] of points when extracted from getAs3DObject (default=blue) </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00704">704</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>The options used when inserting observations in the map. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00203">203</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a65f5da9a222c2c7b913f7e6242c6c77e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::kdtree_search_params" ref="a65f5da9a222c2c7b913f7e6242c6c77e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TKDTreeSearchParams <a class="el" href="classmrpt_1_1math_1_1_k_d_tree_capable.html#a65f5da9a222c2c7b913f7e6242c6c77e">mrpt::math::KDTreeCapable::kdtree_search_params</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parameters to tune the ANN searches. </p>

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

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

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00231">231</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6779dd635a5866164bfd9b4e8c098da"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_bb_max_x" ref="ad6779dd635a5866164bfd9b4e8c098da" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ad6779dd635a5866164bfd9b4e8c098da">mrpt::slam::CPointsMap::m_bb_max_x</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00817">817</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac0ccfa83c500adda592d8859149d7bd6"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_bb_max_y" ref="ac0ccfa83c500adda592d8859149d7bd6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac0ccfa83c500adda592d8859149d7bd6">mrpt::slam::CPointsMap::m_bb_max_y</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00817">817</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a413a1f710f72b5dacdb2c406e4639c56"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_bb_max_z" ref="a413a1f710f72b5dacdb2c406e4639c56" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a413a1f710f72b5dacdb2c406e4639c56">mrpt::slam::CPointsMap::m_bb_max_z</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00817">817</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2fb1b66d150d21509e1b0f4651e4271e"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_bb_min_x" ref="a2fb1b66d150d21509e1b0f4651e4271e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a2fb1b66d150d21509e1b0f4651e4271e">mrpt::slam::CPointsMap::m_bb_min_x</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00817">817</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a92d220a9988d1cc5761538c7135c729a"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_bb_min_y" ref="a92d220a9988d1cc5761538c7135c729a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a92d220a9988d1cc5761538c7135c729a">mrpt::slam::CPointsMap::m_bb_min_y</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00817">817</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa1e45bcc45cfb68847304766509a0055"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_bb_min_z" ref="aa1e45bcc45cfb68847304766509a0055" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#aa1e45bcc45cfb68847304766509a0055">mrpt::slam::CPointsMap::m_bb_min_z</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00817">817</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="af0f33257b75543f76629ff9f1ed2ab2f"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_boundingBoxIsUpdated" ref="af0f33257b75543f76629ff9f1ed2ab2f" 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_points_map.html#af0f33257b75543f76629ff9f1ed2ab2f">mrpt::slam::CPointsMap::m_boundingBoxIsUpdated</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00816">816</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

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

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

</div>
</div>
<a class="anchor" id="a663718e0db4253ff846bc8c3af4dba63"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_heightfilter_enabled" ref="a663718e0db4253ff846bc8c3af4dba63" 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_points_map.html#a663718e0db4253ff846bc8c3af4dba63">mrpt::slam::CPointsMap::m_heightfilter_enabled</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Whether or not (default=not) filter the input points by height. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af10f5171b41b28f17e93179bdfe98e55" title="The minimum and maximum height for a certain laser scan to be inserted into this map.">m_heightfilter_z_min</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac8b73c6c51eeeeb47e58c7e2bf02f7f2">m_heightfilter_z_max</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00877">877</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac8b73c6c51eeeeb47e58c7e2bf02f7f2"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_heightfilter_z_max" ref="ac8b73c6c51eeeeb47e58c7e2bf02f7f2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac8b73c6c51eeeeb47e58c7e2bf02f7f2">mrpt::slam::CPointsMap::m_heightfilter_z_max</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00873">873</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="af10f5171b41b28f17e93179bdfe98e55"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_heightfilter_z_min" ref="af10f5171b41b28f17e93179bdfe98e55" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#af10f5171b41b28f17e93179bdfe98e55">mrpt::slam::CPointsMap::m_heightfilter_z_min</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The minimum and maximum height for a certain laser scan to be inserted into this map. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a663718e0db4253ff846bc8c3af4dba63" title="Whether or not (default=not) filter the input points by height.">m_heightfilter_enabled</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00873">873</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9a36f0fde69940fce6bc648a35b4bbe3"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_largestDistanceFromOrigin" ref="a9a36f0fde69940fce6bc648a35b4bbe3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a9a36f0fde69940fce6bc648a35b4bbe3">mrpt::slam::CPointsMap::m_largestDistanceFromOrigin</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variables used in "getLargestDistanceFromOrigin". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af" title="This method returns the largest distance from the origin to any of the points, such as a sphere cente...">getLargestDistanceFromOrigin</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00809">809</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a095ebbf33aad995e1a67462194f669a4"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_largestDistanceFromOriginIsUpdated" ref="a095ebbf33aad995e1a67462194f669a4" 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_points_map.html#a095ebbf33aad995e1a67462194f669a4">mrpt::slam::CPointsMap::m_largestDistanceFromOriginIsUpdated</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variables used in "getLargestDistanceFromOrigin". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#ac004b3282bce5cfd2a6dbc497efd15af" title="This method returns the largest distance from the origin to any of the points, such as a sphere cente...">getLargestDistanceFromOrigin</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00814">814</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

</div>
</div>
<a class="anchor" id="a90235c924f8595aea0ef5a10c2bea86a"></a><!-- doxytag: member="mrpt::slam::CPointsMap::m_scans_sincos_cache" ref="a90235c924f8595aea0ef5a10c2bea86a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_sin_cos_look_up_table_for2_d_scans.html">CSinCosLookUpTableFor2DScans</a> <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a90235c924f8595aea0ef5a10c2bea86a">mrpt::slam::CPointsMap::m_scans_sincos_cache</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cache of sin/cos values for the latest 2D scan geometries. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00804">804</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00802">802</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00802">802</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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

<p>The point coordinates. </p>

<p>Definition at line <a class="el" href="_c_points_map_8h_source.html#l00802">802</a> of file <a class="el" href="_c_points_map_8h_source.html">CPointsMap.h</a>.</p>

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