Sophie

Sophie

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

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::CSensoryFrame 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_sensory_frame.html">CSensoryFrame</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> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::slam::CSensoryFrame 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::CSensoryFrame" --><!-- doxytag: inherits="mrpt::utils::CSerializable" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximately at the same time as one "snapshot" of the environment. </p>
<p>It can contain "observations" of many different kinds.</p>
<p>New observations can be added using:</p>
<div class="fragment"><pre class="fragment"> CObservationXXXPtr     o = <a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0d6cd0e775b23427ad9168f672df83f7">CObservationXXX::Create</a>();  <span class="comment">// Create a smart pointer containing an object of class &quot;CObservationXXX&quot;</span>
 o-&gt;(...)

 <a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0832937cc183eb83900cbcca20aed3a4" title="Default constructor.">CSensoryFrame</a>   sf;
 sf.insert(o);
</pre></div><p>The following methods are equivalent for adding new observations to a "sensory frame":</p>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a6dfe49e3d2ac1300f34a0dfef5e9fdf7" title="You can use &quot;sf1+=sf2;&quot; to add observations in sf2 to sf1.">CSensoryFrame::operator +=</a></li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a26940b0429e5ee2f68af5b0ae7924a20" title="Inserts a new observation to the list: The pointer to the objects is copied, thus DO NOT delete the p...">CSensoryFrame::push_back</a></li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#abd504154e1d8c1830b2b8b88d8e97647" title="Inserts a new observation to the list: The pointer to the objects is copied, thus DO NOT delete the p...">CSensoryFrame::insert</a></li>
</ul>
<p>To examine the objects within a sensory frame, the following methods exist:</p>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a96599e2c0b05404612fb54ebf833a45d" title="Returns the i&#39;th observation of a given class (or of a descendant class), or NULL if there is no such...">CSensoryFrame::getObservationByClass</a> : Looks for some specific observation class.</li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">CSensoryFrame::begin</a> : To iterate over all observations.</li>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a30b98c5e73945f19eff29487706bb3d2" title="Returns the i&#39;th observation in the list (0=first).">CSensoryFrame::getObservationByIndex</a> : To query by index.</li>
</ul>
<p>Notice that contained observations objects are automatically deleted on this object's destruction or clear. </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> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_sensory_frame_8h_source.html">mrpt/slam/CSensoryFrame.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CSensoryFrame:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_sensory_frame__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_sensory_frame_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_sensory_frame_inherit__map" id="mrpt_1_1slam_1_1_c_sensory_frame_inherit__map">
<area shape="rect" id="node2" 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="16,80,180,107"/><area shape="rect" id="node4" 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="31,5,165,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_sensory_frame-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_1deque.html">std::deque</a><br class="typebreak"/>
&lt; <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &gt;::<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">You can use <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">CSensoryFrame::begin</a> to get a iterator to the first element.  <a href="#af7d697600b911c2885e29b657727b39b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a><br class="typebreak"/>
&lt; <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &gt;<br class="typebreak"/>
::<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a59fdf5b3cd0eb9bdeef4344cfac3b2e6">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a59fdf5b3cd0eb9bdeef4344cfac3b2e6">const_iterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">You can use <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">CSensoryFrame::begin</a> to get a iterator to the first element.  <a href="#a59fdf5b3cd0eb9bdeef4344cfac3b2e6"></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_sensory_frame.html#a0832937cc183eb83900cbcca20aed3a4">CSensoryFrame</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a0832937cc183eb83900cbcca20aed3a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#ad288b709be9f2c81a15ef1c8145f4122">CSensoryFrame</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#ad288b709be9f2c81a15ef1c8145f4122"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a9d45b80fd7f911f7ee3f8fed5ba725d2">operator=</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy.  <a href="#a9d45b80fd7f911f7ee3f8fed5ba725d2"></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_sensory_frame.html#a401d47a8bff8809a42f6f84874ac8013">~CSensoryFrame</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a401d47a8bff8809a42f6f84874ac8013"></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_sensory_frame.html#acf6a4a583f1795066776566e958f47b4">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all current observations.  <a href="#acf6a4a583f1795066776566e958f47b4"></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_sensory_frame.html#a9362ecceb6ac03adcb987c8a7a328685">insertObservationsInto</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">mrpt::slam::CMetricMap</a> *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">Insert all the observations in this SF into a metric map or any kind (see <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.">mrpt::slam::CMetricMap</a>).  <a href="#a9362ecceb6ac03adcb987c8a7a328685"></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_sensory_frame.html#aaf0c0d9da5fe5e39c824b20ec2296c73">insertObservationsInto</a> (<a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_ptr.html">mrpt::slam::CMetricMapPtr</a> &amp;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">Insert all the observations in this SF into a metric map or any kind (see <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.">mrpt::slam::CMetricMap</a>).  <a href="#aaf0c0d9da5fe5e39c824b20ec2296c73"></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_sensory_frame.html#a6dfe49e3d2ac1300f34a0dfef5e9fdf7">operator+=</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">You can use "sf1+=sf2;" to add observations in sf2 to sf1.  <a href="#a6dfe49e3d2ac1300f34a0dfef5e9fdf7"></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_sensory_frame.html#a18efd876eef0c15f5017a010ed0d20df">operator+=</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;obs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">You can use "sf+=obs;" to add the observation "obs" to the "sf1".  <a href="#a18efd876eef0c15f5017a010ed0d20df"></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_sensory_frame.html#a396ca9079426a8253796a4028e3b6391">moveFrom</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies all the observation from another object, then erase them from the origin object (this method is fast since only pointers are copied); Previous objects in this objects are not deleted.  <a href="#a396ca9079426a8253796a4028e3b6391"></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_sensory_frame.html#a26940b0429e5ee2f68af5b0ae7924a20">push_back</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;obs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a new observation to the list: The pointer to the objects is copied, thus DO NOT delete the passed object, this class will do at destructor or when appropriate.  <a href="#a26940b0429e5ee2f68af5b0ae7924a20"></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_sensory_frame.html#abd504154e1d8c1830b2b8b88d8e97647">insert</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;obs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a new observation to the list: The pointer to the objects is copied, thus DO NOT delete the passed object, this class will do at destructor or when appropriate.  <a href="#abd504154e1d8c1830b2b8b88d8e97647"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">T::SmartPtr&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a96599e2c0b05404612fb54ebf833a45d">getObservationByClass</a> (const size_t &amp;ith=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th observation of a given class (or of a descendant class), or NULL if there is no such observation in the array.  <a href="#a96599e2c0b05404612fb54ebf833a45d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a59fdf5b3cd0eb9bdeef4344cfac3b2e6">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a">begin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a iterator to the first observation: this is an example of usage:  <a href="#aa6b2cf1b2f99ad2b837ebb4da4f89c6a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a59fdf5b3cd0eb9bdeef4344cfac3b2e6">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#ad3c27d167cd0aa30d758e5cab1ce3aa9">end</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a iterator to the end of the list of observations: this is an example of usage:  <a href="#ad3c27d167cd0aa30d758e5cab1ce3aa9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa0f4e3ee1cec6211ac77e0a1978c4dbc">begin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a iterator to the first observation: this is an example of usage:  <a href="#aa0f4e3ee1cec6211ac77e0a1978c4dbc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a3085c2ffa66a84e3b722582fa3bfa2b7">end</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a iterator to the end of the list of observations: this is an example of usage:  <a href="#a3085c2ffa66a84e3b722582fa3bfa2b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a45c0aec3be92d5f596475e41365f7cad">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of observations in the list.  <a href="#a45c0aec3be92d5f596475e41365f7cad"></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_sensory_frame.html#adf9636e5ae90ecca2a52dc06381b604f">empty</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if there are no observations in the list.  <a href="#adf9636e5ae90ecca2a52dc06381b604f"></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_sensory_frame.html#a70e5ea2a680863d9eb751bacff300d9e">eraseByIndex</a> (const size_t &amp;idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the i'th observation in the list (0=first).  <a href="#a70e5ea2a680863d9eb751bacff300d9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a5ad2192e4eb2967e73d57719256ad17b">erase</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a> &amp;it)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given observation in the list, and return an iterator to the next element (or this-&gt;<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a3085c2ffa66a84e3b722582fa3bfa2b7" title="Returns a iterator to the end of the list of observations: this is an example of usage:">end()</a> if it was the last one).  <a href="#a5ad2192e4eb2967e73d57719256ad17b"></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_sensory_frame.html#adec7f50aff1099e5cfe045a562a79ddc">eraseByLabel</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;label)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all the observations that match a given sensorLabel.  <a href="#adec7f50aff1099e5cfe045a562a79ddc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a30b98c5e73945f19eff29487706bb3d2">getObservationByIndex</a> (const size_t &amp;idx) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th observation in the list (0=first).  <a href="#a30b98c5e73945f19eff29487706bb3d2"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#ab70a8af37d468e680d63d125aff4f136">getObservationByIndexAs</a> (const size_t &amp;idx) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th observation in the list (0=first), and as a different smart pointer type:  <a href="#ab70a8af37d468e680d63d125aff4f136"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a47c2834184cbaef5bcd9db13f7334a01">getObservationBySensorLabel</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;label, const size_t &amp;idx=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th observation in the list with the given "sensorLabel" (0=first).  <a href="#a47c2834184cbaef5bcd9db13f7334a01"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a87e8bbb5d26b6c0d71e0851253d174ce">getObservationBySensorLabelAs</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;label, const size_t &amp;idx=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th observation in the list with the given "sensorLabel" (0=first), and as a different smart pointer type:  <a href="#a87e8bbb5d26b6c0d71e0851253d174ce"></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_sensory_frame.html#a361016ee733a1229ef932554c3461066">swap</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Efficiently swaps the contents of two objects.  <a href="#a361016ee733a1229ef932554c3461066"></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"><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"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_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="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1deque.html">std::deque</a>&lt; <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a53bdd8ac1ba1dc288a9e27c0b8f17707">m_observations</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The set of observations taken at the same time instant.  <a href="#a53bdd8ac1ba1dc288a9e27c0b8f17707"></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_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</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_1utils_1_1_c_serializable.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_sensory_frame_ptr.html">CSensoryFramePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a8f12a010ccdbd4e0efc16dfc349bc611">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_sensory_frame.html#a7e0f8dba6edccb69bbe3fee4f82d29c9">_init_CSensoryFrame</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_sensory_frame.html#a672b4d3e6dab3ac640e9c0458d92b652">classCSensoryFrame</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_sensory_frame.html#a84e06ffe61d1dfb3237260b341900ee5">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_sensory_frame.html#ac5321940e3df694a98d3df7f23ae059e">_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_sensory_frame.html#af1f99bc845bb4ed1e65c845fcc314e15">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="#af1f99bc845bb4ed1e65c845fcc314e15"></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_sensory_frame.html#a42ae7a4409660ed30a889f4d293c7cbb">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="#a42ae7a4409660ed30a889f4d293c7cbb"></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_sensory_frame.html#acf30c9cd303d0d033b028d58ae4c5764">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_sensory_frame_ptr.html">CSensoryFramePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0d6cd0e775b23427ad9168f672df83f7">Create</a> ()</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_sensory_frame.html#a80618ebd77c11514cfd902bb0d750ccd">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_sensory_frame.html#a7817fa9811ca0b1222b76b31bfa30280" 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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>.  <a href="#a80618ebd77c11514cfd902bb0d750ccd"></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_sensory_frame.html#a7817fa9811ca0b1222b76b31bfa30280">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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>, or NULL otherwise.  <a href="#a7817fa9811ca0b1222b76b31bfa30280"></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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485">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="#a2cc4649d69daa728393332b9ad8fa485"></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_sensory_frame.html#a3363ead32a1dbbb76615818e03eac1a8">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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" title="Returns a cached points map representing this laser scan, building it upon the first call...">buildAuxPointsMap()</a>  <a href="#a3363ead32a1dbbb76615818e03eac1a8"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a59fdf5b3cd0eb9bdeef4344cfac3b2e6"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::const_iterator" ref="a59fdf5b3cd0eb9bdeef4344cfac3b2e6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1deque.html">std::deque</a>&lt;<a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a>&gt;::<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a59fdf5b3cd0eb9bdeef4344cfac3b2e6">const_iterator</a> <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a59fdf5b3cd0eb9bdeef4344cfac3b2e6">mrpt::slam::CSensoryFrame::const_iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>You can use <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">CSensoryFrame::begin</a> to get a iterator to the first element. </p>

