Sophie

Sophie

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

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::CObservation2DRangeScan 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_observation2_d_range_scan.html">CObservation2DRangeScan</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::slam::CObservation2DRangeScan Class Reference<div class="ingroups"><a class="el" href="group__mrpt__obs__grp.html">[mrpt-obs]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::CObservation2DRangeScan" --><!-- doxytag: inherits="mrpt::slam::CObservation" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser scanner). </p>
<p>The data structures are generic enough to hold a wide variety of 2D scanners and "3D" planar rotating 2D lasers.</p>
<p>These are the most important data fields:</p>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aebc4a2fe346e299e632c732312b834e9" title="The range values of the scan, in meters.">CObservation2DRangeScan::scan</a> -&gt; A vector of float values with all the range measurements (in meters).</li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad75c2af475ada6103503511e90b965b7" title="It&#39;s false (=0) on no reflected rays, referenced to elements in &quot;scan&quot; (Added in the streamming versi...">CObservation2DRangeScan::validRange</a> -&gt; A vector (of <b>identical size</b> than <em>scan<em>), has non-zeros for those ranges than are valid (i.e. will be zero for non-reflected rays, etc.)</em></em></li>
<li><em><em><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a3216654f8a7ca1794d07c7413543b65d" title="The aperture of the range finder, in radians (typically M_PI = 180 degrees).">CObservation2DRangeScan::aperture</a> -&gt; The field-of-view of the scanner, in radians (typically, M_PI = 180deg).</em></em></li>
<li><em><em><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aaacc571bf0d8bf9d2c5b8739c7e6857b" title="The 6D pose of the sensor on the robot.">CObservation2DRangeScan::sensorPose</a> -&gt; The 6D location of the sensor on the robot reference frame (default=at the origin).</em></em></li>
</ul>
<p><em><em> </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html" title="Declares a class that represents any robot&#39;s observation.">CObservation</a>, <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>, <a class="el" href="structmrpt_1_1slam_1_1_t2_d_scan_properties.html" title="Auxiliary struct that holds all the relevant *geometry* information about a 2D scan.">T2DScanProperties</a> </dd></dl>
<p></em></em></p>
</div>
<p><code>#include &lt;<a class="el" href="_c_observation2_d_range_scan_8h_source.html">mrpt/slam/CObservation2DRangeScan.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CObservation2DRangeScan:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_observation2_d_range_scan__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_observation2_d_range_scan_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_observation2_d_range_scan_inherit__map" id="mrpt_1_1slam_1_1_c_observation2_d_range_scan_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_observation.html" title="Declares a class that represents any robot&#39;s observation." alt="" coords="47,155,219,181"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT..." alt="" coords="51,80,215,107"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="65,5,200,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a><br class="typebreak"/>
&lt; <a class="el" href="classmrpt_1_1math_1_1_c_polygon.html">mrpt::math::CPolygon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad84b4588de720028ae8989b1f1494d36">TListExclusionAreas</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used in filterByExclusionAreas.  <a href="#ad84b4588de720028ae8989b1f1494d36"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; std::pair<br class="typebreak"/>
&lt; <a class="el" href="classmrpt_1_1math_1_1_c_polygon.html">mrpt::math::CPolygon</a>, <br class="typebreak"/>
std::pair&lt; double, double &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a544c9d0e7cdf70ddcebeaa82f21a22b6">TListExclusionAreasWithRanges</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used in filterByExclusionAreas.  <a href="#a544c9d0e7cdf70ddcebeaa82f21a22b6"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ae31092001a1cc00a69bd34eda473d41f">CObservation2DRangeScan</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#ae31092001a1cc00a69bd34eda473d41f"></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_observation2_d_range_scan.html#a7a253cbcc5fb685a7a528dd902f0f7e9">~CObservation2DRangeScan</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a7a253cbcc5fb685a7a528dd902f0f7e9"></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_observation2_d_range_scan.html#a74404a5742cef05b70f96c67323e945c">isPlanarScan</a> (const double tolerance=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the laser scanner is "horizontal", so it has an absolute value of "pitch" and "roll" less or equal to the given tolerance (in rads, default=0) (with the normal vector either upwards or downwards).  <a href="#a74404a5742cef05b70f96c67323e945c"></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_observation2_d_range_scan.html#afc2d42de54c932681d12d4df215b9bbf">getSensorPose</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;out_sensorPose) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A general method to retrieve the sensor pose on the robot.  <a href="#afc2d42de54c932681d12d4df215b9bbf"></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_observation2_d_range_scan.html#acd2e8d929df8608f32d8fb9d2fafeee4">setSensorPose</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;newSensorPose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A general method to change the sensor pose on the robot.  <a href="#acd2e8d929df8608f32d8fb9d2fafeee4"></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_observation2_d_range_scan.html#a076ddb3e1ec13191d670394c24f1ec26">truncateByDistanceAndAngle</a> (float min_distance, float max_angle, float min_height=0, float max_height=0, float h=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A general method to truncate the scan by defining a minimum valid distance and a maximum valid angle as well as minimun and maximum heights (NOTE: the laser z-coordinate must be provided).  <a href="#a076ddb3e1ec13191d670394c24f1ec26"></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_observation2_d_range_scan.html#a53cbef75bf254382c0e335b321390d25">filterByExclusionAreas</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad84b4588de720028ae8989b1f1494d36">TListExclusionAreas</a> &amp;areas)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid sensed points that fall within any of a set of "exclusion areas", given in coordinates relative to the vehicle (taking into account "sensorPose").  <a href="#a53cbef75bf254382c0e335b321390d25"></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_observation2_d_range_scan.html#a0e690928844a503852bba1cfea8b519d">filterByExclusionAreas</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a544c9d0e7cdf70ddcebeaa82f21a22b6">TListExclusionAreasWithRanges</a> &amp;areas)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid sensed points that fall within any of a set of "exclusion areas", given in coordinates relative to the vehicle (taking into account "sensorPose"), AND such as the Z coordinate of the point falls in the range [min,max] associated to each exclusion polygon.  <a href="#a0e690928844a503852bba1cfea8b519d"></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_observation2_d_range_scan.html#af0dec061a1b487621c23a46b800ab284">filterByExclusionAngles</a> (const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; std::pair&lt; double, double &gt; &gt; &amp;angles)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark as invalid the ranges in any of a given set of "forbiden angle ranges", given as pairs&lt;min_angle,max_angle&gt;.  <a href="#af0dec061a1b487621c23a46b800ab284"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class METRICMAP &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_observation.html#a4dadc9d2618ea3701084e8cce4671564">insertObservationInto</a> (METRICMAP *theMap, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *robotPose=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is equivalent to:  <a href="#a4dadc9d2618ea3701084e8cce4671564"></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_observation.html#ac795d3df57b998131638f5ead0c1f337">getSensorPose</a> (<a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">mrpt::math::TPose3D</a> &amp;out_sensorPose) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A general method to retrieve the sensor pose on the robot.  <a href="#ac795d3df57b998131638f5ead0c1f337"></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_observation.html#ab79a75c6ddf65c8d99f97cbfeb38e9b8">setSensorPose</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">mrpt::math::TPose3D</a> &amp;newSensorPose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A general method to change the sensor pose on the robot.  <a href="#ab79a75c6ddf65c8d99f97cbfeb38e9b8"></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 colspan="2"><div class="groupHeader">Delayed-load manual control methods.</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_observation.html#ae8925420b61a2aa460886e09d123a495">load</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes sure all images and other fields which may be externally stored are loaded in memory.  <a href="#ae8925420b61a2aa460886e09d123a495"></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_observation.html#ab0bf2ed10a730838b5357c5da0126711">unload</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unload all images, for the case they being delayed-load images stored in external files (othewise, has no effect).  <a href="#ab0bf2ed10a730838b5357c5da0126711"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Data common to any observation</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#ade9177f41827da9121847104e5b0ecd2">timestamp</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The associated time-stamp.  <a href="#ade9177f41827da9121847104e5b0ecd2"></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_1slam_1_1_c_observation.html#a7d451b2c59c2722f512227318df62579">sensorLabel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An arbitrary label that can be used to identify the sensor.  <a href="#a7d451b2c59c2722f512227318df62579"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTTI stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a34c88a99e7e81d3727701c1307dda162">swap</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap with another observation, ONLY the data defined here in the base class <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html" title="Declares a class that represents any robot&#39;s observation.">CObservation</a>. It's protected since it'll be only called from child classes that should know what else to swap appart from these common data.  <a href="#a34c88a99e7e81d3727701c1307dda162"></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 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_observation.html#ac18f1c87c3720fec30ed793f21b1dcc8">classCObservation</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_observation.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_observation2_d_range_scan_ptr.html">CObservation2DRangeScanPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aa39d29ae62d7ccbf885b896f37b93e56">SmartPtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a6d74dc95edcf3d908883036a0d83d411">_init_CObservation2DRangeScan</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a496e4f0cabf9522ea0cef4a3cb281314">classCObservation2DRangeScan</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_observation2_d_range_scan.html#ac133c1a09e160c0a1d370073f26de35e">classinfo</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a73e403f6d47400629548bb0545f56bbc">_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_observation2_d_range_scan.html#a4938064252f559a3a47380d14741b6a8">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="#a4938064252f559a3a47380d14741b6a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a8752d16a6e4ee043b88101c9850f4099">duplicate</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class.  <a href="#a8752d16a6e4ee043b88101c9850f4099"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aff782e6e09842dc7a39f98f0a4309138">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_observation2_d_range_scan_ptr.html">CObservation2DRangeScanPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ae9fec36a13e70dcb588fe31451320854">Create</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Scan data</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_observation2_d_range_scan.html#aebc4a2fe346e299e632c732312b834e9">scan</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The range values of the scan, in meters.  <a href="#aebc4a2fe346e299e632c732312b834e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; char &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad75c2af475ada6103503511e90b965b7">validRange</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">It's false (=0) on no reflected rays, referenced to elements in "scan" (Added in the streamming version #1 of the class)  <a href="#ad75c2af475ada6103503511e90b965b7"></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_observation2_d_range_scan.html#a3216654f8a7ca1794d07c7413543b65d">aperture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The aperture of the range finder, in radians (typically M_PI = 180 degrees).  <a href="#a3216654f8a7ca1794d07c7413543b65d"></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_observation2_d_range_scan.html#aeee9186fdaf0eaeebb9f0ded33f22fb5">rightToLeft</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The scanning direction.  <a href="#aeee9186fdaf0eaeebb9f0ded33f22fb5"></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_observation2_d_range_scan.html#afca19481225fa9b184a7abe3e6931904">maxRange</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum range allowed by the device, in meters (e.g.  <a href="#afca19481225fa9b184a7abe3e6931904"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aaacc571bf0d8bf9d2c5b8739c7e6857b">sensorPose</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The 6D pose of the sensor on the robot.  <a href="#aaacc571bf0d8bf9d2c5b8739c7e6857b"></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_observation2_d_range_scan.html#aef254fa9ce154e6a8c290c8d75deed07">stdError</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The "sigma" error of the device in meters, used while inserting the scan in an occupancy grid.  <a href="#aef254fa9ce154e6a8c290c8d75deed07"></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_observation2_d_range_scan.html#acca00ddf6bfc0253aa22c346683acb9c">beamAperture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The aperture of each beam, in radians, used to insert "thick" rays in the occupancy grid.  <a href="#acca00ddf6bfc0253aa22c346683acb9c"></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_observation2_d_range_scan.html#a30ade452374508635ac800c7491ac498">deltaPitch</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If the laser gathers data by sweeping in the pitch/elevation angle, this holds the increment in "pitch" (=-"elevation") between the beginning and the end of the scan (the sensorPose member stands for the pose at the beginning of the scan).  <a href="#a30ade452374508635ac800c7491ac498"></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_observation2_d_range_scan.html#a3621a8843af0045999ebce2d227accf9">getScanProperties</a> (<a class="el" href="structmrpt_1_1slam_1_1_t2_d_scan_properties.html">T2DScanProperties</a> &amp;p) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill out a <a class="el" href="structmrpt_1_1slam_1_1_t2_d_scan_properties.html" title="Auxiliary struct that holds all the relevant *geometry* information about a 2D scan.">T2DScanProperties</a> structure with the parameters of this scan.  <a href="#a3621a8843af0045999ebce2d227accf9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Cached points map</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_ptr.html">mrpt::slam::CMetricMapPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aea68a25900f603f63b90131b802e41b3">m_cachedMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A points map, build only under demand by the methods <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a3808a7892632a0b03daad8e419273724" title="Returns the cached points map representation of the scan, if already build with buildAuxPointsMap(), or NULL otherwise.">getAuxPointsMap()</a> and <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>.  <a href="#aea68a25900f603f63b90131b802e41b3"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class POINTSMAP &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">const POINTSMAP *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a3808a7892632a0b03daad8e419273724">getAuxPointsMap</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the cached points map representation of the scan, if already build with <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>, or NULL otherwise.  <a href="#a3808a7892632a0b03daad8e419273724"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class POINTSMAP &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">const POINTSMAP *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3">buildAuxPointsMap</a> (const void *options=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a cached points map representing this laser scan, building it upon the first call.  <a href="#ad10117d91cc26724f8d2908645c374a3"></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_observation2_d_range_scan.html#a3c967d3fc1010dd75e5d23c00e471608">internal_buildAuxPointsMap</a> (const void *options=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal method, used from <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>  <a href="#a3c967d3fc1010dd75e5d23c00e471608"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="aa39d29ae62d7ccbf885b896f37b93e56"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::SmartPtr" ref="aa39d29ae62d7ccbf885b896f37b93e56" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_observation2_d_range_scan_ptr.html">CObservation2DRangeScanPtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aa39d29ae62d7ccbf885b896f37b93e56">mrpt::slam::CObservation2DRangeScan::SmartPtr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A typedef for the associated smart pointer </p>

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

