Template Struct Bundle

Inheritance Relationships

Base Type

Struct Documentation

template<typename _Scalar, template<typename> class ..._T>
struct Bundle : public manif::BundleBase<Bundle<_Scalar, _T...>>

Represents a Bundle (or Composite) element as described in Section IV of the reference paper (see also Example 7).

A Bundle <G1, …, Gn> of Lie groups can be utilized as a single group with element-wise operations. This can be convenient when working with aggregate states that consist of multiple Lie group sub-states, like the example in Section VIIb of the reference paper.

Example: create an element of the composite <SO3, E3, E3> using double as the scalar type.

Bundle<double, SO3, R3, R3> element;

Public Types

template<int Idx>
using Element = typename Base::template Element<Idx>

Public Functions

MANIF_MAKE_ALIGNED_OPERATOR_NEW_COND MANIF_COMPLETE_GROUP_TYPEDEF MANIF_INHERIT_GROUP_API Bundle ()=default
~Bundle() = default
MANIF_COPY_CONSTRUCTOR (Bundle) MANIF_MOVE_CONSTRUCTOR(Bundle) template< typename _DerivedOther > Bundle(const LieGroupBase< _DerivedOther > &o)
MANIF_GROUP_ASSIGN_OP (Bundle) DataType &coeffs()

Get a reference to the underlying DataType.

Parameters:

a[out] reference to the underlying Eigen vector

const DataType &coeffs() const

Get a const reference to the underlying DataType.

Parameters:

a[out] const reference to the underlying Eigen vector

Bundle(const _T<_Scalar>&... elements)

Construct from Bundle elements.

template<typename _DerivedOther>
Bundle(const LieGroupBase<_DerivedOther> &o)

Public Static Attributes

static constexpr std::size_t BundleSize

Number of elements in bundle.

Protected Functions

template<int... _Idx>
Bundle(internal::intseq<_Idx...>, const _T<_Scalar>&... elements)

Protected Attributes

DataType data_

Underlying data (Eigen) vector.