Sophie

Sophie

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

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::CPoseOrPoint 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_pose_or_point.html">CPoseOrPoint</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<div class="title">mrpt::poses::CPoseOrPoint Class Reference<div class="ingroups"><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::CPoseOrPoint" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The base template class for 2D &amp; 3D points and poses. </p>
<p>This class use the Curiously Recurring Template Pattern (CRTP) to define a set of common methods to all the children classes without the cost of virtual methods. Since most important methods are inline, they will be expanded at compile time and optimized for every specific derived case.</p>
<p>For more information and examples, refer to the <a href="http://www.mrpt.org/2D_3D_Geometry">2D/3D Geometry tutorial</a> online.</p>
<center><h2>Introduction to 2D and 3D representation classes</h2>
</center><center></center> <hr/>
 <p>There are two class of spatial representation classes:</p>
<ul>
<li>Point: A point in the common mathematical sense, with no directional information.<ul>
<li>2D: A 2D point is represented just by its coordinates (x,y).</li>
<li>3D: A 3D point is represented by its coordinates (x,y,z).</li>
</ul>
</li>
<li>Pose: It is a point, plus a direction.<ul>
<li>2D: A 2D pose is a 2D point plus a single angle, the yaw or &amp;#966; angle: the angle from the positive X angle.</li>
<li>3D: A 3D point is a 3D point plus three orientation angles (More details above).  In the case for a 3D orientation many representation angles can be used (Euler angles,yaw/pitch/roll,...) but all of them can be handled by a 4x4 matrix called "Homogeneous Matrix". This matrix includes both, the translation and the orientation for a point or a pose, and it can be obtained using the method getHomogeneousMatrix() which is defined for any pose or point. Note that when the YPR angles are used to define a 3D orientation, these three values can not be extracted from the matrix again.<br/>
<br/>
</li>
</ul>
</li>
</ul>
<p><b>Homogeneous matrices:</b> These are 4x4 matrices which can represent any translation or rotation in 2D &amp; 3D. See the tutorial online for more details. *</p>
<p><b>Operators:</b> There are operators defined for the pose compounding <img class="formulaInl" alt="$ \oplus $" src="form_68.png"/> and inverse pose compounding <img class="formulaInl" alt="$ \ominus $" src="form_69.png"/> of poses and points. For example, let "a" and "b" be 2D or 3D poses. Then "a+b" returns the resulting pose of "moving b" from "a"; and "b-a" returns the pose of "b" as it is seen "from a". They can be mixed points and poses, being 2D or 3D, in these operators, with the following results: <br/>
</p>
<div align="center"> <pre>
  Does "a+b" return a Pose or a Point?
 +---------------------------------+
 |  a \ b   |  Pose     |  Point   |
 +----------+-----------+----------+
 | Pose     |  Pose     |  Point   |
 | Point    |  Pose     |  Point   |
 +---------------------------------+</pre></div><div align="center"><pre>  Does "a-b" return a Pose or a Point?
 +---------------------------------+
 |  a \ b   |  Pose     |  Point   |
 +----------+-----------+----------+
 | Pose     |  Pose     |  Pose    |
 | Point    |  Point    |  Point   |
 +---------------------------------+</pre></div><div align="center"><pre>  Does "a+b" and "a-b" return a 2D or 3D object?
 +-------------------------+
 |  a \ b   |  2D   |  3D  |
 +----------+--------------+
 |  2D      |  2D   |  3D  |
 |  3D      |  3D   |  3D  |
 +-------------------------+</pre></div><div align="center"><pre>  </pre> </div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1poses_1_1_c_pose.html" title="A base class for representing a pose in 2D or 3D.">CPose</a>,<a class="el" href="classmrpt_1_1poses_1_1_c_point.html" title="A base class for representing a point in 2D or 3D.">CPoint</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_pose_or_point_8h_source.html">mrpt/poses/CPoseOrPoint.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::poses::CPoseOrPoint:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1poses_1_1_c_pose_or_point__inherit__graph.png" border="0" usemap="#mrpt_1_1poses_1_1_c_pose_or_point_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1poses_1_1_c_pose_or_point_inherit__map" id="mrpt_1_1poses_1_1_c_pose_or_point_inherit__map">
