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

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;

Base classes

template<typename _Derived>
struct BundleBase<Bundle<_Scalar, _T ...>>
The base class of the Bundle group.

Public types

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

Public static variables

static std::size_t BundleSize constexpr
Number of elements in bundle.

Constructors, destructors, conversion operators

~Bundle() defaulted
template<typename _DerivedOther>
Bundle(const LieGroupBase<_DerivedOther>& o)
Bundle(const _T<_Scalar>&... elements)
Construct from Bundle elements.
template<int ... _Idx>
Bundle(internal::intseq<_Idx...>, const _T<_Scalar>&... elements) protected

Public functions

auto Bundle() -> MANIF_MAKE_ALIGNED_OPERATOR_NEW_COND MANIF_COMPLETE_GROUP_TYPEDEF MANIF_INHERIT_GROUP_API defaulted
auto coeffs() -> DataType&
Get a reference to the underlying DataType.
auto coeffs() const -> const DataType&
Get a const reference to the underlying DataType.

Protected variables

DataType data_
Underlying data (Eigen) vector.