</div>
</div>
<a class="anchor" id="ad84b4588de720028ae8989b1f1494d36"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::TListExclusionAreas" ref="ad84b4588de720028ae8989b1f1494d36" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;<a class="el" href="classmrpt_1_1math_1_1_c_polygon.html">mrpt::math::CPolygon</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad84b4588de720028ae8989b1f1494d36">mrpt::slam::CObservation2DRangeScan::TListExclusionAreas</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used in filterByExclusionAreas. </p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00078">78</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

</div>
</div>
<a class="anchor" id="a544c9d0e7cdf70ddcebeaa82f21a22b6"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::TListExclusionAreasWithRanges" ref="a544c9d0e7cdf70ddcebeaa82f21a22b6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;std::pair&lt;<a class="el" href="classmrpt_1_1math_1_1_c_polygon.html">mrpt::math::CPolygon</a>,std::pair&lt;double,double&gt; &gt; &gt; <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a544c9d0e7cdf70ddcebeaa82f21a22b6">mrpt::slam::CObservation2DRangeScan::TListExclusionAreasWithRanges</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used in filterByExclusionAreas. </p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00079">79</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

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

<p>Default constructor. </p>

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

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a73e403f6d47400629548bb0545f56bbc"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::_GetBaseClass" ref="a73e403f6d47400629548bb0545f56bbc" 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::CObservation2DRangeScan::_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_observation.html#a2478a6c7dbdb372b36dd1e9b4148aba5">mrpt::slam::CObservation</a>.</p>