<area shape="rect" id="node3" href="classmrpt_1_1poses_1_1_c_pose_or_point.html" title="mrpt::poses::CPoseOrPoint\&lt; DERIVEDCLASS \&gt;" alt="" coords="371,91,683,117"/><area shape="rect" id="node5" href="classmrpt_1_1poses_1_1_c_point.html" title="A base class for representing a point in 2D or 3D." alt="" coords="733,56,872,83"/><area shape="rect" id="node15" href="classmrpt_1_1poses_1_1_c_pose.html" title="A base class for representing a pose in 2D or 3D." alt="" coords="733,148,872,175"/><area shape="rect" id="node7" href="classmrpt_1_1poses_1_1_c_point.html" title="mrpt::poses::CPoint\&lt; CPoint2D \&gt;" alt="" coords="1049,5,1269,32"/><area shape="rect" id="node11" href="classmrpt_1_1poses_1_1_c_point.html" title="mrpt::poses::CPoint\&lt; CPoint3D \&gt;" alt="" coords="1049,56,1269,83"/><area shape="rect" id="node9" href="classmrpt_1_1poses_1_1_c_point2_d.html" title="A class used to store a 2D point." alt="" coords="1347,5,1503,32"/><area shape="rect" id="node13" href="classmrpt_1_1poses_1_1_c_point3_d.html" title="A class used to store a 3D point." alt="" coords="1347,56,1503,83"/><area shape="rect" id="node17" href="classmrpt_1_1poses_1_1_c_pose.html" title="mrpt::poses::CPose\&lt; CPose3D \&gt;" alt="" coords="1049,107,1269,133"/><area shape="rect" id="node21" href="classmrpt_1_1poses_1_1_c_pose.html" title="mrpt::poses::CPose\&lt; CPose2D \&gt;" alt="" coords="1049,157,1269,184"/><area shape="rect" id="node25" href="classmrpt_1_1poses_1_1_c_pose.html" title="mrpt::poses::CPose\&lt; CPose3DQuat \&gt;" alt="" coords="1035,208,1283,235"/><area shape="rect" id="node19" 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)." alt="" coords="1347,107,1503,133"/><area shape="rect" id="node23" href="classmrpt_1_1poses_1_1_c_pose2_d.html" title="A class used to store a 2D pose." alt="" coords="1347,157,1503,184"/><area shape="rect" id="node27" href="classmrpt_1_1poses_1_1_c_pose3_d_quat.html" title="A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,qz)." alt="" coords="1333,208,1517,235"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1poses_1_1_c_pose_or_point-members.html">List of all members.</a></p>
<table class="memberdecls">
<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_pose_or_point.html#af3506e31b659334e6992f5cd9ac657b7">x</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Common members of all points &amp; poses classes.  <a href="#af3506e31b659334e6992f5cd9ac657b7"></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_pose_or_point.html#a912d9a0a05f236fdb947b6627e7349ba">y</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#ad83a13c613e3a571d38ecf0c5bbaf14e">x</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#afc45043b9e86558dac17091787cc8546">y</a> ()</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_pose_or_point.html#abd0edead14bf974e3573635db0649b8b">x</a> (const double v)</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_pose_or_point.html#a40f5b89235381d395cf6ed933e3456b4">y</a> (const double v)</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_pose_or_point.html#a988b5d127feca6fcc17c5fc9c5617a32">x_incr</a> (const double v)</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_pose_or_point.html#a2c96d47bfe4f9666bf5816a5d5f030ec">y_incr</a> (const double v)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class OTHERCLASS &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#a2b9df9477af343743486cc4811d82357">sqrDistanceTo</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html">CPoseOrPoint</a>&lt; OTHERCLASS &gt; &amp;b) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared euclidean distance to another pose/point:  <a href="#a2b9df9477af343743486cc4811d82357"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class OTHERCLASS &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#aafaf13c20929700f3cd1688374bb9999">distanceTo</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html">CPoseOrPoint</a>&lt; OTHERCLASS &gt; &amp;b) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Euclidean distance to another pose/point:  <a href="#aafaf13c20929700f3cd1688374bb9999"></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_pose_or_point.html#a4dd58b18bb7d5a7da1d38ee1a5feab5e">distance2DToSquare</a> (double ax, double ay) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared 2D distance from this pose/point to a 2D point (ignores Z, if it exists).  <a href="#a4dd58b18bb7d5a7da1d38ee1a5feab5e"></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_pose_or_point.html#af9801e32904a1a4fe11fd2ab1a8eb8a4">distance3DToSquare</a> (double ax, double ay, double az) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared 3D distance from this pose/point to a 3D point.  <a href="#af9801e32904a1a4fe11fd2ab1a8eb8a4"></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_pose_or_point.html#abcd313017da1f9f0a2837ff89b9f0f8b">distance2DTo</a> (double ax, double ay) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the 2D distance from this pose/point to a 2D point (ignores Z, if it exists).  <a href="#abcd313017da1f9f0a2837ff89b9f0f8b"></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_pose_or_point.html#a509a80a9a64db02142688f648e5f5f67">distance3DTo</a> (double ax, double ay, double az) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the 3D distance from this pose/point to a 3D point.  <a href="#a509a80a9a64db02142688f648e5f5f67"></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_pose_or_point.html#a7dc4616a2d4ecef34d38ccb3da948d98">distanceTo</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;b) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the euclidean distance to a 3D point:  <a href="#a7dc4616a2d4ecef34d38ccb3da948d98"></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_pose_or_point.html#a24ea0fd503c68ce305247573583f5284">norm</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the euclidean norm of vector: <img class="formulaInl" alt="$ ||\mathbf{x}|| = \sqrt{x^2+y^2+z^2} $" src="form_70.png"/>.  <a href="#a24ea0fd503c68ce305247573583f5284"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">vector_double</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#af6cebd2b9558f7e6624ef2e8965c4d20">getAsVectorVal</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation)  <a href="#af6cebd2b9558f7e6624ef2e8965c4d20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1math.html#a25a1ba39a478a66d24a4ecfb9c585c79">CMatrixDouble44</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#af4008d5353e9349be18baeb82d4701e3">getHomogeneousMatrixVal</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).  <a href="#af4008d5353e9349be18baeb82d4701e3"></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_pose_or_point.html#a573fbc8166aa8c2ee04ff229a178fb10">getInverseHomogeneousMatrix</a> (<a class="el" href="namespacemrpt_1_1math.html#a25a1ba39a478a66d24a4ecfb9c585c79">math::CMatrixDouble44</a> &amp;out_HM) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose.  <a href="#a573fbc8166aa8c2ee04ff229a178fb10"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1math.html#a25a1ba39a478a66d24a4ecfb9c585c79">mrpt::math::CMatrixDouble44</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#add70f40f0ead699d706779c07123cd90">getInverseHomogeneousMatrix</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html#a4d63d1364f37b48c83d36f4f2e5fb20a">is3DPoseOrPoint</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true for poses or points with a Z component, false otherwise.  <a href="#a4d63d1364f37b48c83d36f4f2e5fb20a"></a><br/></td></tr>
</table>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="abcd313017da1f9f0a2837ff89b9f0f8b"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::distance2DTo" ref="abcd313017da1f9f0a2837ff89b9f0f8b" args="(double ax, double ay) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::distance2DTo </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ay</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the 2D distance from this pose/point to a 2D point (ignores Z, if it exists). </p>

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

