farm-ng-core
sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl > Class Template Reference

#include <lie_group.h>

Public Types

using Scalar = TScalar
 
using Impl = TGenericImpl< TScalar >
 
template<class TCompatibleScalar >
using ScalarReturn = typename Eigen::ScalarBinaryOpTraits< Scalar, TCompatibleScalar >::ReturnType
 
using Derived = TGenericDerived< Scalar >
 
template<class TCompatibleScalar >
using DerivedReturn = TGenericDerived< ScalarReturn< TCompatibleScalar > >
 
template<class TCompatibleScalar >
using PointReturn = Eigen::Vector< ScalarReturn< TCompatibleScalar >, kPointDim >
 
template<class TCompatibleScalar >
using UnitVectorReturn = UnitVector< ScalarReturn< TCompatibleScalar >, kPointDim >
 
using Tangent = Eigen::Vector< Scalar, kDof >
 
using Params = Eigen::Vector< Scalar, kNumParams >
 
using Point = Eigen::Vector< Scalar, kPointDim >
 

Public Member Functions

 Group ()
 
 Group (Group const &)=default
 
auto operator= (Group const &) -> Group &=default
 
auto log () const -> Tangent
 
auto hasShortestPathAmbiguity () -> bool
 
template<class TCompatibleScalar >
auto operator* (TGenericDerived< TCompatibleScalar > const &rhs) const -> DerivedReturn< TCompatibleScalar >
 
auto operator*= (Derived const &rhs) -> Derived &
 
auto inverse () const -> Derived
 
template<class TMatrixDerived >
auto operator* (Eigen::MatrixBase< TMatrixDerived > const &point) const -> PointReturn< typename TMatrixDerived::Scalar >
 
template<class TCompatibleScalar >
auto operator* (UnitVector< TCompatibleScalar, kPointDim > const &direction_vector) const -> UnitVectorReturn< TCompatibleScalar >
 
auto adj () const -> Eigen::Matrix< Scalar, kDof, kDof >
 
auto leftPlus (Tangent const &tangent) const -> Derived
 
auto rightPlus (Tangent const &tangent) const -> Derived
 
auto leftMinus (Derived const &other) const -> Tangent
 
auto rightMinus (Derived const &other) const -> Tangent
 
auto compactMatrix () const -> Eigen::Matrix< Scalar, kPointDim, kAmbientDim >
 
auto matrix () const -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
 
auto dxThisMulExpXAt0 () const -> Eigen::Matrix< Scalar, kNumParams, kDof >
 
auto dxLogThisInvTimesXAtThis () const -> Eigen::Matrix< Scalar, kDof, kNumParams >
 
auto params () const -> Params const &
 
auto ptr () const
 
auto unsafeMutPtr ()
 
void setParams (Params const &params)
 

Static Public Member Functions

static auto fromParams (Params const &params) -> Derived
 
static auto identity () -> Derived
 
static auto exp (Tangent const &tangent) -> Derived
 
static auto hat (Tangent const &tangent) -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
 
static auto vee (Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim > const &mat) -> Tangent
 
static auto toAmbient (Point const &point)
 
static auto ad (Tangent const &tangent) -> Eigen::Matrix< Scalar, kDof, kDof >
 
static auto dxExpXAt0 () -> Eigen::Matrix< Scalar, kNumParams, kDof >
 
static auto dxExpXTimesPointAt0 (Point const &point) -> Eigen::Matrix< Scalar, kPointDim, kDof >
 
static auto tangentExamples () -> std::vector< Tangent >
 
static auto paramsExamples () -> std::vector< Params >
 
static auto elementExamples () -> std::vector< Derived >
 
static auto invalidParamsExamples () -> std::vector< Params >
 

Static Public Attributes

static constexpr bool kIsOriginPreserving = Impl::kIsOriginPreserving
 
static constexpr bool kIsAxisDirectionPreserving
 
static constexpr bool kIsDirectionVectorPreserving
 
static constexpr bool kIsShapePreserving = Impl::kIsShapePreserving
 
static constexpr bool kIisSizePreserving = Impl::kIisSizePreserving
 
