18 #ifndef GZ_PHYSICS_CYLINDERSHAPE_HH_
19 #define GZ_PHYSICS_CYLINDERSHAPE_HH_
32 class GZ_PHYSICS_VISIBLE GetCylinderShapeProperties
33 :
public virtual FeatureWithRequirements<CylinderShapeCast>
35 public:
template <
typename PolicyT,
typename FeaturesT>
36 class CylinderShape :
public virtual Entity<PolicyT, FeaturesT>
38 public:
using Scalar =
typename PolicyT::Scalar;
42 public: Scalar GetRadius()
const;
47 public: Scalar GetHeight()
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 GetCylinderShapeRadius(
56 const Identity &_cylinderID)
const = 0;
58 public:
virtual Scalar GetCylinderShapeHeight(
59 const Identity &_cylinderID)
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 &_cylinderID,
Scalar _radius) = 0;
94 const Identity &_cylinderID,
Scalar _height) = 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/CylinderShape.hh>