Template Struct BundleBase

Inheritance Relationships

Base Type

Struct Documentation

template<typename _Derived>
struct BundleBase : public manif::LieGroupBase<_Derived>

The base class of the Bundle group.

Public Types

using Elements = typename internal::traits<_Derived>::Elements
template<int Idx>
using Element = typename internal::traits<_Derived>::template Element<Idx>
template<int Idx>
using MapElement = typename internal::traits<_Derived>::template MapElement<Idx>
template<int Idx>
using MapConstElement = typename internal::traits<_Derived>::template MapConstElement<Idx>
using Transformation = typename internal::traits<_Derived>::Transformation

Public Functions

template<int... _Idx>
BundleBase<_Derived>::Vector act_impl(const typename BundleBase<_Derived>::Vector &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, Dim, DoF>>> J_vout_m, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, Dim, Dim>>> J_vout_v, internal::intseq<_Idx...>) const
template<int _Idx>
auto element() -> MapElement<_Idx>
template<int _Idx>
auto element() const -> MapConstElement<_Idx>
DataType &coeffs()

Access the underlying data by const reference.

const DataType &coeffs() const

Access the underlying data by const reference.

Public Static Attributes

static constexpr std::size_t BundleSize = internal::traits<_Derived>::BundleSize

Number of elements in bundle.

Protected Functions

MANIF_DEFAULT_CONSTRUCTOR(BundleBase) public Tangent log (OptJacobianRef J_t_m={}) const

Get the inverse of this.

Get the corresponding Lie algebra element.

Parameters:
  • -optional-[out] J_minv_m Jacobian of the inverse wrt this.

  • -optional-[out] J_t_m Jacobian of the tangent wrt to this.

Returns:

The tangent of this.

MANIF_DEPRECATED Tangent lift (OptJacobianRef J_t_m={}) const

This function is deprecated. Please consider using log instead.

template<typename _DerivedOther>
LieGroup compose(const LieGroupBase<_DerivedOther> &m, OptJacobianRef J_mc_ma = {}, OptJacobianRef J_mc_mb = {}) const

Composition of this and another Bundle element.

Parameters:
  • m[in] Another Bundle element.

  • -optional-[out] J_mc_ma Jacobian of the composition wrt this.

  • -optional-[out] J_mc_mb Jacobian of the composition wrt m.

Returns:

The composition of ‘this . m’.

Vector act(const Vector &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, Dim, DoF>>> J_vout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, Dim, Dim>>> J_vout_v = {}) const

Bundle group action.

Parameters:
  • v – vector.

  • -optional-[out] J_vout_m The Jacobian of the new object wrt this.

  • -optional-[out] J_vout_v The Jacobian of the new object wrt input object.

Returns:

The translated vector.

Jacobian adj() const

Get the adjoint matrix at this.

Transformation transform() const

Get the element-diagonal transformation matrix.

template<int _Idx>
MapElement<_Idx> element()

Access Bundle element as Map.

Template Parameters:

_Idx – element index

template<int _Idx>
MapConstElement<_Idx> element() const

Access Bundle element as Map to const.

Template Parameters:

_Idx – element index

template<int... _Idx>
LieGroup inverse_impl(OptJacobianRef, internal::intseq<_Idx...>) const
template<int... _Idx>
Tangent log_impl(OptJacobianRef, internal::intseq<_Idx...>) const
template<typename _DerivedOther, int... _Idx>
LieGroup compose_impl(const LieGroupBase<_DerivedOther> &m, OptJacobianRef J_mc_ma, OptJacobianRef J_mc_mb, internal::intseq<_Idx...>) const
template<int... _Idx>
Vector act_impl(const Vector &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, Dim, DoF>>> J_vout_m, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, Dim, Dim>>> J_vout_v, internal::intseq<_Idx...>) const
template<int... _Idx>
Jacobian adj_impl(internal::intseq<_Idx...>) const
template<int... _Idx>
Transformation transform_impl(internal::intseq<_Idx...>) const
inline _Derived &derived() & noexcept
inline const _Derived &derived() const & noexcept