<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00218">218</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

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

<p>You can use <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">CSensoryFrame::begin</a> to get a iterator to the first element. </p>

<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00214">214</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8f12a010ccdbd4e0efc16dfc349bc611"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::SmartPtr" ref="a8f12a010ccdbd4e0efc16dfc349bc611" 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_sensory_frame_ptr.html">CSensoryFramePtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a8f12a010ccdbd4e0efc16dfc349bc611">mrpt::slam::CSensoryFrame::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_sensory_frame_8h_source.html#l00076">76</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a0832937cc183eb83900cbcca20aed3a4"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::CSensoryFrame" ref="a0832937cc183eb83900cbcca20aed3a4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CSensoryFrame::CSensoryFrame </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="ad288b709be9f2c81a15ef1c8145f4122"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::CSensoryFrame" ref="ad288b709be9f2c81a15ef1c8145f4122" args="(const CSensoryFrame &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CSensoryFrame::CSensoryFrame </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>

</div>
</div>
<a class="anchor" id="a401d47a8bff8809a42f6f84874ac8013"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::~CSensoryFrame" ref="a401d47a8bff8809a42f6f84874ac8013" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::slam::CSensoryFrame::~CSensoryFrame </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="ac5321940e3df694a98d3df7f23ae059e"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::_GetBaseClass" ref="ac5321940e3df694a98d3df7f23ae059e" 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::CSensoryFrame::_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_1utils_1_1_c_serializable.html#a471a2d4e8bf14cdc749d43ffb8066a12">mrpt::utils::CSerializable</a>.</p>

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