static constexpr bool kIisParallelLinePreserving
 
static constexpr int kDof = Impl::kDof
 
static constexpr int kNumParams = Impl::kNumParams
 
static constexpr int kPointDim = Impl::kPointDim
 
static constexpr int kAmbientDim = Impl::kAmbientDim
 

Protected Member Functions

 Group (UninitTag)
 
auto self () -> Derived &
 
auto self () const -> Derived const &
 
void setParamsUnchecked (Params const &params)
 

Static Protected Member Functions

static auto fromParamsUnchecked (Params const &params) -> Derived
 

Protected Attributes

Params params_
 

Friends

template<template< class > class TOtherGenericDerived, class TOtherScalar , template< class > class TOtherGenericImpl>
class Group
 

Member Typedef Documentation

◆ Derived

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Derived = TGenericDerived<Scalar>

◆ DerivedReturn

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TCompatibleScalar >
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::DerivedReturn = TGenericDerived<ScalarReturn<TCompatibleScalar> >

◆ Impl

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Impl = TGenericImpl<TScalar>

◆ Params

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Params = Eigen::Vector<Scalar, kNumParams>

◆ Point

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Point = Eigen::Vector<Scalar, kPointDim>

◆ PointReturn

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TCompatibleScalar >
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::PointReturn = Eigen::Vector<ScalarReturn<TCompatibleScalar>, kPointDim>

◆ Scalar

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Scalar = TScalar

◆ ScalarReturn

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TCompatibleScalar >
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::ScalarReturn = typename Eigen:: ScalarBinaryOpTraits<Scalar, TCompatibleScalar>::ReturnType

◆ Tangent

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Tangent = Eigen::Vector<Scalar, kDof>

◆ UnitVectorReturn

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TCompatibleScalar >
using sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::UnitVectorReturn = UnitVector<ScalarReturn<TCompatibleScalar>, kPointDim>

Constructor & Destructor Documentation

◆ Group() [1/3]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Group ( )
inline

◆ Group() [2/3]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Group ( Group< TGenericDerived, TScalar, TGenericImpl > const &  )
default

◆ Group() [3/3]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::Group ( UninitTag  )
inlineexplicitprotected

Member Function Documentation

◆ ad()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::ad ( Tangent const &  tangent) -> Eigen::Matrix<Scalar, kDof, kDof>
inlinestatic

◆ adj()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::adj ( ) const -> Eigen::Matrix<Scalar, kDof, kDof>
inline

◆ compactMatrix()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::compactMatrix ( ) const -> Eigen::Matrix<Scalar, kPointDim, kAmbientDim>
inline

◆ dxExpXAt0()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::dxExpXAt0 ( ) -> Eigen::Matrix<Scalar, kNumParams, kDof>
inlinestatic

◆ dxExpXTimesPointAt0()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::dxExpXTimesPointAt0 ( Point const &  point) -> Eigen::Matrix<Scalar, kPointDim, kDof>
inlinestatic

◆ dxLogThisInvTimesXAtThis()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::dxLogThisInvTimesXAtThis ( ) const -> Eigen::Matrix<Scalar, kDof, kNumParams>
inline

◆ dxThisMulExpXAt0()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::dxThisMulExpXAt0 ( ) const -> Eigen::Matrix<Scalar, kNumParams, kDof>
inline

◆ elementExamples()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::elementExamples ( ) -> std::vector<Derived>
inlinestatic

◆ exp()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::exp ( Tangent const &  tangent) -> Derived
inlinestatic

◆ fromParams()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::fromParams ( Params const &  params) -> Derived
inlinestatic

◆ fromParamsUnchecked()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::fromParamsUnchecked ( Params const &  params) -> Derived
inlinestaticprotected

◆ hasShortestPathAmbiguity()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::hasShortestPathAmbiguity ( ) -> bool
inline

◆ hat()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::hat ( Tangent const &  tangent) -> Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim>
inlinestatic

◆ identity()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::identity ( ) -> Derived
inlinestatic

◆ invalidParamsExamples()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::invalidParamsExamples ( ) -> std::vector<Params>
inlinestatic

◆ inverse()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::inverse ( ) const -> Derived
inline