</div>
</div>
<a class="anchor" id="a4dd58b18bb7d5a7da1d38ee1a5feab5e"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::distance2DToSquare" ref="a4dd58b18bb7d5a7da1d38ee1a5feab5e" args="(double ax, double ay) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::distance2DToSquare </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ay</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the squared 2D distance from this pose/point to a 2D point (ignores Z, if it exists). </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00176">176</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_pose_or_point_8h_source.html#l00184">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance2DTo()</a>.</p>

</div>
</div>
<a class="anchor" id="a509a80a9a64db02142688f648e5f5f67"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::distance3DTo" ref="a509a80a9a64db02142688f648e5f5f67" args="(double ax, double ay, double az) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::distance3DTo </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ay</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>az</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the 3D distance from this pose/point to a 3D point. </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00187">187</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_pose_or_point_8h_source.html#l00190">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distanceTo()</a>.</p>

</div>
</div>
<a class="anchor" id="af9801e32904a1a4fe11fd2ab1a8eb8a4"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::distance3DToSquare" ref="af9801e32904a1a4fe11fd2ab1a8eb8a4" args="(double ax, double ay, double az) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::distance3DToSquare </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ay</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>az</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the squared 3D distance from this pose/point to a 3D point. </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00179">179</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_pose_or_point_8h_source.html#l00187">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance3DTo()</a>.</p>

