Go to the documentation of this file.
15 SOPHUS_ENUM(ManifoldPlusType, (left_plus, right_plus));
17 template <concepts::LieGroup TGroup, ManifoldPlusType kPlus>
22 using Scalar =
typename TGroup::Scalar;
23 static int constexpr
kDof = TGroup::kDof;
46 if constexpr (kPlus == ManifoldPlusType::left_plus) {
47 return group.leftPlus(a);
49 return group.rightPlus(a);
55 if constexpr (kPlus == ManifoldPlusType::left_plus) {
56 return group.leftMinus(h.group);
58 return group.rightMinus(h.group);
63 return Group::tangentExamples();
68 template <concepts::Range TSequenceContainer>
69 static auto average(TSequenceContainer
const& range)
70 -> std::optional<GroupManifold> {
71 std::vector<Group> groups;
72 for (
auto const& m : range) {
73 groups.push_back(m.group);
86 template <concepts::LieGroup TGroup>
89 template <concepts::LieGroup TGroup>
typename Group::Params Params
Definition: group_manifold.h:21
auto average(TSequenceContainer const &foo_from_bar_transforms) -> std::enable_if_t< std::is_same< typename TSequenceContainer::value_type, Translation< TScalar, kPointDim > >::value, std::optional< typename TSequenceContainer::value_type > >
Definition: average.h:81
Definition: group_manifold.h:18
auto setParams(Params const ¶ms) -> void
Definition: group_manifold.h:38
Group group
Definition: group_manifold.h:83
auto oplus(Tangent const &a) const -> GroupManifold
Definition: group_manifold.h:45
auto params() const -> Params const &
Definition: group_manifold.h:66
Image MutImage, owning images types.
Definition: num_diff.h:20
static constexpr int kNumParams
Definition: group_manifold.h:24
static auto fromParams(Params const ¶ms) -> GroupManifold
Definition: group_manifold.h:34
auto ominus(GroupManifold const &h) const -> Tangent
Definition: group_manifold.h:54
static auto tangentExamples() -> std::vector< Tangent >
Definition: group_manifold.h:62
auto unsafeMutPtr() -> Scalar *
Definition: group_manifold.h:40
typename TGroup::Tangent Tangent
Definition: group_manifold.h:20
GroupManifold(Group const &g)
Definition: group_manifold.h:32
static constexpr int kDof
Definition: group_manifold.h:23
static auto average(TSequenceContainer const &range) -> std::optional< GroupManifold >
Definition: group_manifold.h:69
concept Tangent
Definition: params.h:34
SOPHUS_ENUM(NumberType,(fixed_point, floating_point))
typename TGroup::Scalar Scalar
Definition: group_manifold.h:22
GroupManifold & operator=(GroupManifold const &g)=default
auto ptr() -> Scalar const *
Definition: group_manifold.h:42
TGroup Group
Definition: group_manifold.h:19
concept Params
Definition: params.h:41