</div>
</div>
<a class="anchor" id="ad10117d91cc26724f8d2908645c374a3"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::buildAuxPointsMap" ref="ad10117d91cc26724f8d2908645c374a3" args="(const void *options=NULL) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class POINTSMAP &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const POINTSMAP* mrpt::slam::CObservation2DRangeScan::buildAuxPointsMap </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>options</em> = <code>NULL</code></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a cached points map representing this laser scan, building it upon the first call. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">options</td><td>Can be NULL to use default point maps' insertion options, or a pointer to a "CPointsMap::TInsertionOptions" structure to override some params. Usage: <div class="fragment"><pre class="fragment">    mrpt::slam::CPointsMap *map = obs-&gt;buildAuxPointsMap&lt;mrpt::slam::CPointsMap&gt;(&amp;options or NULL);
</pre></div> </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_observation2_d_range_scan.html#a3808a7892632a0b03daad8e419273724" title="Returns the cached points map representation of the scan, if already build with buildAuxPointsMap(), or NULL otherwise.">getAuxPointsMap</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00169">169</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::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="ae9fec36a13e70dcb588fe31451320854"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::Create" ref="ae9fec36a13e70dcb588fe31451320854" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1slam_1_1_c_observation2_d_range_scan_ptr.html">CObservation2DRangeScanPtr</a> mrpt::slam::CObservation2DRangeScan::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