◆ leftMinus()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::leftMinus ( Derived const &  other) const -> Tangent
inline

◆ leftPlus()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::leftPlus ( Tangent const &  tangent) const -> Derived
inline

◆ log()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::log ( ) const -> Tangent
inline

◆ matrix()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::matrix ( ) const -> Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim>
inline

◆ operator*() [1/3]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TMatrixDerived >
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::operator* ( Eigen::MatrixBase< TMatrixDerived > const &  point) const -> PointReturn<typename TMatrixDerived::Scalar>
inline

◆ operator*() [2/3]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TCompatibleScalar >
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::operator* ( TGenericDerived< TCompatibleScalar > const &  rhs) const -> DerivedReturn<TCompatibleScalar>
inline

◆ operator*() [3/3]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<class TCompatibleScalar >
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::operator* ( UnitVector< TCompatibleScalar, kPointDim > const &  direction_vector) const -> UnitVectorReturn<TCompatibleScalar>
inline

◆ operator*=()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::operator*= ( Derived const &  rhs) -> Derived&
inline

◆ operator=()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::operator= ( Group< TGenericDerived, TScalar, TGenericImpl > const &  ) -> Group &=default
default

◆ params()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::params ( ) const -> Params const&
inline

◆ paramsExamples()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::paramsExamples ( ) -> std::vector<Params>
inlinestatic

◆ ptr()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::ptr ( ) const
inline

◆ rightMinus()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::rightMinus ( Derived const &  other) const -> Tangent
inline

◆ rightPlus()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::rightPlus ( Tangent const &  tangent) const -> Derived
inline

◆ self() [1/2]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::self ( ) -> Derived&
inlineprotected

◆ self() [2/2]

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::self ( ) const -> Derived const&
inlineprotected

◆ setParams()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
void sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::setParams ( Params const &  params)
inline

◆ setParamsUnchecked()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
void sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::setParamsUnchecked ( Params const &  params)
inlineprotected

◆ tangentExamples()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::tangentExamples ( ) -> std::vector<Tangent>
inlinestatic

◆ toAmbient()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::toAmbient ( Point const &  point)
inlinestatic

◆ unsafeMutPtr()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::unsafeMutPtr ( )
inline

◆ vee()

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
static auto sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::vee ( Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim > const &  mat) -> Tangent
inlinestatic

Friends And Related Function Documentation

◆ Group

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
template<template< class > class TOtherGenericDerived, class TOtherScalar , template< class > class TOtherGenericImpl>
friend class Group
friend

Member Data Documentation

◆ kAmbientDim

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr int sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kAmbientDim = Impl::kAmbientDim
staticconstexpr

◆ kDof

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr int sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kDof = Impl::kDof
staticconstexpr

◆ kIisParallelLinePreserving

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr bool sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kIisParallelLinePreserving
staticconstexpr
Initial value:
=
Impl::kIisParallelLinePreserving

◆ kIisSizePreserving

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr bool sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kIisSizePreserving = Impl::kIisSizePreserving
staticconstexpr

◆ kIsAxisDirectionPreserving

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr bool sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kIsAxisDirectionPreserving
staticconstexpr
Initial value:
=
Impl::kIsAxisDirectionPreserving

◆ kIsDirectionVectorPreserving

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr bool sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kIsDirectionVectorPreserving
staticconstexpr
Initial value:
=
Impl::kIsDirectionVectorPreserving

◆ kIsOriginPreserving

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr bool sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kIsOriginPreserving = Impl::kIsOriginPreserving
staticconstexpr

◆ kIsShapePreserving

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr bool sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kIsShapePreserving = Impl::kIsShapePreserving
staticconstexpr

◆ kNumParams

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr int sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kNumParams = Impl::kNumParams
staticconstexpr

◆ kPointDim

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
constexpr int sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::kPointDim = Impl::kPointDim
staticconstexpr

◆ params_

template<template< class > class TGenericDerived, class TScalar , template< class > class TGenericImpl>
Params sophus::lie::Group< TGenericDerived, TScalar, TGenericImpl >::params_
protected

The documentation for this class was generated from the following file: