18 #ifndef GZ_PHYSICS_REVOLUTEJOINT_HH_
19 #define GZ_PHYSICS_REVOLUTEJOINT_HH_
32 class GZ_PHYSICS_VISIBLE GetRevoluteJointProperties
33 :
public virtual FeatureWithRequirements<RevoluteJointCast>
36 public:
template <
typename PolicyT,
typename FeaturesT>
37 class RevoluteJoint :
public virtual Entity<PolicyT, FeaturesT>
40 typename FromPolicy<PolicyT>::template Use<AngularVector>;
51 public: Axis GetAxis()
const;
56 public:
template <
typename PolicyT>
57 class Implementation :
public virtual Feature::Implementation<PolicyT>
60 typename FromPolicy<PolicyT>::template Use<AngularVector>;
65 public:
virtual Axis GetRevoluteJointAxis(
66 const Identity &_id)
const = 0;
77 public:
template <
typename PolicyT,
typename FeaturesT>
96 public:
template <
typename PolicyT>
104 const Identity &_id,
const Axis &_axis) = 0;
114 public:
template <
typename PolicyT,
typename FeaturesT>
136 const BaseLinkPtr<PolicyT> &_parent,
138 const Axis &_axis = Axis::UnitX());
141 public:
template <
typename PolicyT>
158 const Identity &_childID,
159 const BaseLinkPtr<PolicyT> &_parent,
161 const Axis &_axis) = 0;
167 #include <gz/physics/detail/RevoluteJoint.hh>