18 #ifndef GZ_PHYSICS_CAPSULESHAPE_HH_
19 #define GZ_PHYSICS_CAPSULESHAPE_HH_
32 class GZ_PHYSICS_VISIBLE GetCapsuleShapeProperties
33 :
public virtual FeatureWithRequirements<CapsuleShapeCast>
35 public:
template <
typename PolicyT,
typename FeaturesT>
36 class CapsuleShape :
public virtual Entity<PolicyT, FeaturesT>
38 public:
using Scalar =
typename PolicyT::Scalar;
42 public: Scalar GetRadius()
const;
47 public: Scalar GetLength()
const;
50 public:
template <
typename PolicyT>
51 class Implementation :
public virtual Feature::Implementation<PolicyT>
53 public:
using Scalar =
typename PolicyT::Scalar;
55 public:
virtual Scalar GetCapsuleShapeRadius(
56 const Identity &_capsuleID)
const = 0;
58 public:
virtual Scalar GetCapsuleShapeLength(
59 const Identity &_capsuleID)
const = 0;
69 public:
template <
typename PolicyT,
typename FeaturesT>
72 public:
using Scalar =
typename PolicyT::Scalar;
85 public:
template <
typename PolicyT>
88 public:
using Scalar =
typename PolicyT::Scalar;
91 const Identity &_capsuleID,
Scalar _radius) = 0;
94 const Identity &_capsuleID,
Scalar _length) = 0;
105 public:
template <
typename PolicyT,
typename FeaturesT>
108 public:
using Scalar =
typename PolicyT::Scalar;
127 const PoseType &_pose = PoseType::Identity());
130 public:
template <
typename PolicyT>
133 public:
using Scalar =
typename PolicyT::Scalar;
139 const Identity &_linkID,
149 #include <gz/physics/detail/CapsuleShape.hh>