Sophie

Sophie

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

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::poses::CPose3DInterpolator 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_1poses.html">poses</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html">CPose3DInterpolator</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="#pri-types">Private Types</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::poses::CPose3DInterpolator Class Reference<div class="ingroups"><a class="el" href="group__interpolation__grp.html">Interpolation, least-squares fit, splines</a> &#124; <a class="el" href="group__poses__grp.html">2D/3D points and poses</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::poses::CPose3DInterpolator" --><!-- doxytag: inherits="mrpt::utils::CSerializable" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A trajectory in time and in 6D (<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html" title="A class used to store a 3D pose (a 3D translation + a rotation in 3D).">CPose3D</a>) that interpolates using splines the intervals between a set of given time-referenced poses. </p>
<p>To insert new points into the sequence, use the "insert" method, and for getting an interpolated point, use "interpolate" method. For example: </p>
<div class="fragment"><pre class="fragment"> <a class="code" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#abb62d58f693e1b122f050aa4183dd48f" title="Creates an empty interpolator (with no points).">CPose3DInterpolator</a>            path;

 path.setInterpolationMethod( <a class="code" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a86ccc6b8f27dcc2c56d383db4e254c00">CPose3DInterpolator::imSplineSlerp</a> );

 path.insert( t0, CPose3D(...) );
 path.insert( t1, CPose3D(...) );
 path.insert( t2, CPose3D(...) );
 path.insert( t3, CPose3D(...) );

 CPose3D p;
 <span class="keywordtype">bool</span> valid;

 cout &lt;&lt; <span class="stringliteral">&quot;Pose at t: &quot;</span> &lt;&lt; path.interpolate(<a class="code" href="eigen__plugins_8h.html#a7b88b312dc3827120dbfc60da344625d" title="Transpose.">t</a>,p,valid) &lt;&lt; endl;
</pre></div><p>Time is represented with <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a" title="A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...">mrpt::system::TTimeStamp</a>. See <a class="el" href="namespacemrpt_1_1system.html" title="This namespace provides a OS-independent interface to many useful functions: filenames manipulation...">mrpt::system</a> for methods and utilities to manage these time references.</p>
<p>See TInterpolatorMethod for the list of interpolation methods. The default method at constructor is "imLinearSlerp".</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html" title="The base template class for 2D &amp; 3D points and poses.">CPoseOrPoint</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_pose3_d_interpolator_8h_source.html">mrpt/poses/CPose3DInterpolator.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::poses::CPose3DInterpolator:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1poses_1_1_c_pose3_d_interpolator__inherit__graph.png" border="0" usemap="#mrpt_1_1poses_1_1_c_pose3_d_interpolator_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1poses_1_1_c_pose3_d_interpolator_inherit__map" id="mrpt_1_1poses_1_1_c_pose3_d_interpolator_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="33,80,197,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="48,5,183,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator-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">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a> { <br/>
&#160;&#160;<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a340b63b49f19c72f4f35c9d9dcfa4672">imSpline</a> =  0, 
<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a14fcdfae931785af4fd2638ad0912b65">imLinear2Neig</a>, 
<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a90d6629cd5179ca20a7366bb1aac71d2">imLinear4Neig</a>, 
<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a584d09f07187a1ab0f16bb79913cdaf5">imSSLLLL</a>, 
<br/>
&#160;&#160;<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a737dfcb7039010e1811350fc9ee35812">imSSLSLL</a>, 
<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a72112a3d8de3fa9da6c2465b7293d31b">imLinearSlerp</a>, 
<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584a86ccc6b8f27dcc2c56d383db4e254c00">imSplineSlerp</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Type to select the interpolation method in <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a85f6ff0168b374d8b58f785257fa04fd" title="Change the method used to interpolate the robot path.">CPose3DInterpolator::setInterpolationMethod</a>.  <a href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="eigen__plugins_8h.html#a39c5d6430ea9395ae7ae729dd0c3f18c">TPath::iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="eigen__plugins_8h.html#a8dbda719917732693c56cee228465ed9">TPath::const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef TPath::reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a87e836023fbeb444b8cff1cf4051b34d">reverse_iterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
TPath::const_reverse_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9238fc4c1fa5931e6eae624d9ac00d58">const_reverse_iterator</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a2fd6481264cbb8f47086297392127dd7">begin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#afd7fe71ca280f2315eefeef695827a65">begin</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#ab8f7536588ae23e34397be2b8c18da64">end</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#aa2f23455e2e647b16e8cae78f2317d23">end</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a87e836023fbeb444b8cff1cf4051b34d">reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a18d252f0878f9ac1de62127e9a8e146e">rbegin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9238fc4c1fa5931e6eae624d9ac00d58">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#ad6900d006d8ab089121a8212560282c4">rbegin</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a87e836023fbeb444b8cff1cf4051b34d">reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#affcb1d45089b28d399b236032915c904">rend</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9238fc4c1fa5931e6eae624d9ac00d58">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a6810dfdabd95eff39d148d00ef562062">rend</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#aad10a00f10038d9309cddae5835c8558">lower_bound</a> (const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;t)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a68450804a7ff27a9d01b4e265c915b19">lower_bound</a> (const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;t) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a369556f43106fe2441a17b819dac6815">upper_bound</a> (const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;t)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a34051da02a401bf82b9d3a7c773812b4">upper_bound</a> (const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;t) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#aa324a25ae9c94658c75357f010aab352">erase</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a> element_to_erase)</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_1poses_1_1_c_pose3_d_interpolator.html#a66dcf3c769deb8bd13fd34a491734a01">size</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a86348b6c3294a19bcc439cee08fddf12">empty</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#abb62d58f693e1b122f050aa4183dd48f">CPose3DInterpolator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty interpolator (with no points).  <a href="#abb62d58f693e1b122f050aa4183dd48f"></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_1poses_1_1_c_pose3_d_interpolator.html#ab3454b9a00c480bf5d2aa34327114cbf">insert</a> (<a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> t, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a new pose in the sequence.  <a href="#ab3454b9a00c480bf5d2aa34327114cbf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a3a78d49e708635dccf94fc762485dc5a">interpolate</a> (<a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> t, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;out_interp, bool &amp;out_valid_interp) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pose at a given time, or interpolates using splines if there is not an exact match.  <a href="#a3a78d49e708635dccf94fc762485dc5a"></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_1poses_1_1_c_pose3_d_interpolator.html#a903746c2a03306d097956b9aee7213f2">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the current sequence of poses.  <a href="#a903746c2a03306d097956b9aee7213f2"></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_1poses_1_1_c_pose3_d_interpolator.html#a14eee4ee902ebc2ceaa130064b36338e">setMaxTimeInterpolation</a> (double time)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set value of the maximum time to consider interpolation.  <a href="#a14eee4ee902ebc2ceaa130064b36338e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a07a6aee6b0de908bbc35ba62b05e78a5">getMaxTimeInterpolation</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set value of the maximum time to consider interpolation.  <a href="#a07a6aee6b0de908bbc35ba62b05e78a5"></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_1poses_1_1_c_pose3_d_interpolator.html#a051aae098355a1bf0849ffa16a99d21a">getPreviousPoseWithMinDistance</a> (const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;t, double distance, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;out_pose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the previous <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html" title="A class used to store a 3D pose (a 3D translation + a rotation in 3D).">CPose3D</a> in the map with a minimum defined distance.  <a href="#a051aae098355a1bf0849ffa16a99d21a"></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_1poses_1_1_c_pose3_d_interpolator.html#a814ab2c4b8ef7098809df85ac7c8fac7">saveToTextFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;s) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the points in the interpolator to a text file, with this format: Each row contains these elements separated by spaces:  <a href="#a814ab2c4b8ef7098809df85ac7c8fac7"></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_1poses_1_1_c_pose3_d_interpolator.html#a02b088b6ea85953a1c0cabec702e449a">saveInterpolatedToTextFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;s, double period) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the points in the interpolator to a text file, with the same format that saveToTextFile, but interpolating the path with the given period in seconds.  <a href="#a02b088b6ea85953a1c0cabec702e449a"></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_1poses_1_1_c_pose3_d_interpolator.html#acde6bcfd2a8b454fe56db6afe78431b1">loadFromTextFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;s)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads from a text file, in the format described by saveToTextFile.  <a href="#acde6bcfd2a8b454fe56db6afe78431b1"></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_1poses_1_1_c_pose3_d_interpolator.html#a3f78440343433663ccfc7eea972db3ef">getBoundingBox</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;minCorner, <a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;maxCorner) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the bounding box in X,Y,Z of the whole vehicle path.  <a href="#a3f78440343433663ccfc7eea972db3ef"></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_1poses_1_1_c_pose3_d_interpolator.html#a1b12af0688e9444f1b172bb7ea5312ab">getBoundingBox</a> (<a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;minCorner, <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;maxCorner) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the bounding box in X,Y,Z of the whole vehicle path.  <a href="#a1b12af0688e9444f1b172bb7ea5312ab"></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_1poses_1_1_c_pose3_d_interpolator.html#a85f6ff0168b374d8b58f785257fa04fd">setInterpolationMethod</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a> method)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the method used to interpolate the robot path.  <a href="#a85f6ff0168b374d8b58f785257fa04fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#ab749beca2e64a7d9dd12b02d05a80ef2">getInterpolationMethod</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently set interpolation method.  <a href="#ab749beca2e64a7d9dd12b02d05a80ef2"></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_1poses_1_1_c_pose3_d_interpolator.html#abe3ce33153e27843a35daf2dee4b17f7">filter</a> (unsigned int component, unsigned int samples)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Filters by averaging one of the components of the <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html" title="A class used to store a 3D pose (a 3D translation + a rotation in 3D).">CPose3D</a> data within the interpolator.  <a href="#abe3ce33153e27843a35daf2dee4b17f7"></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="pri-types"></a>
Private Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1map.html">std::map</a><br class="typebreak"/>
&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <br class="typebreak"/>
<a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a559b47480ce53f911abc73b60ce67bbd">TPath</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a559b47480ce53f911abc73b60ce67bbd">TPath</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#af0cac180f1be767ab4a04faf77d18680">m_path</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sequence of poses.  <a href="#af0cac180f1be767ab4a04faf77d18680"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a6bba0d4735fc2d45d3a8f76d3bb59f4b">maxTimeInterpolation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum time considered to interpolate. If the difference between the desired timestamp where to interpolate and the next timestamp stored in the map is bigger than this value, the interpolation will not be done.  <a href="#a6bba0d4735fc2d45d3a8f76d3bb59f4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a25f2d7dc2cf49359bd8f2202af9ccd92">m_method</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_1poses_1_1_c_pose3_d_interpolator_ptr.html">CPose3DInterpolatorPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9ba723232f1b298cf6fd1a1a82e78ebc">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_1poses_1_1_c_pose3_d_interpolator.html#abdf357de73eb88e348994c7bb00e3f26">_init_CPose3DInterpolator</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_1poses_1_1_c_pose3_d_interpolator.html#af69d5dbf2c5eb95a6735b0c13509e567">classCPose3DInterpolator</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_1poses_1_1_c_pose3_d_interpolator.html#afe422a27b7d95dc2f7ad99b088fb97ab">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_1poses_1_1_c_pose3_d_interpolator.html#a3f856a997314c7241198c8577ae5b27a">_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_1poses_1_1_c_pose3_d_interpolator.html#a576476414f4d6ec8569fbb0266ab3d55">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="#a576476414f4d6ec8569fbb0266ab3d55"></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_1poses_1_1_c_pose3_d_interpolator.html#a6e0706f9975f7f26b3d8096c4b93604d">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="#a6e0706f9975f7f26b3d8096c4b93604d"></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_1poses_1_1_c_pose3_d_interpolator.html#afcc3013e917c2d74120eec5ede5eb31c">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1poses_1_1_c_pose3_d_interpolator_ptr.html">CPose3DInterpolatorPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a6981614b07d49d2ac10523a9b77e330b">Create</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_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>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a56e6af2a96e7e9162ad2de408d239446"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::const_iterator" ref="a56e6af2a96e7e9162ad2de408d239446" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="eigen__plugins_8h.html#a8dbda719917732693c56cee228465ed9">TPath::const_iterator</a> <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">mrpt::poses::CPose3DInterpolator::const_iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00082">82</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9238fc4c1fa5931e6eae624d9ac00d58"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::const_reverse_iterator" ref="a9238fc4c1fa5931e6eae624d9ac00d58" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef TPath::const_reverse_iterator <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9238fc4c1fa5931e6eae624d9ac00d58">mrpt::poses::CPose3DInterpolator::const_reverse_iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a9380569d7fb62636eba7137f2eb03b4a"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::iterator" ref="a9380569d7fb62636eba7137f2eb03b4a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="eigen__plugins_8h.html#a39c5d6430ea9395ae7ae729dd0c3f18c">TPath::iterator</a> <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">mrpt::poses::CPose3DInterpolator::iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a87e836023fbeb444b8cff1cf4051b34d"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::reverse_iterator" ref="a87e836023fbeb444b8cff1cf4051b34d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef TPath::reverse_iterator <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a87e836023fbeb444b8cff1cf4051b34d">mrpt::poses::CPose3DInterpolator::reverse_iterator</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a9ba723232f1b298cf6fd1a1a82e78ebc"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::SmartPtr" ref="a9ba723232f1b298cf6fd1a1a82e78ebc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1poses_1_1_c_pose3_d_interpolator_ptr.html">CPose3DInterpolatorPtr</a> <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9ba723232f1b298cf6fd1a1a82e78ebc">mrpt::poses::CPose3DInterpolator::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_pose3_d_interpolator_8h_source.html#l00074">74</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a559b47480ce53f911abc73b60ce67bbd"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::TPath" ref="a559b47480ce53f911abc73b60ce67bbd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1map.html">std::map</a>&lt; <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &gt; <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a559b47480ce53f911abc73b60ce67bbd">mrpt::poses::CPose3DInterpolator::TPath</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::TInterpolatorMethod" ref="a4bd1ccff3a4f0cb047f0e27f8a822584" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">mrpt::poses::CPose3DInterpolator::TInterpolatorMethod</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type to select the interpolation method in <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a85f6ff0168b374d8b58f785257fa04fd" title="Change the method used to interpolate the robot path.">CPose3DInterpolator::setInterpolationMethod</a>. </p>
<ul>
<li>imSpline: Spline interpolation using 4 points (2 before + 2 after the query point).</li>
<li>imLinear2Neig: Linear interpolation between the previous and next neightbour.</li>
<li>imLinear4Neig: Linear interpolation using the linear fit of the 4 closer points (2 before + 2 after the query point).</li>
<li>imSSLLLL : Use Spline for X and Y, and Linear Least squares for Z, yaw, pitch and roll.</li>
<li>imSSLSLL : Use Spline for X, Y and yaw, and Linear Lesat squares for Z, pitch and roll.</li>
<li>imLinearSlerp: Linear for X,Y,Z, Slerp for 3D angles.</li>
<li>imSplineSlerp: Spline for X,Y,Z, Slerp for 3D angles. </li>
</ul>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a340b63b49f19c72f4f35c9d9dcfa4672"></a><!-- doxytag: member="imSpline" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a340b63b49f19c72f4f35c9d9dcfa4672" args="" -->imSpline</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a14fcdfae931785af4fd2638ad0912b65"></a><!-- doxytag: member="imLinear2Neig" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a14fcdfae931785af4fd2638ad0912b65" args="" -->imLinear2Neig</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a90d6629cd5179ca20a7366bb1aac71d2"></a><!-- doxytag: member="imLinear4Neig" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a90d6629cd5179ca20a7366bb1aac71d2" args="" -->imLinear4Neig</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a584d09f07187a1ab0f16bb79913cdaf5"></a><!-- doxytag: member="imSSLLLL" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a584d09f07187a1ab0f16bb79913cdaf5" args="" -->imSSLLLL</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a737dfcb7039010e1811350fc9ee35812"></a><!-- doxytag: member="imSSLSLL" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a737dfcb7039010e1811350fc9ee35812" args="" -->imSSLSLL</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a72112a3d8de3fa9da6c2465b7293d31b"></a><!-- doxytag: member="imLinearSlerp" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a72112a3d8de3fa9da6c2465b7293d31b" args="" -->imLinearSlerp</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4bd1ccff3a4f0cb047f0e27f8a822584a86ccc6b8f27dcc2c56d383db4e254c00"></a><!-- doxytag: member="imSplineSlerp" ref="a4bd1ccff3a4f0cb047f0e27f8a822584a86ccc6b8f27dcc2c56d383db4e254c00" args="" -->imSplineSlerp</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00095">95</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

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

<p>Creates an empty interpolator (with no points). </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3f856a997314c7241198c8577ae5b27a"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::_GetBaseClass" ref="a3f856a997314c7241198c8577ae5b27a" 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::poses::CPose3DInterpolator::_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="a2fd6481264cbb8f47086297392127dd7"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::begin" ref="a2fd6481264cbb8f47086297392127dd7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a> mrpt::poses::CPose3DInterpolator::begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00107">107</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

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

<p>Clears the current sequence of poses. </p>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::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="a6981614b07d49d2ac10523a9b77e330b"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::Create" ref="a6981614b07d49d2ac10523a9b77e330b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1poses_1_1_c_pose3_d_interpolator_ptr.html">CPose3DInterpolatorPtr</a> mrpt::poses::CPose3DInterpolator::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="afcc3013e917c2d74120eec5ede5eb31c"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::CreateObject" ref="afcc3013e917c2d74120eec5ede5eb31c" 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::poses::CPose3DInterpolator::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="a6e0706f9975f7f26b3d8096c4b93604d"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::duplicate" ref="a6e0706f9975f7f26b3d8096c4b93604d" 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::poses::CPose3DInterpolator::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::poses::CPose3DInterpolator::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="a86348b6c3294a19bcc439cee08fddf12"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::empty" ref="a86348b6c3294a19bcc439cee08fddf12" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::poses::CPose3DInterpolator::empty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="ab8f7536588ae23e34397be2b8c18da64"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::end" ref="ab8f7536588ae23e34397be2b8c18da64" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a> mrpt::poses::CPose3DInterpolator::end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00109">109</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

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

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

</div>
</div>
<a class="anchor" id="aa324a25ae9c94658c75357f010aab352"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::erase" ref="aa324a25ae9c94658c75357f010aab352" args="(iterator element_to_erase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a> mrpt::poses::CPose3DInterpolator::erase </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a>&#160;</td>
          <td class="paramname"><em>element_to_erase</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="abe3ce33153e27843a35daf2dee4b17f7"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::filter" ref="abe3ce33153e27843a35daf2dee4b17f7" args="(unsigned int component, unsigned int samples)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPose3DInterpolator::filter </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>component</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>samples</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filters by averaging one of the components of the <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html" title="A class used to store a 3D pose (a 3D translation + a rotation in 3D).">CPose3D</a> data within the interpolator. </p>
<p>The width of the filter is set by the number of samples. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">component</td><td>[IN] The index of the component to filter: 0 (x), 1 (y), 2 (z), 3 (yaw), 4 (pitch) or 5 (roll). </td></tr>
    <tr><td class="paramname">samples</td><td>[IN] The width of the average filter. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f78440343433663ccfc7eea972db3ef"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::getBoundingBox" ref="a3f78440343433663ccfc7eea972db3ef" args="(CPoint3D &amp;minCorner, CPoint3D &amp;maxCorner) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPose3DInterpolator::getBoundingBox </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>minCorner</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_point3_d.html">CPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>maxCorner</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the bounding box in X,Y,Z of the whole vehicle path. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On empty path </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1b12af0688e9444f1b172bb7ea5312ab"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::getBoundingBox" ref="a1b12af0688e9444f1b172bb7ea5312ab" args="(mrpt::math::TPoint3D &amp;minCorner, mrpt::math::TPoint3D &amp;maxCorner) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPose3DInterpolator::getBoundingBox </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>minCorner</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>maxCorner</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the bounding box in X,Y,Z of the whole vehicle path. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On empty path </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab749beca2e64a7d9dd12b02d05a80ef2"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::getInterpolationMethod" ref="ab749beca2e64a7d9dd12b02d05a80ef2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a> mrpt::poses::CPose3DInterpolator::getInterpolationMethod </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the currently set interpolation method. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a85f6ff0168b374d8b58f785257fa04fd" title="Change the method used to interpolate the robot path.">setInterpolationMethod</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a07a6aee6b0de908bbc35ba62b05e78a5"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::getMaxTimeInterpolation" ref="a07a6aee6b0de908bbc35ba62b05e78a5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPose3DInterpolator::getMaxTimeInterpolation </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set value of the maximum time to consider interpolation. </p>

</div>
</div>
<a class="anchor" id="a051aae098355a1bf0849ffa16a99d21a"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::getPreviousPoseWithMinDistance" ref="a051aae098355a1bf0849ffa16a99d21a" args="(const mrpt::system::TTimeStamp &amp;t, double distance, CPose3D &amp;out_pose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::poses::CPose3DInterpolator::getPreviousPoseWithMinDistance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>out_pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the previous <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html" title="A class used to store a 3D pose (a 3D translation + a rotation in 3D).">CPose3D</a> in the map with a minimum defined distance. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if pose was found, false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a576476414f4d6ec8569fbb0266ab3d55"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::GetRuntimeClass" ref="a576476414f4d6ec8569fbb0266ab3d55" 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::poses::CPose3DInterpolator::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="ab3454b9a00c480bf5d2aa34327114cbf"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::insert" ref="ab3454b9a00c480bf5d2aa34327114cbf" args="(mrpt::system::TTimeStamp t, const CPose3D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPose3DInterpolator::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts a new pose in the sequence. </p>
<p>It overwrites any previously existing pose at exactly the same time. </p>

</div>
</div>
<a class="anchor" id="a3a78d49e708635dccf94fc762485dc5a"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::interpolate" ref="a3a78d49e708635dccf94fc762485dc5a" args="(mrpt::system::TTimeStamp t, CPose3D &amp;out_interp, bool &amp;out_valid_interp) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a>&amp; mrpt::poses::CPose3DInterpolator::interpolate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>out_interp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>out_valid_interp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the pose at a given time, or interpolates using splines if there is not an exact match. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>The time of the point to interpolate. </td></tr>
    <tr><td class="paramname">out_interp</td><td>The output interpolated pose. </td></tr>
    <tr><td class="paramname">out_valid_interp</td><td>Whether there was information enough to compute the interpolation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A reference to out_interp </dd></dl>

</div>
</div>
<a class="anchor" id="acde6bcfd2a8b454fe56db6afe78431b1"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::loadFromTextFile" ref="acde6bcfd2a8b454fe56db6afe78431b1" args="(const std::string &amp;s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::poses::CPose3DInterpolator::loadFromTextFile </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>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads from a text file, in the format described by saveToTextFile. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, false on any error. </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 invalid file format </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aad10a00f10038d9309cddae5835c8558"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::lower_bound" ref="aad10a00f10038d9309cddae5835c8558" args="(const mrpt::system::TTimeStamp &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a> mrpt::poses::CPose3DInterpolator::lower_bound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a68450804a7ff27a9d01b4e265c915b19"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::lower_bound" ref="a68450804a7ff27a9d01b4e265c915b19" args="(const mrpt::system::TTimeStamp &amp;t) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a> mrpt::poses::CPose3DInterpolator::lower_bound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00119">119</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a18d252f0878f9ac1de62127e9a8e146e"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::rbegin" ref="a18d252f0878f9ac1de62127e9a8e146e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a87e836023fbeb444b8cff1cf4051b34d">reverse_iterator</a> mrpt::poses::CPose3DInterpolator::rbegin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00112">112</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6900d006d8ab089121a8212560282c4"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::rbegin" ref="ad6900d006d8ab089121a8212560282c4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9238fc4c1fa5931e6eae624d9ac00d58">const_reverse_iterator</a> mrpt::poses::CPose3DInterpolator::rbegin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a73ba83035a64939cdc3aa1c0dfed23ec"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::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="affcb1d45089b28d399b236032915c904"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::rend" ref="affcb1d45089b28d399b236032915c904" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a87e836023fbeb444b8cff1cf4051b34d">reverse_iterator</a> mrpt::poses::CPose3DInterpolator::rend </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00115">115</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6810dfdabd95eff39d148d00ef562062"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::rend" ref="a6810dfdabd95eff39d148d00ef562062" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9238fc4c1fa5931e6eae624d9ac00d58">const_reverse_iterator</a> mrpt::poses::CPose3DInterpolator::rend </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a02b088b6ea85953a1c0cabec702e449a"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::saveInterpolatedToTextFile" ref="a02b088b6ea85953a1c0cabec702e449a" args="(const std::string &amp;s, double period) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::poses::CPose3DInterpolator::saveInterpolatedToTextFile </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>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>period</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Saves the points in the interpolator to a text file, with the same format that saveToTextFile, but interpolating the path with the given period in seconds. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#acde6bcfd2a8b454fe56db6afe78431b1" title="Loads from a text file, in the format described by saveToTextFile.">loadFromTextFile</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, false on any error. </dd></dl>

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

<p>Saves the points in the interpolator to a text file, with this format: Each row contains these elements separated by spaces: </p>
<ul>
<li>Timestamp: As a "double time_t" (see <a class="el" href="group__time__date.html#ga174de88e05dcdb49a3ddd7bde16bdc20" title="Transform from TTimeStamp to standard &quot;time_t&quot; (actually a double number, it can contain fractions of...">mrpt::system::timestampTotime_t</a>).</li>
<li>x y z: The 3D position in meters.</li>
<li>yaw pitch roll: The angles, in radians <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#acde6bcfd2a8b454fe56db6afe78431b1" title="Loads from a text file, in the format described by saveToTextFile.">loadFromTextFile</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, false on any error. </dd></dl>
</li>
</ul>

</div>
</div>
<a class="anchor" id="a85f6ff0168b374d8b58f785257fa04fd"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::setInterpolationMethod" ref="a85f6ff0168b374d8b58f785257fa04fd" args="(TInterpolatorMethod method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPose3DInterpolator::setInterpolationMethod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a>&#160;</td>
          <td class="paramname"><em>method</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the method used to interpolate the robot path. </p>
<p>The default method at construction is "imSpline". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#ab749beca2e64a7d9dd12b02d05a80ef2" title="Returns the currently set interpolation method.">getInterpolationMethod</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a14eee4ee902ebc2ceaa130064b36338e"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::setMaxTimeInterpolation" ref="a14eee4ee902ebc2ceaa130064b36338e" args="(double time)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPose3DInterpolator::setMaxTimeInterpolation </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>time</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set value of the maximum time to consider interpolation. </p>
<p>If set to a negative value, the check is disabled (default behavior). </p>

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

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

</div>
</div>
<a class="anchor" id="a369556f43106fe2441a17b819dac6815"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::upper_bound" ref="a369556f43106fe2441a17b819dac6815" args="(const mrpt::system::TTimeStamp &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a9380569d7fb62636eba7137f2eb03b4a">iterator</a> mrpt::poses::CPose3DInterpolator::upper_bound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00121">121</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a34051da02a401bf82b9d3a7c773812b4"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::upper_bound" ref="a34051da02a401bf82b9d3a7c773812b4" args="(const mrpt::system::TTimeStamp &amp;t) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a56e6af2a96e7e9162ad2de408d239446">const_iterator</a> mrpt::poses::CPose3DInterpolator::upper_bound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a0b6b801e67bca3d8e0d355e7035f8013"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::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::poses::CPose3DInterpolator::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="abdf357de73eb88e348994c7bb00e3f26"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::_init_CPose3DInterpolator" ref="abdf357de73eb88e348994c7bb00e3f26" 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_1poses_1_1_c_pose3_d_interpolator.html#abdf357de73eb88e348994c7bb00e3f26">mrpt::poses::CPose3DInterpolator::_init_CPose3DInterpolator</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00074">74</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::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="af69d5dbf2c5eb95a6735b0c13509e567"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::classCPose3DInterpolator" ref="af69d5dbf2c5eb95a6735b0c13509e567" 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_1poses_1_1_c_pose3_d_interpolator.html#af69d5dbf2c5eb95a6735b0c13509e567">mrpt::poses::CPose3DInterpolator::classCPose3DInterpolator</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00074">74</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

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

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00074">74</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a25f2d7dc2cf49359bd8f2202af9ccd92"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::m_method" ref="a25f2d7dc2cf49359bd8f2202af9ccd92" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a4bd1ccff3a4f0cb047f0e27f8a822584">TInterpolatorMethod</a> <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a25f2d7dc2cf49359bd8f2202af9ccd92">mrpt::poses::CPose3DInterpolator::m_method</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00215">215</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.h</a>.</p>

</div>
</div>
<a class="anchor" id="af0cac180f1be767ab4a04faf77d18680"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::m_path" ref="af0cac180f1be767ab4a04faf77d18680" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a559b47480ce53f911abc73b60ce67bbd">TPath</a> <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#af0cac180f1be767ab4a04faf77d18680">mrpt::poses::CPose3DInterpolator::m_path</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The sequence of poses. </p>

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

</div>
</div>
<a class="anchor" id="a6bba0d4735fc2d45d3a8f76d3bb59f4b"></a><!-- doxytag: member="mrpt::poses::CPose3DInterpolator::maxTimeInterpolation" ref="a6bba0d4735fc2d45d3a8f76d3bb59f4b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_interpolator.html#a6bba0d4735fc2d45d3a8f76d3bb59f4b">mrpt::poses::CPose3DInterpolator::maxTimeInterpolation</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Maximum time considered to interpolate. If the difference between the desired timestamp where to interpolate and the next timestamp stored in the map is bigger than this value, the interpolation will not be done. </p>

<p>Definition at line <a class="el" href="_c_pose3_d_interpolator_8h_source.html#l00213">213</a> of file <a class="el" href="_c_pose3_d_interpolator_8h_source.html">CPose3DInterpolator.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>