<p>Returns a iterator to the first observation: this is an example of usage: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0832937cc183eb83900cbcca20aed3a4" title="Default constructor.">CSensoryFrame</a>  sf;
   ...
   <span class="keywordflow">for</span> (<a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b" title="You can use CSensoryFrame::begin to get a iterator to the first element.">CSensoryFrame::iterator</a> it=sf.begin();it!=sf.end();++it)
          {
      (*it)-&gt;... <span class="comment">// (*it) is a &quot;CObservation*&quot;</span>
   }
</pre></div> 
<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00231">231</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

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

<p>Returns a iterator to the first observation: this is an example of usage: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0832937cc183eb83900cbcca20aed3a4" title="Default constructor.">CSensoryFrame</a>  sf;
   ...
   <span class="keywordflow">for</span> (<a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b" title="You can use CSensoryFrame::begin to get a iterator to the first element.">CSensoryFrame::iterator</a> it=sf.begin();it!=sf.end();++it)
          {
      (*it)-&gt;... <span class="comment">// (*it) is a &quot;CObservation*&quot;</span>
   }
</pre></div> 
<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00257">257</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2cc4649d69daa728393332b9ad8fa485"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::buildAuxPointsMap" ref="a2cc4649d69daa728393332b9ad8fa485" 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::CSensoryFrame::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 = sf-&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_sensory_frame.html#a7817fa9811ca0b1222b76b31bfa30280" 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_sensory_frame_8h_source.html#l00120">120</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="acf6a4a583f1795066776566e958f47b4"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::clear" ref="acf6a4a583f1795066776566e958f47b4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CSensoryFrame::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear all current observations. </p>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::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="a0d6cd0e775b23427ad9168f672df83f7"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::Create" ref="a0d6cd0e775b23427ad9168f672df83f7" 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_sensory_frame_ptr.html">CSensoryFramePtr</a> mrpt::slam::CSensoryFrame::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="acf30c9cd303d0d033b028d58ae4c5764"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::CreateObject" ref="acf30c9cd303d0d033b028d58ae4c5764" 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::CSensoryFrame::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="a42ae7a4409660ed30a889f4d293c7cbb"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::duplicate" ref="a42ae7a4409660ed30a889f4d293c7cbb" 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::CSensoryFrame::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::CSensoryFrame::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="adf9636e5ae90ecca2a52dc06381b604f"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::empty" ref="adf9636e5ae90ecca2a52dc06381b604f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CSensoryFrame::empty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if there are no observations in the list. </p>

<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00277">277</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

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

<p>Returns a iterator to the end of the list of observations: this is an example of usage: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0832937cc183eb83900cbcca20aed3a4" title="Default constructor.">CSensoryFrame</a>  sf;
   ...
   <span class="keywordflow">for</span> (<a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b" title="You can use CSensoryFrame::begin to get a iterator to the first element.">CSensoryFrame::iterator</a> it=sf.begin();it!=sf.end();++it)
          {
      (*it)-&gt;... <span class="comment">// (*it) is a &quot;CObservation*&quot;</span>
   }
</pre></div> 
<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00244">244</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

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

<p>Returns a iterator to the end of the list of observations: this is an example of usage: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a0832937cc183eb83900cbcca20aed3a4" title="Default constructor.">CSensoryFrame</a>  sf;
   ...
   <span class="keywordflow">for</span> (<a class="code" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b" title="You can use CSensoryFrame::begin to get a iterator to the first element.">CSensoryFrame::iterator</a> it=sf.begin();it!=sf.end();++it)
          {
      (*it)-&gt;... <span class="comment">// (*it) is a &quot;CObservation*&quot;</span>
   }
</pre></div> 
<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00270">270</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5ad2192e4eb2967e73d57719256ad17b"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::erase" ref="a5ad2192e4eb2967e73d57719256ad17b" args="(const iterator &amp;it)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a> mrpt::slam::CSensoryFrame::erase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#af7d697600b911c2885e29b657727b39b">iterator</a> &amp;&#160;</td>
          <td class="paramname"><em>it</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes the given observation in the list, and return an iterator to the next element (or this-&gt;<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a3085c2ffa66a84e3b722582fa3bfa2b7" title="Returns a iterator to the end of the list of observations: this is an example of usage:">end()</a> if it was the last one). </p>

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

<p>Removes the i'th observation in the list (0=first). </p>

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

<p>Removes all the observations that match a given sensorLabel. </p>

</div>
</div>
<a class="anchor" id="a7817fa9811ca0b1222b76b31bfa30280"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::getAuxPointsMap" ref="a7817fa9811ca0b1222b76b31bfa30280" 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::CSensoryFrame::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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" 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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" 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_sensory_frame_8h_source.html#l00107">107</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a96599e2c0b05404612fb54ebf833a45d"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::getObservationByClass" ref="a96599e2c0b05404612fb54ebf833a45d" args="(const size_t &amp;ith=0) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T::SmartPtr mrpt::slam::CSensoryFrame::getObservationByClass </td>
          <td>(</td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"><em>ith</em> = <code>0</code></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th observation of a given class (or of a descendant class), or NULL if there is no such observation in the array. </p>
<p>Example: </p>
<div class="fragment"><pre class="fragment">                                        CObservationImagePtr obs = m_SF-&gt;getObservationByClass&lt;CObservationImage&gt;();
</pre></div><p> By default (ith=0), the first observation is returned. </p>

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

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="eigen__plugins_8h_source.html#l00046">begin()</a>, <a class="el" href="eigen__plugins_8h_source.html#l00047">end()</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a30b98c5e73945f19eff29487706bb3d2"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::getObservationByIndex" ref="a30b98c5e73945f19eff29487706bb3d2" args="(const size_t &amp;idx) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> mrpt::slam::CSensoryFrame::getObservationByIndex </td>
          <td>(</td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th observation in the list (0=first). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">begin</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a45c0aec3be92d5f596475e41365f7cad" title="Returns the number of observations in the list.">size</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab70a8af37d468e680d63d125aff4f136"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::getObservationByIndexAs" ref="ab70a8af37d468e680d63d125aff4f136" args="(const size_t &amp;idx) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T mrpt::slam::CSensoryFrame::getObservationByIndexAs </td>
          <td>(</td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th observation in the list (0=first), and as a different smart pointer type: </p>
<div class="fragment"><pre class="fragment">   sf.getObservationByIndexAs&lt;CObservationStereoImagesPtr&gt;(i);
</pre></div> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">begin</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a45c0aec3be92d5f596475e41365f7cad" title="Returns the number of observations in the list.">size</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00302">302</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a47c2834184cbaef5bcd9db13f7334a01"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::getObservationBySensorLabel" ref="a47c2834184cbaef5bcd9db13f7334a01" args="(const std::string &amp;label, const size_t &amp;idx=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> mrpt::slam::CSensoryFrame::getObservationBySensorLabel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>label</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"><em>idx</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th observation in the list with the given "sensorLabel" (0=first). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The observation, or NULL if not found. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">begin</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a45c0aec3be92d5f596475e41365f7cad" title="Returns the number of observations in the list.">size</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a87e8bbb5d26b6c0d71e0851253d174ce"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::getObservationBySensorLabelAs" ref="a87e8bbb5d26b6c0d71e0851253d174ce" args="(const std::string &amp;label, const size_t &amp;idx=0) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T mrpt::slam::CSensoryFrame::getObservationBySensorLabelAs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>label</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"><em>idx</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th observation in the list with the given "sensorLabel" (0=first), and as a different smart pointer type: </p>
<div class="fragment"><pre class="fragment">   sf.getObservationBySensorLabelAs&lt;CObservationStereoImagesPtr&gt;(i);
</pre></div> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#aa6b2cf1b2f99ad2b837ebb4da4f89c6a" title="Returns a iterator to the first observation: this is an example of usage:">begin</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a45c0aec3be92d5f596475e41365f7cad" title="Returns the number of observations in the list.">size</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00320">320</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="af1f99bc845bb4ed1e65c845fcc314e15"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::GetRuntimeClass" ref="af1f99bc845bb4ed1e65c845fcc314e15" 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::CSensoryFrame::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_1utils_1_1_c_serializable.html#a6861b16159daafd1651d6e0d27f39c58">mrpt::utils::CSerializable</a>.</p>

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

<p>Inserts a new observation to the list: The pointer to the objects is copied, thus DO NOT delete the passed object, this class will do at destructor or when appropriate. </p>

</div>
</div>
<a class="anchor" id="a9362ecceb6ac03adcb987c8a7a328685"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::insertObservationsInto" ref="a9362ecceb6ac03adcb987c8a7a328685" args="(mrpt::slam::CMetricMap *theMap, const CPose3D *robotPose=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CSensoryFrame::insertObservationsInto </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html">mrpt::slam::CMetricMap</a> *&#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</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert all the observations in this SF into a metric map or any kind (see <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.">mrpt::slam::CMetricMap</a>). </p>
<p>It calls <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</a> for all stored observation. </p>
<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.">mrpt::slam::CMetricMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</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>

</div>
</div>
<a class="anchor" id="aaf0c0d9da5fe5e39c824b20ec2296c73"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::insertObservationsInto" ref="aaf0c0d9da5fe5e39c824b20ec2296c73" args="(mrpt::slam::CMetricMapPtr &amp;theMap, const CPose3D *robotPose=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::CSensoryFrame::insertObservationsInto </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_ptr.html">mrpt::slam::CMetricMapPtr</a> &amp;&#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]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert all the observations in this SF into a metric map or any kind (see <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.">mrpt::slam::CMetricMap</a>). </p>
<p>It calls <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</a> for all stored observation. </p>
<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.">mrpt::slam::CMetricMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a4dadc9d2618ea3701084e8cce4671564" title="This method is equivalent to:">CObservation::insertObservationInto</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_sensory_frame_8h_source.html#l00162">162</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

<p>References <a class="el" href="_c_metric_map_8h_source.html#l00057">mrpt::slam::CMetricMapPtr::pointer()</a>.</p>

</div>
</div>
<a class="anchor" id="a3363ead32a1dbbb76615818e03eac1a8"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::internal_buildAuxPointsMap" ref="a3363ead32a1dbbb76615818e03eac1a8" args="(const void *options=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CSensoryFrame::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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" 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="a396ca9079426a8253796a4028e3b6391"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::moveFrom" ref="a396ca9079426a8253796a4028e3b6391" args="(CSensoryFrame &amp;sf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CSensoryFrame::moveFrom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies all the observation from another object, then erase them from the origin object (this method is fast since only pointers are copied); Previous objects in this objects are not deleted. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>operator += </dd></dl>

</div>
</div>
<a class="anchor" id="a6dfe49e3d2ac1300f34a0dfef5e9fdf7"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::operator+=" ref="a6dfe49e3d2ac1300f34a0dfef5e9fdf7" args="(const CSensoryFrame &amp;sf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CSensoryFrame::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>You can use "sf1+=sf2;" to add observations in sf2 to sf1. </p>
<p>Objects are copied, not referenced, thus the source can be safely deleted next. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a396ca9079426a8253796a4028e3b6391" title="Copies all the observation from another object, then erase them from the origin object (this method i...">moveFrom</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a18efd876eef0c15f5017a010ed0d20df"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::operator+=" ref="a18efd876eef0c15f5017a010ed0d20df" args="(const CObservationPtr &amp;obs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CSensoryFrame::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>obs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>You can use "sf+=obs;" to add the observation "obs" to the "sf1". </p>
<p>Objects are copied, using the smart pointer, thus the original pointer can be safely deleted next. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a396ca9079426a8253796a4028e3b6391" title="Copies all the observation from another object, then erase them from the origin object (this method i...">moveFrom</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9d45b80fd7f911f7ee3f8fed5ba725d2"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::operator=" ref="a9d45b80fd7f911f7ee3f8fed5ba725d2" args="(const CSensoryFrame &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a>&amp; mrpt::slam::CSensoryFrame::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy. </p>

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

<p>Inserts a new observation to the list: The pointer to the objects is copied, thus DO NOT delete the passed object, this class will do at destructor or when appropriate. </p>

</div>
</div>
<a class="anchor" id="a73ba83035a64939cdc3aa1c0dfed23ec"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::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="a45c0aec3be92d5f596475e41365f7cad"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::size" ref="a45c0aec3be92d5f596475e41365f7cad" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::slam::CSensoryFrame::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of observations in the list. </p>

<p>Definition at line <a class="el" href="_c_sensory_frame_8h_source.html#l00274">274</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a361016ee733a1229ef932554c3461066"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::swap" ref="a361016ee733a1229ef932554c3461066" args="(CSensoryFrame &amp;sf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CSensoryFrame::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Efficiently swaps the contents of two objects. </p>

</div>
</div>
<a class="anchor" id="a0b6b801e67bca3d8e0d355e7035f8013"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::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::CSensoryFrame::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 in <a class="el" href="classmrpt_1_1slam_1_1_c_random_field_grid_map2_d.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CRandomFieldGridMap2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CObservation</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CMetricMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::opengl::CRenderizable</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_quat_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPose3DQuatPDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPointPDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPose3DPDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPosePDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPoint2DPDF</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable_display_list.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::opengl::CRenderizableDisplayList</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CAction</a>, <a class="el" href="classmrpt_1_1detectors_1_1_c_detectable_object.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::detectors::CDetectableObject</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_textured_object.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::opengl::CTexturedObject</a>, and <a class="el" href="classmrpt_1_1reactivenav_1_1_c_holonomic_log_file_record.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::reactivenav::CHolonomicLogFileRecord</a>.</p>

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

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

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::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="a672b4d3e6dab3ac640e9c0458d92b652"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::classCSensoryFrame" ref="a672b4d3e6dab3ac640e9c0458d92b652" 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_sensory_frame.html#a672b4d3e6dab3ac640e9c0458d92b652">mrpt::slam::CSensoryFrame::classCSensoryFrame</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="a80618ebd77c11514cfd902bb0d750ccd"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::m_cachedMap" ref="a80618ebd77c11514cfd902bb0d750ccd" 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_sensory_frame.html#a80618ebd77c11514cfd902bb0d750ccd">mrpt::slam::CSensoryFrame::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_sensory_frame.html#a7817fa9811ca0b1222b76b31bfa30280" 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_sensory_frame.html#a2cc4649d69daa728393332b9ad8fa485" 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_sensory_frame_8h_source.html#l00093">93</a> of file <a class="el" href="_c_sensory_frame_8h_source.html">CSensoryFrame.h</a>.</p>

</div>
</div>
<a class="anchor" id="a53bdd8ac1ba1dc288a9e27c0b8f17707"></a><!-- doxytag: member="mrpt::slam::CSensoryFrame::m_observations" ref="a53bdd8ac1ba1dc288a9e27c0b8f17707" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1deque.html">std::deque</a>&lt;<a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">CObservationPtr</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html#a53bdd8ac1ba1dc288a9e27c0b8f17707">mrpt::slam::CSensoryFrame::m_observations</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The set of observations taken at the same time instant. </p>
<p>See the top of this page for instructions on accessing this. </p>

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

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