template class mrpt::poses::CPoint
Overview
A base class for representing a point in 2D or 3D.
For more information refer to the 2D/3D Geometry tutorial online. This class is based on the CRTP design pattern
See also:
#include <mrpt/poses/CPoint.h> template <class DERIVEDCLASS, std::size_t DIM> class CPoint: public mrpt::poses::CPoseOrPoint, public mrpt::Stringifyable { public: // typedefs typedef mrpt::math::CVectorFixedDouble<static_cast<mrpt::math::matrix_dim_t>(DIM)> vector_t; // construction CPoint(); // methods template <class OTHERCLASS> void AddComponents(const OTHERCLASS& b); void operator *= (const double s); template <class MATRIX44> void getHomogeneousMatrix(MATRIX44& out_HM) const; virtual std::string asString() const; void fromString(const std::string& s); double x() const; double y() const; template <class OTHERCLASS, std::size_t DIM2> double sqrDistanceTo(const CPoseOrPoint<OTHERCLASS, DIM2>& b) const; template <class OTHERCLASS, std::size_t DIM2> double distanceTo(const CPoseOrPoint<OTHERCLASS, DIM2>& b) const; double distanceTo(const mrpt::math::TPoint3D& b) const; double distance2DToSquare(double ax, double ay) const; double distance3DToSquare(double ax, double ay, double az) const; double distance2DTo(double ax, double ay) const; double distance3DTo(double ax, double ay, double az) const; double norm() const; vector_t asVectorVal() const; template <class MATRIX44> MATRIX44 getHomogeneousMatrixVal() const; template <class MATRIX44> void getInverseHomogeneousMatrix(MATRIX44& out_HM) const; template <class MATRIX44> MATRIX44 getInverseHomogeneousMatrixVal() const; static bool is3DPoseOrPoint(); }; // direct descendants class CPoint2D; class CPoint3D;
Inherited Members
public: // methods double& x(); double& y(); void x(const double v); void y(const double v); void x_incr(const double v); void y_incr(const double v); CPoseOrPoint& operator = (const CPoseOrPoint&); CPoseOrPoint& operator = (CPoseOrPoint&&); const DERIVEDCLASS& derived() const; DERIVEDCLASS& derived();
Typedefs
typedef mrpt::math::CVectorFixedDouble<static_cast<mrpt::math::matrix_dim_t>(DIM)> vector_t
Fixed-size vector of the correct size to hold all the coordinates of the point/pose.
Methods
template <class OTHERCLASS> void AddComponents(const OTHERCLASS& b)
Scalar addition of all coordinates.
This is different from poses/point composition, which is implemented as “+” operators in classes derived from “CPose”
void operator *= (const double s)
Scalar multiplication.
template <class MATRIX44> void getHomogeneousMatrix(MATRIX44& out_HM) const
Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).
See also:
virtual std::string asString() const
Returns a human-readable textual representation of the object (eg: “[0.02 1.04]” )
See also:
void fromString(const std::string& s)
Set the current object value from a string generated by ‘asString’ (eg: “[0.02 1.04]” )
Parameters:
std::exception |
On invalid format |
See also:
double x() const
Common members of all points & poses classes.
< Get X coord.
double y() const
< Get Y coord.
template <class OTHERCLASS, std::size_t DIM2> double sqrDistanceTo(const CPoseOrPoint<OTHERCLASS, DIM2>& b) const
Returns the squared euclidean distance to another pose/point:
template <class OTHERCLASS, std::size_t DIM2> double distanceTo(const CPoseOrPoint<OTHERCLASS, DIM2>& 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_t asVectorVal() const
Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation)
template <class MATRIX44> MATRIX44 getHomogeneousMatrixVal() const
Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).
See also:
template <class MATRIX44> void getInverseHomogeneousMatrix(MATRIX44& out_HM) const
Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose.
See also:
getHomogeneousMatrix
template <class MATRIX44> MATRIX44 getInverseHomogeneousMatrixVal() const
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
static bool is3DPoseOrPoint()
Return true for poses or points with a Z component, false otherwise.