Sophie

Sophie

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

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>CPointPDFParticles.h Source File</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><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><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="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<div class="title">CPointPDFParticles.h</div>  </div>
</div>
<div class="contents">
<a href="_c_point_p_d_f_particles_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* +---------------------------------------------------------------------------+</span>
<a name="l00002"></a>00002 <span class="comment">   |          The Mobile Robot Programming Toolkit (MRPT) C++ library          |</span>
<a name="l00003"></a>00003 <span class="comment">   |                                                                           |</span>
<a name="l00004"></a>00004 <span class="comment">   |                       http://www.mrpt.org/                                |</span>
<a name="l00005"></a>00005 <span class="comment">   |                                                                           |</span>
<a name="l00006"></a>00006 <span class="comment">   |   Copyright (C) 2005-2011  University of Malaga                           |</span>
<a name="l00007"></a>00007 <span class="comment">   |                                                                           |</span>
<a name="l00008"></a>00008 <span class="comment">   |    This software was written by the Machine Perception and Intelligent    |</span>
<a name="l00009"></a>00009 <span class="comment">   |      Robotics Lab, University of Malaga (Spain).                          |</span>
<a name="l00010"></a>00010 <span class="comment">   |    Contact: Jose-Luis Blanco  &lt;jlblanco@ctima.uma.es&gt;                     |</span>
<a name="l00011"></a>00011 <span class="comment">   |                                                                           |</span>
<a name="l00012"></a>00012 <span class="comment">   |  This file is part of the MRPT project.                                   |</span>
<a name="l00013"></a>00013 <span class="comment">   |                                                                           |</span>
<a name="l00014"></a>00014 <span class="comment">   |     MRPT is free software: you can redistribute it and/or modify          |</span>
<a name="l00015"></a>00015 <span class="comment">   |     it under the terms of the GNU General Public License as published by  |</span>
<a name="l00016"></a>00016 <span class="comment">   |     the Free Software Foundation, either version 3 of the License, or     |</span>
<a name="l00017"></a>00017 <span class="comment">   |     (at your option) any later version.                                   |</span>
<a name="l00018"></a>00018 <span class="comment">   |                                                                           |</span>
<a name="l00019"></a>00019 <span class="comment">   |   MRPT is distributed in the hope that it will be useful,                 |</span>
<a name="l00020"></a>00020 <span class="comment">   |     but WITHOUT ANY WARRANTY; without even the implied warranty of        |</span>
<a name="l00021"></a>00021 <span class="comment">   |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         |</span>
<a name="l00022"></a>00022 <span class="comment">   |     GNU General Public License for more details.                          |</span>
<a name="l00023"></a>00023 <span class="comment">   |                                                                           |</span>
<a name="l00024"></a>00024 <span class="comment">   |     You should have received a copy of the GNU General Public License     |</span>
<a name="l00025"></a>00025 <span class="comment">   |     along with MRPT.  If not, see &lt;http://www.gnu.org/licenses/&gt;.         |</span>
<a name="l00026"></a>00026 <span class="comment">   |                                                                           |</span>
<a name="l00027"></a>00027 <span class="comment">   +---------------------------------------------------------------------------+ */</span>
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef CPointPDFParticles_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define CPointPDFParticles_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="_c_point_p_d_f_8h.html">mrpt/poses/CPointPDF.h</a>&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="_c_matrix_8h.html">mrpt/math/CMatrix.h</a>&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="_c_probability_particle_8h.html">mrpt/bayes/CProbabilityParticle.h</a>&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="_c_particle_filter_data_8h.html">mrpt/bayes/CParticleFilterData.h</a>&gt;</span>
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="keyword">namespace </span>mrpt
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038 <span class="keyword">namespace </span>poses
<a name="l00039"></a>00039 {
<a name="l00040"></a><a class="code" href="structmrpt_1_1poses_1_1_t_simple3_d_point_ptr.html#ac318d1d186b1b29a64a72a12d6ce94a2">00040</a>         <a class="code" href="_c_serializable_8h.html#ab89b7a3de0a1baf5a5af4454add7d0f8" title="This declaration must be inserted in all CSerializable classes definition, before the class declarati...">DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE</a>( <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a>, <a class="code" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT...">mrpt::utils::CSerializable</a> )
<a name="l00041"></a>00041 
<a name="l00042"></a>00042         <span class="comment">/** Data within each particle</span>
<a name="l00043"></a>00043 <span class="comment">         * \ingroup poses_pdf_grp</span>
<a name="l00044"></a>00044 <span class="comment">          */</span>
<a name="l00045"></a>00045         class <a class="code" href="base_2include_2mrpt_2base_2link__pragmas_8h.html#a6045fa0129b1a3d6c8bf895470e66574">BASE_IMPEXP</a> <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a> : public mrpt::utils::<a class="code" 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...">CSerializable</a>
<a name="l00046"></a>00046         {
<a name="l00047"></a>00047                 <span class="comment">// This must be added to any CSerializable derived class:</span>
<a name="l00048"></a><a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#a56a425f3598447c700a0ab4ea677d2a8">00048</a>                 <a class="code" href="_c_serializable_8h.html#a72ab55bf7ae009c89b75715cfa21e84d" title="This declaration must be inserted in all CSerializable classes definition, within the class declarati...">DEFINE_SERIALIZABLE</a>( <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a> )
<a name="l00049"></a>00049         public:
<a name="l00050"></a><a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#ac53a5f1a4c0437419484bb5546d40427">00050</a>                 <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a>(const <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a>&amp;o) : x(o.x),<a class="code" href="namespace_eigen_1_1internal.html#a3d7a581aeb951248dc6fe114e9e05f07">y</a>(o.<a class="code" href="namespace_eigen_1_1internal.html#a3d7a581aeb951248dc6fe114e9e05f07">y</a>),z(o.z)
<a name="l00051"></a>00051                 {
<a name="l00052"></a>00052                 }
<a name="l00053"></a>00053 
<a name="l00054"></a><a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#a0c7eac91a274ca1e640f35c4a06da7a8">00054</a>                 <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a>() : x(0),<a class="code" href="namespace_eigen_1_1internal.html#a3d7a581aeb951248dc6fe114e9e05f07">y</a>(0),z(0)
<a name="l00055"></a>00055                 {
<a name="l00056"></a>00056                 }
<a name="l00057"></a>00057 
<a name="l00058"></a><a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#a9c8ec0c3ea0281df60e06f7369121306">00058</a>                 <a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a>(<span class="keyword">const</span> <a class="code" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point.">CPoint3D</a> &amp;v) : x(v.x()),<a class="code" href="namespace_eigen_1_1internal.html#a3d7a581aeb951248dc6fe114e9e05f07">y</a>(v.<a class="code" href="namespace_eigen_1_1internal.html#a3d7a581aeb951248dc6fe114e9e05f07">y</a>()),z(v.z())
<a name="l00059"></a>00059                 {
<a name="l00060"></a>00060                 }
<a name="l00061"></a>00061 
<a name="l00062"></a><a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#a8bfd93f5c622c611f5ac40563e5fe616">00062</a>                 <span class="keywordtype">float</span>   x,<a class="code" href="namespace_eigen_1_1internal.html#a3d7a581aeb951248dc6fe114e9e05f07">y</a>,<a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html#a8bfd93f5c622c611f5ac40563e5fe616">z</a>;
<a name="l00063"></a>00063         };
<a name="l00064"></a>00064 
<a name="l00065"></a><a class="code" href="structmrpt_1_1poses_1_1_c_point_p_d_f_particles_ptr.html#ac8853d9668f3883b1bf5ca92d82bcc30">00065</a>         <a class="code" href="_c_serializable_8h.html#ab89b7a3de0a1baf5a5af4454add7d0f8" title="This declaration must be inserted in all CSerializable classes definition, before the class declarati...">DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE</a>( <a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html" title="A probability distribution of a 2D/3D point, represented as a set of random samples (particles)...">CPointPDFParticles</a>, <a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f.html" title="Declares a class that represents a Probability Distribution function (PDF) of a 3D point (x...">CPointPDF</a> )
<a name="l00066"></a>00066 
<a name="l00067"></a>00067         <span class="comment">/** A probability distribution of a 2D/3D point, represented as a set of random samples (particles).</span>
<a name="l00068"></a>00068 <span class="comment">         * \sa CPointPDF</span>
<a name="l00069"></a>00069 <span class="comment">         * \ingroup poses_pdf_grp</span>
<a name="l00070"></a>00070 <span class="comment">         */</span>
<a name="l00071"></a>00071         class <a class="code" href="base_2include_2mrpt_2base_2link__pragmas_8h.html#a6045fa0129b1a3d6c8bf895470e66574">BASE_IMPEXP</a> <a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html" title="A probability distribution of a 2D/3D point, represented as a set of random samples (particles)...">CPointPDFParticles</a> : public <a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f.html" title="Declares a class that represents a Probability Distribution function (PDF) of a 3D point (x...">CPointPDF</a>, public mrpt::bayes::<a class="code" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html" title="This template class declares the array of particles and its internal data, managing some memory-relat...">CParticleFilterData</a>&lt;<a class="code" href="classmrpt_1_1poses_1_1_t_simple3_d_point.html" title="Data within each particle.">TSimple3DPoint</a>&gt;
<a name="l00072"></a>00072         {
<a name="l00073"></a>00073                 <span class="comment">// This must be added to any CSerializable derived class:</span>
<a name="l00074"></a><a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html#ae7ccdbde07b79bdae86294b69090a190">00074</a>                 <a class="code" href="_c_serializable_8h.html#a72ab55bf7ae009c89b75715cfa21e84d" title="This declaration must be inserted in all CSerializable classes definition, within the class declarati...">DEFINE_SERIALIZABLE</a>( <a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html" title="A probability distribution of a 2D/3D point, represented as a set of random samples (particles)...">CPointPDFParticles</a> )
<a name="l00075"></a>00075 
<a name="l00076"></a>00076                 <span class="comment">// This uses CParticleFilterData to implement some methods required for CParticleFilterCapable:</span>
<a name="l00077"></a>00077                 <a class="code" href="_c_particle_filter_data_8h.html#a1dab657a0f7d1fe1f4821dbbc2b4ea60" title="This must be placed within the declaration of classes inheriting from both CParticleFilterData and CP...">IMPLEMENT_PARTICLE_FILTER_CAPABLE</a>(TSimple3DPoint);
<a name="l00078"></a>00078 
<a name="l00079"></a>00079          public:<span class="comment"></span>
<a name="l00080"></a>00080 <span class="comment">                /** Default constructor</span>
<a name="l00081"></a>00081 <span class="comment">                  */</span>
<a name="l00082"></a>00082                 <a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html" title="A probability distribution of a 2D/3D point, represented as a set of random samples (particles)...">CPointPDFParticles</a>(<span class="keywordtype">size_t</span> numParticles = 1);
<a name="l00083"></a>00083 <span class="comment"></span>
<a name="l00084"></a>00084 <span class="comment">                /** Destructor</span>
<a name="l00085"></a>00085 <span class="comment">                  */</span>
<a name="l00086"></a>00086                 virtual ~<a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html" title="A probability distribution of a 2D/3D point, represented as a set of random samples (particles)...">CPointPDFParticles</a>();
<a name="l00087"></a>00087 <span class="comment"></span>
<a name="l00088"></a>00088 <span class="comment">                /** Clear all the particles (free memory)</span>
<a name="l00089"></a>00089 <span class="comment">                  */</span>
<a name="l00090"></a><a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html#a016e214faabb79b8a3741b62564f184b">00090</a>                 <span class="keywordtype">void</span> clear()  { <a class="code" href="eigen__plugins_8h.html#a8133077108cd44f617e7784243eb5db9" title="Changes the size of matrix, maintaining its previous content as possible and padding with zeros where...">setSize</a>(0);     }
<a name="l00091"></a>00091 <span class="comment"></span>
<a name="l00092"></a>00092 <span class="comment">                /** Erase all the previous particles and change the number of particles, with a given initial value</span>
<a name="l00093"></a>00093 <span class="comment">                  */</span>
<a name="l00094"></a>00094                 <span class="keywordtype">void</span> <a class="code" href="eigen__plugins_8h.html#a8133077108cd44f617e7784243eb5db9" title="Changes the size of matrix, maintaining its previous content as possible and padding with zeros where...">setSize</a>(<span class="keywordtype">size_t</span> numberParticles, <span class="keyword">const</span> <a class="code" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point.">CPoint3D</a> &amp;defaultValue = <a class="code" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point.">CPoint3D</a>(0,0,0) );
<a name="l00095"></a>00095 <span class="comment"></span>
<a name="l00096"></a>00096 <span class="comment">                /** Returns the number of particles</span>
<a name="l00097"></a>00097 <span class="comment">                  */</span>
<a name="l00098"></a><a class="code" href="classmrpt_1_1poses_1_1_c_point_p_d_f_particles.html#ad9ce639ddc78bd1bf08b89613dda8b78">00098</a>                 <span class="keywordtype">size_t</span> <a class="code" href="namespacemrpt_1_1math.html#a632ae0aecf78103f87f18f9ac33f7170">size</a>()<span class="keyword"> const</span>
<a name="l00099"></a>00099 <span class="keyword">                </span>{
<a name="l00100"></a>00100                         <span class="keywordflow">return</span> m_particles.size();
<a name="l00101"></a>00101                 }
<a name="l00102"></a>00102 <span class="comment"></span>
<a name="l00103"></a>00103 <span class="comment">                 /** Returns an estimate of the point, (the mean, or mathematical expectation of the PDF).</span>
<a name="l00104"></a>00104 <span class="comment">                   * \sa getCovariance</span>
<a name="l00105"></a>00105 <span class="comment">                   */</span>
<a name="l00106"></a>00106                 <span class="keywordtype">void</span> getMean(<a class="code" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point.">CPoint3D</a> &amp;mean_point) <span class="keyword">const</span>;
<a name="l00107"></a>00107 <span class="comment"></span>
<a name="l00108"></a>00108 <span class="comment">                /** Returns an estimate of the point covariance matrix (3x3 cov matrix) and the mean, both at once.</span>
<a name="l00109"></a>00109 <span class="comment">                  * \sa getMean</span>
<a name="l00110"></a>00110 <span class="comment">                  */</span>
<a name="l00111"></a>00111                 <span class="keywordtype">void</span> getCovarianceAndMean(<a class="code" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixDouble33</a> &amp;<a class="code" href="namespacemrpt_1_1math.html#a43f4e051fc574fd75b6800ad4fb25037" title="Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample...">cov</a>,<a class="code" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point.">CPoint3D</a> &amp;mean_point) <span class="keyword">const</span>;
<a name="l00112"></a>00112 <span class="comment"></span>
<a name="l00113"></a>00113 <span class="comment">                /** Copy operator, translating if necesary (for example, between particles and gaussian representations)</span>
<a name="l00114"></a>00114 <span class="comment">                  */</span>
<a name="l00115"></a>00115                 <span class="keywordtype">void</span>  copyFrom(<span class="keyword">const</span> CPointPDF &amp;o);
<a name="l00116"></a>00116 <span class="comment"></span>
<a name="l00117"></a>00117 <span class="comment">                /** Save PDF&#39;s particles to a text file, where each line is: X Y Z LOG_W</span>
<a name="l00118"></a>00118 <span class="comment">                 */</span>
<a name="l00119"></a>00119                 <span class="keywordtype">void</span>  <a class="code" href="eigen__plugins_8h.html#abea6659e38ab7a50b625ea1a4af3ec72" title="Save matrix to a text file, compatible with MATLAB text format (see also the methods of matrix classe...">saveToTextFile</a>(<span class="keyword">const</span> <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a> &amp;file) <span class="keyword">const</span>;
<a name="l00120"></a>00120 <span class="comment"></span>
<a name="l00121"></a>00121 <span class="comment">                /** This can be used to convert a PDF from local coordinates to global, providing the point (newReferenceBase) from which</span>
<a name="l00122"></a>00122 <span class="comment">                  *   &quot;to project&quot; the current pdf. Result PDF substituted the currently stored one in the object. Both the mean value and the covariance matrix are updated correctly.</span>
<a name="l00123"></a>00123 <span class="comment">                  */</span>
<a name="l00124"></a>00124                 <span class="keywordtype">void</span>  changeCoordinatesReference( <span class="keyword">const</span> <a class="code" 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> &amp;newReferenceBase );
<a name="l00125"></a>00125 <span class="comment"></span>
<a name="l00126"></a>00126 <span class="comment">                /** Compute the kurtosis of the distribution.</span>
<a name="l00127"></a>00127 <span class="comment">                  */</span>
<a name="l00128"></a>00128                 <span class="keywordtype">double</span> computeKurtosis();
<a name="l00129"></a>00129 <span class="comment"></span>
<a name="l00130"></a>00130 <span class="comment">                /** Draw a sample from the pdf.</span>
<a name="l00131"></a>00131 <span class="comment">                  */</span>
<a name="l00132"></a>00132                 <span class="keywordtype">void</span> drawSingleSample(<a class="code" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point.">CPoint3D</a>  &amp;outSample) <span class="keyword">const</span>;
<a name="l00133"></a>00133 <span class="comment"></span>
<a name="l00134"></a>00134 <span class="comment">                /** Bayesian fusion of two point distributions (product of two distributions-&gt;new distribution), then save the result in this object (WARNING: See implementing classes to see classes that can and cannot be mixtured!)</span>
<a name="l00135"></a>00135 <span class="comment">                  * \param p1 The first distribution to fuse</span>
<a name="l00136"></a>00136 <span class="comment">                  * \param p2 The second distribution to fuse</span>
<a name="l00137"></a>00137 <span class="comment">                  * \param minMahalanobisDistToDrop If set to different of 0, the result of very separate Gaussian modes (that will result in negligible components) in SOGs will be dropped to reduce the number of modes in the output.</span>
<a name="l00138"></a>00138 <span class="comment">                  */</span>
<a name="l00139"></a>00139                 <span class="keywordtype">void</span>  bayesianFusion( <span class="keyword">const</span> CPointPDF &amp;p1, <span class="keyword">const</span> CPointPDF &amp;p2, <span class="keyword">const</span> <span class="keywordtype">double</span> &amp;minMahalanobisDistToDrop = 0);
<a name="l00140"></a>00140 
<a name="l00141"></a>00141         }; <span class="comment">// End of class def.</span>
<a name="l00142"></a>00142 
<a name="l00143"></a>00143 
<a name="l00144"></a>00144         } <span class="comment">// End of namespace</span>
<a name="l00145"></a>00145 } <span class="comment">// End of namespace</span>
<a name="l00146"></a>00146 
<a name="l00147"></a>00147 <span class="preprocessor">#endif</span>
</pre></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>