template class Eigen::Map<sophus::Cartesian<TScalar, kM>, kOptions>

Overview

Specialization of Eigen::Map for Cartesian; derived from CartesianBase. More…

#include <cartesian.h>

template <class TScalar, int kM, int kOptions>
class Map<sophus::Cartesian<TScalar, kM>, kOptions>: public sophus:: CartesianBase< Map< sophus::Cartesian< TScalar, kM >, kOptions >, kM > {
public:
    // typedefs

    using Base = sophus::CartesianBase<Map<sophus::Cartesian<TScalar, kM>, kOptions>, kM> ;
    using Scalar = TScalar ;
    using Transformation = typename Base::Transformation ;
    using Point = typename Base::Point ;
    using HomogeneousPoint = typename Base::HomogeneousPoint ;
    using Tangent = typename Base::Tangent ;

    // construction

    Map(Scalar* coeffs);

    // methods

    SOPHUS_FUNC Map<Eigen::Vector<Scalar, kM>, kOptions>& params();
    SOPHUS_FUNC Map<Eigen::Vector<Scalar, kM>, kOptions> const& params() const;

    template <class TOtherDerived>
    SOPHUS_FUNC CartesianBase<TDerived, kM>& operator=(CartesianBase<TOtherDerived, kM> const& other);

    template <
        typename TOtherDerived,
        typename = typename std::enable_if<std::is_same<Scalar, ReturnScalar<TOtherDerived>>::value>::type
        >
    SOPHUS_FUNC CartesianBase<TDerived, kM>& operator*=(CartesianBase<TOtherDerived, kM> const& other);

    template <class TOtherDerived>
    SOPHUS_FUNC CartesianSum<TOtherDerived> operator*(CartesianBase<TOtherDerived, kM> const& other);

    template <
        typename TPointDerived,
        typename = typename std::enable_if<IsFixedSizeVector<TPointDerived, kM>::value>::type
        >
    SOPHUS_FUNC PointProduct<TPointDerived> operator*(Eigen::MatrixBase<TPointDerived> const& p);

    template <
        typename THPointDerived,
        typename = typename std::enable_if<IsFixedSizeVector<THPointDerived, kMatrixDim>::value>::type
        >
    SOPHUS_FUNC HomogeneousPointProduct<THPointDerived> operator*(Eigen::MatrixBase<THPointDerived> const& p);

    SOPHUS_FUNC Line operator*(Line const& l);
    SOPHUS_FUNC Hyperplane operator*(Hyperplane const& p);

protected:
    // fields

    Map<Eigen::Vector<Scalar, kM>, kOptions> params_;
};

Detailed Documentation

Specialization of Eigen::Map for Cartesian; derived from CartesianBase.

Allows us to wrap Cartesian objects around POD array.

Methods

SOPHUS_FUNC Map<Eigen::Vector<Scalar, kM>, kOptions>& params()

Mutator of params vector.

SOPHUS_FUNC Map<Eigen::Vector<Scalar, kM>, kOptions> const& params() const

Accessor of params vector.

template <class TOtherDerived>
SOPHUS_FUNC CartesianBase<TDerived, kM>& operator=(CartesianBase<TOtherDerived, kM> const& other)

Group multiplication, are vector additions.

template <
    typename TOtherDerived,
    typename = typename std::enable_if<std::is_same<Scalar, ReturnScalar<TOtherDerived>>::value>::type
    >
SOPHUS_FUNC CartesianBase<TDerived, kM>& operator*=(CartesianBase<TOtherDerived, kM> const& other)

In-place group multiplication. This method is only valid if the return type of the multiplication is compatible with this Cartesian’s Scalar type.

template <class TOtherDerived>
SOPHUS_FUNC CartesianSum<TOtherDerived> operator*(CartesianBase<TOtherDerived, kM> const& other)

Group multiplication, are vector additions.

template <
    typename TPointDerived,
    typename = typename std::enable_if<IsFixedSizeVector<TPointDerived, kM>::value>::type
    >
SOPHUS_FUNC PointProduct<TPointDerived> operator*(Eigen::MatrixBase<TPointDerived> const& p)

Group action on points, again just vector addition.

template <
    typename THPointDerived,
    typename = typename std::enable_if<IsFixedSizeVector<THPointDerived, kMatrixDim>::value>::type
    >
SOPHUS_FUNC HomogeneousPointProduct<THPointDerived> operator*(Eigen::MatrixBase<THPointDerived> const& p)

Group action on homogeneous points. See above for more details.

SOPHUS_FUNC Line operator*(Line const& l)

Group action on lines.

SOPHUS_FUNC Hyperplane operator*(Hyperplane const& p)

Group action on planes.