</div>
</div>
<a class="anchor" id="a534695890364f4b916bba07dad311bcf"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::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="af0dec061a1b487621c23a46b800ab284"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::filterByExclusionAngles" ref="af0dec061a1b487621c23a46b800ab284" args="(const std::vector&lt; std::pair&lt; double, double &gt; &gt; &amp;angles)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::filterByExclusionAngles </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; std::pair&lt; double, double &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>angles</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mark as invalid the ranges in any of a given set of "forbiden angle ranges", given as pairs&lt;min_angle,max_angle&gt;. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>C2DRangeFinderAbstract::loadExclusionAreas </dd></dl>

</div>
</div>
<a class="anchor" id="a53cbef75bf254382c0e335b321390d25"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::filterByExclusionAreas" ref="a53cbef75bf254382c0e335b321390d25" args="(const TListExclusionAreas &amp;areas)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::filterByExclusionAreas </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad84b4588de720028ae8989b1f1494d36">TListExclusionAreas</a> &amp;&#160;</td>
          <td class="paramname"><em>areas</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mark as invalid sensed points that fall within any of a set of "exclusion areas", given in coordinates relative to the vehicle (taking into account "sensorPose"). </p>
<dl class="see"><dt><b>See also:</b></dt><dd>C2DRangeFinderAbstract::loadExclusionAreas </dd></dl>

