5 #ifndef __pinocchio_lie_group_generic_hpp__ 6 #define __pinocchio_lie_group_generic_hpp__ 8 #include "pinocchio/multibody/liegroup/liegroup-base.hpp" 9 #include "pinocchio/multibody/liegroup/liegroup-variant-visitors.hpp" 13 template<
typename LieGroupCollection>
struct LieGroupGenericTpl;
15 template<
typename LieGroupCollection>
26 template<
typename LieGroupCollection>
28 :
LieGroupBase< LieGroupGenericTpl<LieGroupCollection> >, LieGroupCollection::LieGroupVariant
30 typedef typename LieGroupCollection::LieGroupVariant
Base;
36 template<
typename LieGroupDerived>
38 : Base(lg_base.derived())
41 template<
typename LieGroup>
48 static_cast<Base&
>(*this) = other.
toVariant();
53 {
return static_cast<const LieGroupVariant &
>(*this); }
56 {
return static_cast<LieGroupVariant &
>(*this); }
60 return boost::apply_visitor(visitor::LieGroupEqual<Scalar, Options>(), toVariant(), other.
toVariant());
68 return isEqual_impl(other);
73 return this->isDifferent_impl(other);
78 return LieGroupNameVisitor::run(*
this);
84 #endif // ifndef __pinocchio_lie_group_generic_hpp__ const LieGroupVariant & toVariant() const
int nv(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent space...
int nq(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space...
LieGroupCollection::Scalar Scalar
LieGroupCollection::LieGroupVariant Base
bool operator==(const JointDataBase< JointDataDerived > &joint_data, const JointDataTpl< Scalar, Options, JointCollectionTpl > &joint_data_generic)
LieGroupVariant & toVariant()
LieGroupGenericTpl & operator=(const LieGroupGenericTpl &other)
bool operator!=(const JointDataBase< JointDataDerived > &joint_data, const JointDataTpl< Scalar, Options, JointCollectionTpl > &joint_data_generic)
LieGroupGenericTpl(const LieGroupBase< LieGroupDerived > &lg_base)
Main pinocchio namespace.
Common traits structure to fully define base classes for CRTP.
LieGroupCollection::LieGroupVariant LieGroupVariant
bool isEqual_impl(const LieGroupGenericTpl &other) const
LieGroupCollection::Scalar Scalar
LieGroupGenericTpl(const LieGroupVariant &lg_variant)