5 #ifndef __pinocchio_joint_collection_hpp__ 6 #define __pinocchio_joint_collection_hpp__ 8 #include "pinocchio/multibody/joint/fwd.hpp" 9 #include "pinocchio/multibody/joint/joints.hpp" 11 #include <boost/variant.hpp> 12 #include <boost/variant/recursive_wrapper.hpp> 17 template<
typename _Scalar,
int _Options>
18 struct JointCollectionDefaultTpl
20 typedef _Scalar Scalar;
21 enum { Options = _Options };
24 typedef JointModelRevoluteTpl<Scalar,Options,0> JointModelRX;
25 typedef JointModelRevoluteTpl<Scalar,Options,1> JointModelRY;
26 typedef JointModelRevoluteTpl<Scalar,Options,2> JointModelRZ;
29 typedef JointModelRevoluteUnalignedTpl<Scalar,Options> JointModelRevoluteUnaligned;
32 typedef JointModelRevoluteUnboundedTpl<Scalar,Options,0> JointModelRUBX;
33 typedef JointModelRevoluteUnboundedTpl<Scalar,Options,1> JointModelRUBY;
34 typedef JointModelRevoluteUnboundedTpl<Scalar,Options,2> JointModelRUBZ;
37 typedef JointModelPrismaticTpl<Scalar,Options,0> JointModelPX;
38 typedef JointModelPrismaticTpl<Scalar,Options,1> JointModelPY;
39 typedef JointModelPrismaticTpl<Scalar,Options,2> JointModelPZ;
42 typedef JointModelPrismaticUnalignedTpl<Scalar,Options> JointModelPrismaticUnaligned;
45 typedef JointModelSphericalTpl<Scalar,Options> JointModelSpherical;
48 typedef JointModelSphericalZYXTpl<Scalar,Options> JointModelSphericalZYX;
51 typedef JointModelTranslationTpl<Scalar,Options> JointModelTranslation;
54 typedef JointModelFreeFlyerTpl<Scalar,Options> JointModelFreeFlyer;
57 typedef JointModelPlanarTpl<Scalar,Options> JointModelPlanar;
60 typedef JointModelCompositeTpl<Scalar,Options,::pinocchio::JointCollectionDefaultTpl> JointModelComposite;
62 typedef boost::variant<
64 JointModelRX, JointModelRY, JointModelRZ
65 , JointModelFreeFlyer, JointModelPlanar
66 , JointModelRevoluteUnaligned
67 , JointModelSpherical, JointModelSphericalZYX
68 , JointModelPX, JointModelPY, JointModelPZ
69 , JointModelPrismaticUnaligned
70 , JointModelTranslation
71 , JointModelRUBX, JointModelRUBY, JointModelRUBZ
72 , boost::recursive_wrapper<JointModelComposite>
77 typedef JointDataRevoluteTpl<Scalar,Options,0> JointDataRX;
78 typedef JointDataRevoluteTpl<Scalar,Options,1> JointDataRY;
79 typedef JointDataRevoluteTpl<Scalar,Options,2> JointDataRZ;
82 typedef JointDataRevoluteUnalignedTpl<Scalar,Options> JointDataRevoluteUnaligned;
85 typedef JointDataRevoluteUnboundedTpl<Scalar,Options,0> JointDataRUBX;
86 typedef JointDataRevoluteUnboundedTpl<Scalar,Options,1> JointDataRUBY;
87 typedef JointDataRevoluteUnboundedTpl<Scalar,Options,2> JointDataRUBZ;
90 typedef JointDataPrismaticTpl<Scalar,Options,0> JointDataPX;
91 typedef JointDataPrismaticTpl<Scalar,Options,1> JointDataPY;
92 typedef JointDataPrismaticTpl<Scalar,Options,2> JointDataPZ;
95 typedef JointDataPrismaticUnalignedTpl<Scalar,Options> JointDataPrismaticUnaligned;
98 typedef JointDataSphericalTpl<Scalar,Options> JointDataSpherical;
101 typedef JointDataSphericalZYXTpl<Scalar,Options> JointDataSphericalZYX;
104 typedef JointDataTranslationTpl<Scalar,Options> JointDataTranslation;
107 typedef JointDataFreeFlyerTpl<Scalar,Options> JointDataFreeFlyer;
110 typedef JointDataPlanarTpl<Scalar,Options> JointDataPlanar;
113 typedef JointDataCompositeTpl<Scalar,Options,::pinocchio::JointCollectionDefaultTpl> JointDataComposite;
115 typedef boost::variant<
117 JointDataRX, JointDataRY, JointDataRZ
118 , JointDataFreeFlyer, JointDataPlanar
119 , JointDataRevoluteUnaligned
120 , JointDataSpherical, JointDataSphericalZYX
121 , JointDataPX, JointDataPY, JointDataPZ
122 , JointDataPrismaticUnaligned
123 , JointDataTranslation
124 , JointDataRUBX, JointDataRUBY, JointDataRUBZ
125 , boost::recursive_wrapper<JointDataComposite>
130 typedef JointCollectionDefault::JointModelVariant JointModelVariant;
131 typedef JointCollectionDefault::JointDataVariant JointDataVariant;
135 #endif // ifndef __pinocchio_joint_collection_hpp__ Main pinocchio namespace.