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

Overview

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

#include <cartesian.h>

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

    using Base = sophus::CartesianBase<Map<sophus::Cartesian<TScalar, kM> const, 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 const* coeffs);

    // methods

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

protected:
    // fields

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

Inherited Members

public:
    // typedefs

    using Scalar = typename Eigen::internal::traits<TDerived>::Scalar ;
    using ParamsType = typename Eigen::internal::traits<TDerived>::ParamsType ;
    using Transformation = Eigen::Matrix<Scalar, kMatrixDim, kMatrixDim> ;
    using Point = Eigen::Vector<Scalar, kM> ;
    using HomogeneousPoint = Eigen::Vector<Scalar, kMatrixDim> ;
    using Line = Eigen::ParametrizedLine<Scalar, kM> ;
    using Hyperplane = Eigen::Hyperplane<Scalar, kM> ;
    using Tangent = Eigen::Vector<Scalar, kDoF> ;
    using Adjoint = Eigen::Matrix<Scalar, kDoF, kDoF> ;
    using ReturnScalar = typename Eigen::ScalarBinaryOpTraits<Scalar, typename TOtherDerived::Scalar>::ReturnType ;
    using CartesianSum = Cartesian<ReturnScalar<TOtherDerived>, kM> ;
    using PointProduct = Eigen::Vector<ReturnScalar<TPointDerived>, kM> ;
    using HomogeneousPointProduct = Eigen::Vector<ReturnScalar<THPointDerived>, kMatrixDim> ;

    // fields

    static constexpr int kDoF = kM;
    static constexpr int kNumParameters = kM;
    static constexpr int kMatrixDim = kM + 1;
    static constexpr int kPointDim = kM;

    // methods

    SOPHUS_FUNC Adjoint adj() const;

    template <class TNewScalarType>
    SOPHUS_FUNC Cartesian<TNewScalarType, kM> cast() const;

    SOPHUS_FUNC Eigen::Matrix<Scalar, kNumParameters, kDoF> dxThisMulExpXAt0() const;
    SOPHUS_FUNC Eigen::Matrix<Scalar, kNumParameters, kDoF> dxLogThisInvTimesXAtThis() const;
    SOPHUS_FUNC Cartesian<Scalar, kM> inverse() const;
    SOPHUS_FUNC Tangent log() const;
    SOPHUS_FUNC Transformation matrix() const;

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

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

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

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

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

    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);

    SOPHUS_FUNC ParamsType& params();
    SOPHUS_FUNC ParamsType const& params() const;

Detailed Documentation

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

Allows us to wrap Cartesian objects around POD array.

Methods

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

Accessor of params vector.