template class mrpt::poses::CPose

Overview

A base class for representing a pose 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:

CPoseOrPoint, CPoint

#include <mrpt/poses/CPose.h>

template <class DERIVEDCLASS, std::size_t DIM>
class CPose: public mrpt::poses::CPoseOrPoint
{
};

// direct descendants

class CPose2D;
class CPose3D;
class CPose3DQuat;

Inherited Members

public:
    // typedefs

    typedef mrpt::math::CVectorFixedDouble<static_cast<mrpt::math::matrix_dim_t>(DIM)> vector_t;

    // methods

    double x() const;
    double y() const;
    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);

    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 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 distanceTo(const mrpt::math::TPoint3D& b) 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();
    CPoseOrPoint& operator = (const CPoseOrPoint&);
    CPoseOrPoint& operator = (CPoseOrPoint&&);
    const DERIVEDCLASS& derived() const;
    DERIVEDCLASS& derived();