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>
 
   14   struct LieGroupGenericTpl;
 
   16   template<
typename LieGroupCollection>
 
   19     typedef typename LieGroupCollection::Scalar Scalar;
 
   22       Options = LieGroupCollection::Options,
 
   28   template<
typename LieGroupCollection>
 
   31   , LieGroupCollection::LieGroupVariant
 
   33     typedef typename LieGroupCollection::LieGroupVariant Base;
 
   34     typedef typename LieGroupCollection::LieGroupVariant LieGroupVariant;
 
   36     typedef typename LieGroupCollection::Scalar Scalar;
 
   39       Options = LieGroupCollection::Options
 
   42     template<
typename LieGroupDerived>
 
   44     : Base(lg_base.derived())
 
   48     template<
typename LieGroup>
 
   57     const LieGroupVariant & toVariant()
 const 
   59       return static_cast<const LieGroupVariant &
>(*this);
 
   62     LieGroupVariant & toVariant()
 
   64       return static_cast<LieGroupVariant &
>(*this);
 
   69       return boost::apply_visitor(
 
   70         visitor::LieGroupEqual<Scalar, Options>(), toVariant(), other.toVariant());
 
   75       return ::pinocchio::nq(*
this);
 
   79       return ::pinocchio::nv(*
this);
 
   84       return isEqual_impl(other);
 
   89       return this->isDifferent_impl(other);
 
   92     std::string name()
 const 
   94       return LieGroupNameVisitor::run(*
this);
 
Main pinocchio namespace.
 
Common traits structure to fully define base classes for CRTP.