template class Eigen::Map<sophus::So3<TScalar> const, kOptions>¶
Overview¶
Specialization of Eigen::Map for So3 const
; derived from So3Base. More…
#include <so3.h> template <class TScalar, int kOptions> class Map<sophus::So3<TScalar> const, kOptions>: public sophus::So3Base { public: // typedefs using Base = sophus::So3Base<Map<sophus::So3<TScalar> const, kOptions>> ; using Scalar = TScalar ; using Transformation = typename Base::Transformation ; using Point = typename Base::Point ; using HomogeneousPoint = typename Base::HomogeneousPoint ; using Tangent = typename Base::Tangent ; using Adjoint = typename Base::Adjoint ; // construction Map(Scalar const* coeffs); // methods SOPHUS_FUNC Map<Eigen::Quaternion<Scalar> const, kOptions> const& unitQuaternion() const; protected: // fields Map<Eigen::Quaternion<Scalar> const, kOptions> unit_quaternion_; };
Inherited Members¶
public: // typedefs using Scalar = typename Eigen::internal::traits<TDerived>::Scalar ; using QuaternionType = typename Eigen::internal::traits<TDerived>::QuaternionType ; using QuaternionTemporaryType = Eigen::Quaternion<Scalar, kOptions> ; using Transformation = Eigen::Matrix<Scalar, kMatrixDim, kMatrixDim> ; using Point = Eigen::Vector3<Scalar> ; using HomogeneousPoint = Eigen::Vector4<Scalar> ; using Line = Eigen::ParametrizedLine<Scalar, 3> ; using Hyperplane = Eigen::Hyperplane<Scalar, 3> ; using Tangent = Eigen::Vector<Scalar, kDoF> ; using Adjoint = Eigen::Matrix<Scalar, kDoF, kDoF> ; using ReturnScalar = typename Eigen::ScalarBinaryOpTraits<Scalar, typename TOtherDerived::Scalar>::ReturnType ; using So3Product = So3<ReturnScalar<TOtherDerived>> ; using PointProduct = Eigen::Vector3<ReturnScalar<TPointDerived>> ; using HomogeneousPointProduct = Eigen::Vector4<ReturnScalar<THPointDerived>> ; // structs struct TangentAndTheta; // fields static constexpr int kOptions = Eigen::internal::traits<TDerived>::kOptions; static constexpr int kDoF = 3; static constexpr int kNumParameters = 4; static constexpr int kMatrixDim = 3; static constexpr int kPointDim = 3; // methods SOPHUS_FUNC Adjoint adj() const; template <class TS = Scalar> SOPHUS_FUNC std::enable_if_t<std::is_floating_point<TS>::value, TS> angleX() const; template <class TS = Scalar> SOPHUS_FUNC std::enable_if_t<std::is_floating_point<TS>::value, TS> angleY() const; template <class TS = Scalar> SOPHUS_FUNC std::enable_if_t<std::is_floating_point<TS>::value, TS> angleZ() const; template <class TNewScalarType> SOPHUS_FUNC So3<TNewScalarType> cast() const; SOPHUS_FUNC Scalar* data(); SOPHUS_FUNC Scalar const* data() const; SOPHUS_FUNC Eigen::Matrix<Scalar, kNumParameters, kDoF> dxThisMulExpXAt0() const; SOPHUS_FUNC Eigen::Matrix<Scalar, kDoF, kNumParameters> dxLogThisInvTimesXAtThis() const; SOPHUS_FUNC Eigen::Vector<Scalar, kNumParameters> params() const; SOPHUS_FUNC So3<Scalar> inverse() const; SOPHUS_FUNC Tangent log() const; SOPHUS_FUNC TangentAndTheta logAndTheta() const; SOPHUS_FUNC void normalize(); SOPHUS_FUNC Transformation matrix() const; template <class TOtherDerived> SOPHUS_FUNC So3Base<TDerived>& operator=(So3Base<TOtherDerived> const& other); template <class TOtherDerived> SOPHUS_FUNC So3Product<TOtherDerived> operator*(So3Base<TOtherDerived> const& other) const; template < typename TPointDerived, typename = typename std::enable_if<IsFixedSizeVector<TPointDerived, 3>::value>::type > SOPHUS_FUNC PointProduct<TPointDerived> operator*(Eigen::MatrixBase<TPointDerived> const& p) const; template < typename THPointDerived, typename = typename std::enable_if<IsFixedSizeVector<THPointDerived, 4>::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 So3Base<TDerived>& operator*=(So3Base<TOtherDerived> const& other); SOPHUS_FUNC void setQuaternion(Eigen::Quaternion<Scalar> const& quaternion); SOPHUS_FUNC QuaternionType const& unitQuaternion() const; template < typename TQuaternionProductType, typename TQuaternionTypeA, typename TQuaternionTypeB > static TQuaternionProductType quaternionProduct( TQuaternionTypeA const& a, TQuaternionTypeB const& b );
Detailed Documentation¶
Specialization of Eigen::Map for So3 const
; derived from So3Base.
Allows us to wrap So3 objects around POD array (e.g. external c style quaternion).
Fields¶
Map<Eigen::Quaternion<Scalar> const, kOptions> unit_quaternion_
Mutator of unit_quaternion is protected to ensure class invariant.
Methods¶
SOPHUS_FUNC Map<Eigen::Quaternion<Scalar> const, kOptions> const& unitQuaternion() const
Accessor of unit quaternion.