Program Listing for File joint-collection.hpp
↰ Return to documentation for file (include/pinocchio/multibody/joint/joint-collection.hpp
)
//
// Copyright (c) 2018-2019 CNRS INRIA
//
#ifndef __pinocchio_joint_collection_hpp__
#define __pinocchio_joint_collection_hpp__
#include "pinocchio/multibody/joint/fwd.hpp"
#include "pinocchio/multibody/joint/joints.hpp"
#include <boost/variant.hpp>
#include <boost/variant/recursive_wrapper.hpp>
namespace pinocchio
{
template<typename _Scalar, int _Options>
struct JointCollectionDefaultTpl
{
typedef _Scalar Scalar;
enum { Options = _Options };
// Joint Revolute
typedef JointModelRevoluteTpl<Scalar,Options,0> JointModelRX;
typedef JointModelRevoluteTpl<Scalar,Options,1> JointModelRY;
typedef JointModelRevoluteTpl<Scalar,Options,2> JointModelRZ;
typedef JointModelMimic<JointModelRX> JointModelMimicRX;
typedef JointModelMimic<JointModelRY> JointModelMimicRY;
typedef JointModelMimic<JointModelRZ> JointModelMimicRZ;
// Joint Revolute Unaligned
typedef JointModelRevoluteUnalignedTpl<Scalar,Options> JointModelRevoluteUnaligned;
// Joint Revolute UBounded
typedef JointModelRevoluteUnboundedTpl<Scalar,Options,0> JointModelRUBX;
typedef JointModelRevoluteUnboundedTpl<Scalar,Options,1> JointModelRUBY;
typedef JointModelRevoluteUnboundedTpl<Scalar,Options,2> JointModelRUBZ;
// Joint Revolute Unbounded Unaligned
typedef JointModelRevoluteUnboundedUnalignedTpl<Scalar,Options> JointModelRevoluteUnboundedUnaligned;
// Joint Prismatic
typedef JointModelPrismaticTpl<Scalar,Options,0> JointModelPX;
typedef JointModelPrismaticTpl<Scalar,Options,1> JointModelPY;
typedef JointModelPrismaticTpl<Scalar,Options,2> JointModelPZ;
// Joint Prismatic Unaligned
typedef JointModelPrismaticUnalignedTpl<Scalar,Options> JointModelPrismaticUnaligned;
// Joint Spherical
typedef JointModelSphericalTpl<Scalar,Options> JointModelSpherical;
// Joint Spherical ZYX
typedef JointModelSphericalZYXTpl<Scalar,Options> JointModelSphericalZYX;
// Joint Translation
typedef JointModelTranslationTpl<Scalar,Options> JointModelTranslation;
// Joint FreeFlyer
typedef JointModelFreeFlyerTpl<Scalar,Options> JointModelFreeFlyer;
// Joint Planar
typedef JointModelPlanarTpl<Scalar,Options> JointModelPlanar;
// Joint Composite
typedef JointModelCompositeTpl<Scalar,Options,::pinocchio::JointCollectionDefaultTpl> JointModelComposite;
typedef boost::variant<
// JointModelVoid,
JointModelRX, JointModelRY, JointModelRZ
, JointModelMimicRX, JointModelMimicRY, JointModelMimicRZ
, JointModelFreeFlyer, JointModelPlanar
, JointModelRevoluteUnaligned
, JointModelSpherical, JointModelSphericalZYX
, JointModelPX, JointModelPY, JointModelPZ
, JointModelPrismaticUnaligned
, JointModelTranslation
, JointModelRUBX, JointModelRUBY, JointModelRUBZ
, JointModelRevoluteUnboundedUnaligned
, boost::recursive_wrapper<JointModelComposite>
> JointModelVariant;
// Joint Revolute
typedef JointDataRevoluteTpl<Scalar,Options,0> JointDataRX;
typedef JointDataRevoluteTpl<Scalar,Options,1> JointDataRY;
typedef JointDataRevoluteTpl<Scalar,Options,2> JointDataRZ;
typedef JointDataMimic<JointDataRX> JointDataMimicRX;
typedef JointDataMimic<JointDataRY> JointDataMimicRY;
typedef JointDataMimic<JointDataRZ> JointDataMimicRZ;
// Joint Revolute Unaligned
typedef JointDataRevoluteUnalignedTpl<Scalar,Options> JointDataRevoluteUnaligned;
// Joint Revolute Unaligned
typedef JointDataRevoluteUnboundedUnalignedTpl<Scalar,Options> JointDataRevoluteUnboundedUnaligned;
// Joint Revolute UBounded
typedef JointDataRevoluteUnboundedTpl<Scalar,Options,0> JointDataRUBX;
typedef JointDataRevoluteUnboundedTpl<Scalar,Options,1> JointDataRUBY;
typedef JointDataRevoluteUnboundedTpl<Scalar,Options,2> JointDataRUBZ;
// Joint Prismatic
typedef JointDataPrismaticTpl<Scalar,Options,0> JointDataPX;
typedef JointDataPrismaticTpl<Scalar,Options,1> JointDataPY;
typedef JointDataPrismaticTpl<Scalar,Options,2> JointDataPZ;
// Joint Prismatic Unaligned
typedef JointDataPrismaticUnalignedTpl<Scalar,Options> JointDataPrismaticUnaligned;
// Joint Spherical
typedef JointDataSphericalTpl<Scalar,Options> JointDataSpherical;
// Joint Spherical ZYX
typedef JointDataSphericalZYXTpl<Scalar,Options> JointDataSphericalZYX;
// Joint Translation
typedef JointDataTranslationTpl<Scalar,Options> JointDataTranslation;
// Joint FreeFlyer
typedef JointDataFreeFlyerTpl<Scalar,Options> JointDataFreeFlyer;
// Joint Planar
typedef JointDataPlanarTpl<Scalar,Options> JointDataPlanar;
// Joint Composite
typedef JointDataCompositeTpl<Scalar,Options,::pinocchio::JointCollectionDefaultTpl> JointDataComposite;
typedef boost::variant<
// JointDataVoid
JointDataRX, JointDataRY, JointDataRZ
, JointDataMimicRX, JointDataMimicRY, JointDataMimicRZ
, JointDataFreeFlyer, JointDataPlanar
, JointDataRevoluteUnaligned
, JointDataSpherical, JointDataSphericalZYX
, JointDataPX, JointDataPY, JointDataPZ
, JointDataPrismaticUnaligned
, JointDataTranslation
, JointDataRUBX, JointDataRUBY, JointDataRUBZ
, JointDataRevoluteUnboundedUnaligned
, boost::recursive_wrapper<JointDataComposite>
> JointDataVariant;
};
typedef JointCollectionDefault::JointModelVariant JointModelVariant;
typedef JointCollectionDefault::JointDataVariant JointDataVariant;
} // namespace pinocchio
#endif // ifndef __pinocchio_joint_collection_hpp__