Main MRPT website > C++ reference
MRPT logo
List of all members
mrpt::poses::CPoint< DERIVEDCLASS > Class Template Reference

Detailed Description

template<class DERIVEDCLASS>
class mrpt::poses::CPoint< DERIVEDCLASS >

A base class for representing a point in 2D or 3D.

For more information refer to the 2D/3D Geometry tutorial online.

Note
This class is based on the CRTP design pattern
See Also
CPoseOrPoint, CPose

Definition at line 44 of file CPoint.h.

#include <mrpt/poses/CPoint.h>

Inheritance diagram for mrpt::poses::CPoint< DERIVEDCLASS >:
Inheritance graph
[legend]

Public Member Functions

Methods common to all 2D or 3D points
template<class OTHERCLASS >
void AddComponents (const OTHERCLASS &b)
 Scalar addition of all coordinates.
 
void operator*= (const double s)
 Scalar multiplication.
 
void getAsVector (vector_double &v) const
 Return the pose or point as a 1x2 or 1x3 vector [x y] or [x y z].
 
vector_double getAsVector () const
 
void getHomogeneousMatrix (CMatrixDouble44 &out_HM) const
 Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).
 
void asString (std::string &s) const
 Returns a human-readable textual representation of the object (eg: "[0.02 1.04]" )
 
std::string asString () const
 
void fromString (const std::string &s)
 Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04]" )
 
const double & operator[] (unsigned int i) const
 
double & operator[] (unsigned int i)
 
double x () const
 Common members of all points & poses classes.
 
double & x ()
 
void x (const double v)
 
double y () const
 
double & y ()
 
void y (const double v)
 
void x_incr (const double v)
 
void y_incr (const double v)
 
template<class OTHERCLASS >
double sqrDistanceTo (const CPoseOrPoint< OTHERCLASS > &b) const
 Returns the squared euclidean distance to another pose/point:
 
template<class OTHERCLASS >
double distanceTo (const CPoseOrPoint< OTHERCLASS > &b) const
 Returns the Euclidean distance to another pose/point:
 
double distanceTo (const mrpt::math::TPoint3D &b) const
 Returns the euclidean distance to a 3D point:
 
double distance2DToSquare (double ax, double ay) const
 Returns the squared 2D distance from this pose/point to a 2D point (ignores Z, if it exists).
 
double distance3DToSquare (double ax, double ay, double az) const
 Returns the squared 3D distance from this pose/point to a 3D point.
 
double distance2DTo (double ax, double ay) const
 Returns the 2D distance from this pose/point to a 2D point (ignores Z, if it exists).
 
double distance3DTo (double ax, double ay, double az) const
 Returns the 3D distance from this pose/point to a 3D point.
 
double norm () const
 Returns the euclidean norm of vector: $ ||\mathbf{x}|| = \sqrt{x^2+y^2+z^2} $.
 
vector_double getAsVectorVal () const
 Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation)
 
CMatrixDouble44 getHomogeneousMatrixVal () const
 Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).
 
void getInverseHomogeneousMatrix (math::CMatrixDouble44 &out_HM) const
 Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose.
 
mrpt::math::CMatrixDouble44 getInverseHomogeneousMatrix () const
 
static bool is3DPoseOrPoint ()
 Return true for poses or points with a Z component, false otherwise.
 

Member Function Documentation

template<class DERIVEDCLASS>
template<class OTHERCLASS >
void mrpt::poses::CPoint< DERIVEDCLASS >::AddComponents ( const OTHERCLASS &  b)
inline

Scalar addition of all coordinates.

This is diferent from poses/point composition, which is implemented as "+" operators in classes derived from "CPose"

Definition at line 54 of file CPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoint< DERIVEDCLASS >::asString ( std::string &  s) const
inline

Returns a human-readable textual representation of the object (eg: "[0.02 1.04]" )

See Also
fromString

Definition at line 93 of file CPoint.h.

template<class DERIVEDCLASS>
std::string mrpt::poses::CPoint< DERIVEDCLASS >::asString ( ) const
inline

Definition at line 99 of file CPoint.h.

Referenced by mrpt::poses::CPoint< CPoint3D >::asString().

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::distance2DTo ( double  ax,
double  ay 
) const
inlineinherited

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

Definition at line 184 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::distance2DToSquare ( double  ax,
double  ay 
) const
inlineinherited

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

Definition at line 176 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::distance3DTo ( double  ax,
double  ay,
double  az 
) const
inlineinherited

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

Definition at line 187 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::distance3DToSquare ( double  ax,
double  ay,
double  az 
) const
inlineinherited

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

Definition at line 179 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
template<class OTHERCLASS >
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::distanceTo ( const CPoseOrPoint< OTHERCLASS > &  b) const
inlineinherited

Returns the Euclidean distance to another pose/point:

Definition at line 170 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::distanceTo ( const mrpt::math::TPoint3D b) const
inlineinherited

Returns the euclidean distance to a 3D point:

Definition at line 190 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoint< DERIVEDCLASS >::fromString ( const std::string &  s)
inline

Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04]" )

See Also
asString
Exceptions
std::exceptionOn invalid format

Definition at line 105 of file CPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoint< DERIVEDCLASS >::getAsVector ( vector_double v) const
inline

Return the pose or point as a 1x2 or 1x3 vector [x y] or [x y z].

Definition at line 69 of file CPoint.h.

template<class DERIVEDCLASS>
vector_double mrpt::poses::CPoint< DERIVEDCLASS >::getAsVector ( ) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 76 of file CPoint.h.

Referenced by mrpt::poses::CPoint< CPoint3D >::getAsVector().

template<class DERIVEDCLASS>
vector_double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::getAsVectorVal ( ) const
inlineinherited

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

Definition at line 199 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoint< DERIVEDCLASS >::getHomogeneousMatrix ( CMatrixDouble44 &  out_HM) const
inline

Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).

See Also
getInverseHomogeneousMatrix

Definition at line 81 of file CPoint.h.

template<class DERIVEDCLASS>
CMatrixDouble44 mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::getHomogeneousMatrixVal ( ) const
inlineinherited

Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).

See Also
getInverseHomogeneousMatrix

Definition at line 209 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::getInverseHomogeneousMatrix ( math::CMatrixDouble44 out_HM) const
inlineinherited

Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose.

See Also
getHomogeneousMatrix

Definition at line 219 of file CPoseOrPoint.h.

Referenced by mrpt::poses::CPose< DERIVEDCLASS >::operator-().

template<class DERIVEDCLASS>
mrpt::math::CMatrixDouble44 mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::getInverseHomogeneousMatrix ( ) const
inlineinherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 226 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
static bool mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::is3DPoseOrPoint ( )
inlinestaticinherited

Return true for poses or points with a Z component, false otherwise.

Definition at line 149 of file CPoseOrPoint.h.

Referenced by mrpt::poses::CPoseOrPoint< CPoint3D >::sqrDistanceTo().

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::norm ( ) const
inlineinherited

Returns the euclidean norm of vector: $ ||\mathbf{x}|| = \sqrt{x^2+y^2+z^2} $.

Definition at line 193 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoint< DERIVEDCLASS >::operator*= ( const double  s)
inline

Scalar multiplication.

Definition at line 62 of file CPoint.h.

template<class DERIVEDCLASS>
const double& mrpt::poses::CPoint< DERIVEDCLASS >::operator[] ( unsigned int  i) const
inline

Definition at line 115 of file CPoint.h.

template<class DERIVEDCLASS>
double& mrpt::poses::CPoint< DERIVEDCLASS >::operator[] ( unsigned int  i)
inline

Definition at line 116 of file CPoint.h.

template<class DERIVEDCLASS>
template<class OTHERCLASS >
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::sqrDistanceTo ( const CPoseOrPoint< OTHERCLASS > &  b) const
inlineinherited

Returns the squared euclidean distance to another pose/point:

Definition at line 152 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::x ( ) const
inlineinherited
template<class DERIVEDCLASS>
double& mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::x ( )
inlineinherited

Definition at line 138 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::x ( const double  v)
inlineinherited
Parameters
vSet X coord.

Definition at line 141 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::x_incr ( const double  v)
inlineinherited
Parameters
vX+=v

Definition at line 144 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
double mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::y ( ) const
inlineinherited
template<class DERIVEDCLASS>
double& mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::y ( )
inlineinherited

Definition at line 139 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::y ( const double  v)
inlineinherited
Parameters
vSet Y coord.

Definition at line 142 of file CPoseOrPoint.h.

template<class DERIVEDCLASS>
void mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::y_incr ( const double  v)
inlineinherited
Parameters
vY+=v

Definition at line 145 of file CPoseOrPoint.h.




Page generated by Doxygen 1.8.3 for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013