</div>
</div>
<a class="anchor" id="a0e690928844a503852bba1cfea8b519d"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::filterByExclusionAreas" ref="a0e690928844a503852bba1cfea8b519d" args="(const TListExclusionAreasWithRanges &amp;areas)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::filterByExclusionAreas </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a544c9d0e7cdf70ddcebeaa82f21a22b6">TListExclusionAreasWithRanges</a> &amp;&#160;</td>
          <td class="paramname"><em>areas</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mark as invalid sensed points that fall within any of a set of "exclusion areas", given in coordinates relative to the vehicle (taking into account "sensorPose"), AND such as the Z coordinate of the point falls in the range [min,max] associated to each exclusion polygon. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>C2DRangeFinderAbstract::loadExclusionAreas </dd></dl>

</div>
</div>
<a class="anchor" id="a3808a7892632a0b03daad8e419273724"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::getAuxPointsMap" ref="a3808a7892632a0b03daad8e419273724" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class POINTSMAP &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const POINTSMAP* mrpt::slam::CObservation2DRangeScan::getAuxPointsMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the cached points map representation of the scan, if already build with <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>, or NULL otherwise. </p>
<p>Usage: </p>
<div class="fragment"><pre class="fragment">    mrpt::slam::CPointsMap *map = obs-&gt;getAuxPointsMap&lt;mrpt::slam::CPointsMap&gt;();
</pre></div> <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#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a4938064252f559a3a47380d14741b6a8"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::GetRuntimeClass" ref="a4938064252f559a3a47380d14741b6a8" 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::CObservation2DRangeScan::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_observation.html#aac55c508d4de5468661de4c19424f124">mrpt::slam::CObservation</a>.</p>