</div>
</div>
<a class="anchor" id="aafaf13c20929700f3cd1688374bb9999"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::distanceTo" ref="aafaf13c20929700f3cd1688374bb9999" args="(const CPoseOrPoint&lt; OTHERCLASS &gt; &amp;b) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class OTHERCLASS &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::distanceTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html">CPoseOrPoint</a>&lt; OTHERCLASS &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the Euclidean distance to another pose/point: </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00170">170</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7dc4616a2d4ecef34d38ccb3da948d98"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::distanceTo" ref="a7dc4616a2d4ecef34d38ccb3da948d98" args="(const mrpt::math::TPoint3D &amp;b) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::distanceTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point3_d.html">mrpt::math::TPoint3D</a> &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the euclidean distance to a 3D point: </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00190">190</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="af6cebd2b9558f7e6624ef2e8965c4d20"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::getAsVectorVal" ref="af6cebd2b9558f7e6624ef2e8965c4d20" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">vector_double</a> mrpt::poses::CPoseOrPoint::getAsVectorVal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation) </p>

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

</div>
</div>
<a class="anchor" id="af4008d5353e9349be18baeb82d4701e3"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::getHomogeneousMatrixVal" ref="af4008d5353e9349be18baeb82d4701e3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1math.html#a25a1ba39a478a66d24a4ecfb9c585c79">CMatrixDouble44</a> mrpt::poses::CPoseOrPoint::getHomogeneousMatrixVal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation). </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#a573fbc8166aa8c2ee04ff229a178fb10" title="Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose...">getInverseHomogeneousMatrix</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00209">209</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="a573fbc8166aa8c2ee04ff229a178fb10"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::getInverseHomogeneousMatrix" ref="a573fbc8166aa8c2ee04ff229a178fb10" args="(math::CMatrixDouble44 &amp;out_HM) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPoseOrPoint::getInverseHomogeneousMatrix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a25a1ba39a478a66d24a4ecfb9c585c79">math::CMatrixDouble44</a> &amp;&#160;</td>
          <td class="paramname"><em>out_HM</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>getHomogeneousMatrix </dd></dl>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00219">219</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="add70f40f0ead699d706779c07123cd90"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::getInverseHomogeneousMatrix" ref="add70f40f0ead699d706779c07123cd90" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1math.html#a25a1ba39a478a66d24a4ecfb9c585c79">mrpt::math::CMatrixDouble44</a> mrpt::poses::CPoseOrPoint::getInverseHomogeneousMatrix </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00226">226</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_pose_or_point_8h_source.html#l00226">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::getInverseHomogeneousMatrix()</a>.</p>

</div>
</div>
<a class="anchor" id="a4d63d1364f37b48c83d36f4f2e5fb20a"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::is3DPoseOrPoint" ref="a4d63d1364f37b48c83d36f4f2e5fb20a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool mrpt::poses::CPoseOrPoint::is3DPoseOrPoint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return true for poses or points with a Z component, false otherwise. </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00149">149</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_pose_or_point_8h_source.html#l00152">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::sqrDistanceTo()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00179">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance3DToSquare()</a>, and <a class="el" href="_c_pose_or_point_8h_source.html#l00193">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::norm()</a>.</p>

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

