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>
18 typedef typename LieGroupCollection::Scalar Scalar;
20 Options = LieGroupCollection::Options,
26 template<
typename LieGroupCollection>
28 :
LieGroupBase< LieGroupGenericTpl<LieGroupCollection> >, LieGroupCollection::LieGroupVariant
30 typedef typename LieGroupCollection::LieGroupVariant Base;
31 typedef typename LieGroupCollection::LieGroupVariant LieGroupVariant;
33 typedef typename LieGroupCollection::Scalar Scalar;
34 enum { Options = LieGroupCollection::Options };
36 template<
typename LieGroupDerived>
38 : Base(lg_base.derived())
41 template<
typename LieGroup>
46 const LieGroupVariant & toVariant()
const 47 {
return static_cast<const LieGroupVariant &
>(*this); }
49 LieGroupVariant & toVariant()
50 {
return static_cast<LieGroupVariant &
>(*this); }
52 int nq()
const { return ::pinocchio::nq(*
this); }
53 int nv()
const { return ::pinocchio::nv(*
this); }
58 #endif // ifndef __pinocchio_lie_group_generic_hpp__ 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...
Main pinocchio namespace.
Common traits structure to fully define base classes for CRTP.