</div>
</div>
<a class="anchor" id="a3621a8843af0045999ebce2d227accf9"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::getScanProperties" ref="a3621a8843af0045999ebce2d227accf9" args="(T2DScanProperties &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::getScanProperties </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_t2_d_scan_properties.html">T2DScanProperties</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fill out a <a class="el" href="structmrpt_1_1slam_1_1_t2_d_scan_properties.html" title="Auxiliary struct that holds all the relevant *geometry* information about a 2D scan.">T2DScanProperties</a> structure with the parameters of this scan. </p>

</div>
</div>
<a class="anchor" id="ac795d3df57b998131638f5ead0c1f337"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::getSensorPose" ref="ac795d3df57b998131638f5ead0c1f337" args="(mrpt::math::TPose3D &amp;out_sensorPose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation::getSensorPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">mrpt::math::TPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>out_sensorPose</em></td><td>)</td>
          <td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A general method to retrieve the sensor pose on the robot. </p>
<p>Note that most sensors will return a full (6D) CPose3D, but see the derived classes for more details or special cases. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a5bec6a228248534c4da9a2ccf5bbe891" title="A general method to change the sensor pose on the robot.">setSensorPose</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afc2d42de54c932681d12d4df215b9bbf"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::getSensorPose" ref="afc2d42de54c932681d12d4df215b9bbf" args="(CPose3D &amp;out_sensorPose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::getSensorPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>out_sensorPose</em></td><td>)</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A general method to retrieve the sensor pose on the robot. </p>
<p>Note that most sensors will return a full (6D) CPose3D, but see the derived classes for more details or special cases. </p>
<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#acd2e8d929df8608f32d8fb9d2fafeee4" title="A general method to change the sensor pose on the robot.">setSensorPose</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a518c117b06a29cc82820996ff9a04b85">mrpt::slam::CObservation</a>.</p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00186">186</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4dadc9d2618ea3701084e8cce4671564"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::insertObservationInto" ref="a4dadc9d2618ea3701084e8cce4671564" args="(METRICMAP *theMap, const CPose3D *robotPose=NULL) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class METRICMAP &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CObservation::insertObservationInto </td>
          <td>(</td>
          <td class="paramtype">METRICMAP *&#160;</td>
          <td class="paramname"><em>theMap</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> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method is equivalent to: </p>
<div class="fragment"><pre class="fragment">                map-&gt;<a class="code" href="classmrpt_1_1slam_1_1_c_metric_map.html#ad1d3f22228d6dbdb3c31c132713bf782" title="Insert the observation information into this map.">insertObservation</a>(<span class="keyword">this</span>, robotPose)
</pre></div> <dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">theMap</td><td>The map where this observation is to be inserted: the map will be updated. </td></tr>
    <tr><td class="paramname">robotPose</td><td>The pose of the robot base for this observation, relative to the target metric map. Set to NULL (default) to use (0,0,0deg)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if the map has been updated, or false if this observations has nothing to do with a metric map (for example, a sound observation).</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" title="Declares a virtual base class for all metric maps storage classes.">CMetricMap</a>, <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> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a3c967d3fc1010dd75e5d23c00e471608"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::internal_buildAuxPointsMap" ref="a3c967d3fc1010dd75e5d23c00e471608" args="(const void *options=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::internal_buildAuxPointsMap </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>options</em> = <code>NULL</code></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal method, used from <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a> </p>

</div>
</div>
<a class="anchor" id="a74404a5742cef05b70f96c67323e945c"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::isPlanarScan" ref="a74404a5742cef05b70f96c67323e945c" args="(const double tolerance=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CObservation2DRangeScan::isPlanarScan </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>tolerance</em> = <code>0</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true if the laser scanner is "horizontal", so it has an absolute value of "pitch" and "roll" less or equal to the given tolerance (in rads, default=0) (with the normal vector either upwards or downwards). </p>

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

<p>Makes sure all images and other fields which may be externally stored are loaded in memory. </p>
<p>Note that for all CImages, calling <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#ae8925420b61a2aa460886e09d123a495" title="Makes sure all images and other fields which may be externally stored are loaded in memory...">load()</a> is not required since the images will be automatically loaded upon first access, so <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#ae8925420b61a2aa460886e09d123a495" title="Makes sure all images and other fields which may be externally stored are loaded in memory...">load()</a> shouldn't be needed to be called in normal cases by the user. If all the data were alredy loaded or this object has no externally stored data fields, calling this method has no effects. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#ab0bf2ed10a730838b5357c5da0126711" title="Unload all images, for the case they being delayed-load images stored in external files (othewise...">unload</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html#a77311f96ccb874177d0f2120a3a80de8">mrpt::slam::CObservation3DRangeScan</a>.</p>

<p>Definition at line <a class="el" href="_c_observation_8h_source.html#l00159">159</a> of file <a class="el" href="_c_observation_8h_source.html">CObservation.h</a>.</p>

</div>
</div>
<a class="anchor" id="a73ba83035a64939cdc3aa1c0dfed23ec"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::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="ab79a75c6ddf65c8d99f97cbfeb38e9b8"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::setSensorPose" ref="ab79a75c6ddf65c8d99f97cbfeb38e9b8" args="(const mrpt::math::TPose3D &amp;newSensorPose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation::setSensorPose </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">mrpt::math::TPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>newSensorPose</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A general method to change the sensor pose on the robot. </p>
<p>Note that most sensors will use the full (6D) CPose3D, but see the derived classes for more details or special cases. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a518c117b06a29cc82820996ff9a04b85" title="A general method to retrieve the sensor pose on the robot.">getSensorPose</a> </dd></dl>

</div>
</div>
<a class="anchor" id="acd2e8d929df8608f32d8fb9d2fafeee4"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::setSensorPose" ref="acd2e8d929df8608f32d8fb9d2fafeee4" args="(const CPose3D &amp;newSensorPose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::setSensorPose </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>newSensorPose</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A general method to change the sensor pose on the robot. </p>
<p>Note that most sensors will use the full (6D) CPose3D, but see the derived classes for more details or special cases. </p>
<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#afc2d42de54c932681d12d4df215b9bbf" title="A general method to retrieve the sensor pose on the robot.">getSensorPose</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a5bec6a228248534c4da9a2ccf5bbe891">mrpt::slam::CObservation</a>.</p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00193">193</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

</div>
</div>
<a class="anchor" id="a34c88a99e7e81d3727701c1307dda162"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::swap" ref="a34c88a99e7e81d3727701c1307dda162" args="(CObservation &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">CObservation</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Swap with another observation, ONLY the data defined here in the base class <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html" title="Declares a class that represents any robot&#39;s observation.">CObservation</a>. It's protected since it'll be only called from child classes that should know what else to swap appart from these common data. </p>

</div>
</div>
<a class="anchor" id="a076ddb3e1ec13191d670394c24f1ec26"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::truncateByDistanceAndAngle" ref="a076ddb3e1ec13191d670394c24f1ec26" args="(float min_distance, float max_angle, float min_height=0, float max_height=0, float h=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CObservation2DRangeScan::truncateByDistanceAndAngle </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_height</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_height</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>h</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A general method to truncate the scan by defining a minimum valid distance and a maximum valid angle as well as minimun and maximum heights (NOTE: the laser z-coordinate must be provided). </p>

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

<p>Unload all images, for the case they being delayed-load images stored in external files (othewise, has no effect). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#ae8925420b61a2aa460886e09d123a495" title="Makes sure all images and other fields which may be externally stored are loaded in memory...">load</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html#a3e04ab230acfb1fe8d763b856c3d9534">mrpt::slam::CObservation3DRangeScan</a>.</p>

<p>Definition at line <a class="el" href="_c_observation_8h_source.html#l00163">163</a> of file <a class="el" href="_c_observation_8h_source.html">CObservation.h</a>.</p>

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

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

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="a3216654f8a7ca1794d07c7413543b65d"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::aperture" ref="a3216654f8a7ca1794d07c7413543b65d" 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_observation2_d_range_scan.html#a3216654f8a7ca1794d07c7413543b65d">mrpt::slam::CObservation2DRangeScan::aperture</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The aperture of the range finder, in radians (typically M_PI = 180 degrees). </p>

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

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</a>.</p>

</div>
</div>
<a class="anchor" id="acca00ddf6bfc0253aa22c346683acb9c"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::beamAperture" ref="acca00ddf6bfc0253aa22c346683acb9c" 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_observation2_d_range_scan.html#acca00ddf6bfc0253aa22c346683acb9c">mrpt::slam::CObservation2DRangeScan::beamAperture</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The aperture of each beam, in radians, used to insert "thick" rays in the occupancy grid. </p>
<p>(Added in the streamming version #4 of the class) </p>

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

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::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="ac18f1c87c3720fec30ed793f21b1dcc8"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::classCObservation" ref="ac18f1c87c3720fec30ed793f21b1dcc8" 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_observation.html#ac18f1c87c3720fec30ed793f21b1dcc8">mrpt::slam::CObservation::classCObservation</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

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

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

</div>
</div>
<a class="anchor" id="a30ade452374508635ac800c7491ac498"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::deltaPitch" ref="a30ade452374508635ac800c7491ac498" 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_observation2_d_range_scan.html#a30ade452374508635ac800c7491ac498">mrpt::slam::CObservation2DRangeScan::deltaPitch</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If the laser gathers data by sweeping in the pitch/elevation angle, this holds the increment in "pitch" (=-"elevation") between the beginning and the end of the scan (the sensorPose member stands for the pose at the beginning of the scan). </p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00127">127</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</a>.</p>

</div>
</div>
<a class="anchor" id="aea68a25900f603f63b90131b802e41b3"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::m_cachedMap" ref="aea68a25900f603f63b90131b802e41b3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_ptr.html">mrpt::slam::CMetricMapPtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aea68a25900f603f63b90131b802e41b3">mrpt::slam::CObservation2DRangeScan::m_cachedMap</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A points map, build only under demand by the methods <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#a3808a7892632a0b03daad8e419273724" title="Returns the cached points map representation of the scan, if already build with buildAuxPointsMap(), or NULL otherwise.">getAuxPointsMap()</a> and <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad10117d91cc26724f8d2908645c374a3" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>. </p>
<p>It's a generic smart pointer to avoid depending here in the library mrpt-obs on classes on other libraries. </p>

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

</div>
</div>
<a class="anchor" id="afca19481225fa9b184a7abe3e6931904"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::maxRange" ref="afca19481225fa9b184a7abe3e6931904" 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_observation2_d_range_scan.html#afca19481225fa9b184a7abe3e6931904">mrpt::slam::CObservation2DRangeScan::maxRange</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The maximum range allowed by the device, in meters (e.g. </p>
<p>80m, 50m,...) </p>

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

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</a>.</p>

</div>
</div>
<a class="anchor" id="aeee9186fdaf0eaeebb9f0ded33f22fb5"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::rightToLeft" ref="aeee9186fdaf0eaeebb9f0ded33f22fb5" 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_observation2_d_range_scan.html#aeee9186fdaf0eaeebb9f0ded33f22fb5">mrpt::slam::CObservation2DRangeScan::rightToLeft</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The scanning direction. </p>

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

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</a>.</p>

</div>
</div>
<a class="anchor" id="aebc4a2fe346e299e632c732312b834e9"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::scan" ref="aebc4a2fe346e299e632c732312b834e9" 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_observation2_d_range_scan.html#aebc4a2fe346e299e632c732312b834e9">mrpt::slam::CObservation2DRangeScan::scan</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The range values of the scan, in meters. </p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00093">93</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</a>.</p>

</div>
</div>
<a class="anchor" id="a7d451b2c59c2722f512227318df62579"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::sensorLabel" ref="a7d451b2c59c2722f512227318df62579" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a7d451b2c59c2722f512227318df62579">mrpt::slam::CObservation::sensorLabel</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An arbitrary label that can be used to identify the sensor. </p>

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

</div>
</div>
<a class="anchor" id="aaacc571bf0d8bf9d2c5b8739c7e6857b"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::sensorPose" ref="aaacc571bf0d8bf9d2c5b8739c7e6857b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#aaacc571bf0d8bf9d2c5b8739c7e6857b">mrpt::slam::CObservation2DRangeScan::sensorPose</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The 6D pose of the sensor on the robot. </p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00114">114</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</a>.</p>

</div>
</div>
<a class="anchor" id="aef254fa9ce154e6a8c290c8d75deed07"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::stdError" ref="aef254fa9ce154e6a8c290c8d75deed07" 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_observation2_d_range_scan.html#aef254fa9ce154e6a8c290c8d75deed07">mrpt::slam::CObservation2DRangeScan::stdError</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The "sigma" error of the device in meters, used while inserting the scan in an occupancy grid. </p>

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

</div>
</div>
<a class="anchor" id="ade9177f41827da9121847104e5b0ecd2"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::timestamp" ref="ade9177f41827da9121847104e5b0ecd2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#ade9177f41827da9121847104e5b0ecd2">mrpt::slam::CObservation::timestamp</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The associated time-stamp. </p>

<p>Definition at line <a class="el" href="_c_observation_8h_source.html#l00096">96</a> of file <a class="el" href="_c_observation_8h_source.html">CObservation.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad75c2af475ada6103503511e90b965b7"></a><!-- doxytag: member="mrpt::slam::CObservation2DRangeScan::validRange" ref="ad75c2af475ada6103503511e90b965b7" 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;char&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_observation2_d_range_scan.html#ad75c2af475ada6103503511e90b965b7">mrpt::slam::CObservation2DRangeScan::validRange</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>It's false (=0) on no reflected rays, referenced to elements in "scan" (Added in the streamming version #1 of the class) </p>

<p>Definition at line <a class="el" href="_c_observation2_d_range_scan_8h_source.html#l00098">98</a> of file <a class="el" href="_c_observation2_d_range_scan_8h_source.html">CObservation2DRangeScan.h</a>.</p>

<p>Referenced by <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00395">mrpt::opengl::CAngularObservationMesh::FTrace2D::operator()()</a>, and <a class="el" href="_c_angular_observation_mesh_8h_source.html#l00438">mrpt::opengl::CAngularObservationMesh::trace1DSetOfRays()</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>