<p>Returns the euclidean norm of vector: <img class="formulaInl" alt="$ ||\mathbf{x}|| = \sqrt{x^2+y^2+z^2} $" src="form_70.png"/>. </p>

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

</div>
</div>
<a class="anchor" id="a2b9df9477af343743486cc4811d82357"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::sqrDistanceTo" ref="a2b9df9477af343743486cc4811d82357" args="(const CPoseOrPoint&lt; OTHERCLASS &gt; &amp;b) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class OTHERCLASS &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::sqrDistanceTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_or_point.html">CPoseOrPoint</a>&lt; OTHERCLASS &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the squared euclidean distance to another pose/point: </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00152">152</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_pose_or_point_8h_source.html#l00170">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distanceTo()</a>.</p>

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

<p>Common members of all points &amp; poses classes. </p>
<p>&lt; Get X coord. </p>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00135">135</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

<p>Referenced by <a class="el" href="_c_point2_d_8h_source.html#l00068">mrpt::poses::CPoint2D::CPoint2D()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00152">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::sqrDistanceTo()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00176">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance2DToSquare()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00179">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance3DToSquare()</a>, and <a class="el" href="_c_pose_or_point_8h_source.html#l00193">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::norm()</a>.</p>

</div>
</div>
<a class="anchor" id="ad83a13c613e3a571d38ecf0c5bbaf14e"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::x" ref="ad83a13c613e3a571d38ecf0c5bbaf14e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double&amp; mrpt::poses::CPoseOrPoint::x </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_pose_or_point_8h_source.html#l00138">138</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="abd0edead14bf974e3573635db0649b8b"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::x" ref="abd0edead14bf974e3573635db0649b8b" args="(const double v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPoseOrPoint::x </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>Set X coord. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00141">141</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="a988b5d127feca6fcc17c5fc9c5617a32"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::x_incr" ref="a988b5d127feca6fcc17c5fc9c5617a32" args="(const double v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPoseOrPoint::x_incr </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>X+=v </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00144">144</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="a912d9a0a05f236fdb947b6627e7349ba"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::y" ref="a912d9a0a05f236fdb947b6627e7349ba" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::poses::CPoseOrPoint::y </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>&lt; Get Y coord. </p>

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

<p>Referenced by <a class="el" href="_c_point_8h_source.html#l00134">mrpt::poses::operator&lt;()</a>, <a class="el" href="_c_point2_d_8h_source.html#l00068">mrpt::poses::CPoint2D::CPoint2D()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00152">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::sqrDistanceTo()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00176">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance2DToSquare()</a>, <a class="el" href="_c_pose_or_point_8h_source.html#l00179">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::distance3DToSquare()</a>, and <a class="el" href="_c_pose_or_point_8h_source.html#l00193">mrpt::poses::CPoseOrPoint&lt; DERIVEDCLASS &gt;::norm()</a>.</p>

</div>
</div>
<a class="anchor" id="afc45043b9e86558dac17091787cc8546"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::y" ref="afc45043b9e86558dac17091787cc8546" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double&amp; mrpt::poses::CPoseOrPoint::y </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_pose_or_point_8h_source.html#l00139">139</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.h</a>.</p>

</div>
</div>
<a class="anchor" id="a40f5b89235381d395cf6ed933e3456b4"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::y" ref="a40f5b89235381d395cf6ed933e3456b4" args="(const double v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPoseOrPoint::y </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>Set Y coord. </td></tr>
  </table>
  </dd>
</dl>

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

</div>
</div>
<a class="anchor" id="a2c96d47bfe4f9666bf5816a5d5f030ec"></a><!-- doxytag: member="mrpt::poses::CPoseOrPoint::y_incr" ref="a2c96d47bfe4f9666bf5816a5d5f030ec" args="(const double v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::poses::CPoseOrPoint::y_incr </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>Y+=v </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_pose_or_point_8h_source.html#l00145">145</a> of file <a class="el" href="_c_pose_or_point_8h_source.html">CPoseOrPoint.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>