20#ifndef GZ_PHYSICS_CONESHAPE_HH_ 
   21#define GZ_PHYSICS_CONESHAPE_HH_ 
   34    class GZ_PHYSICS_VISIBLE GetConeShapeProperties
 
   35        : 
public virtual FeatureWithRequirements<ConeShapeCast>
 
   37      public: 
template <
typename PolicyT, 
typename FeaturesT>
 
   38      class ConeShape : 
public virtual Entity<PolicyT, FeaturesT>
 
   40        public: 
using Scalar = 
typename PolicyT::Scalar;
 
   44        public: Scalar GetRadius() 
const;
 
   49        public: Scalar GetHeight() 
const;
 
   52      public: 
template <
typename PolicyT>
 
   53      class Implementation : 
public virtual Feature::Implementation<PolicyT>
 
   55        public: 
using Scalar = 
typename PolicyT::Scalar;
 
   57        public: 
virtual Scalar GetConeShapeRadius(
 
   58            const Identity &_coneID) 
const = 0;
 
   60        public: 
virtual Scalar GetConeShapeHeight(
 
   61            const Identity &_coneID) 
const = 0;
 
   71      public: 
template <
typename PolicyT, 
typename FeaturesT>
 
   74        public: 
using Scalar = 
typename PolicyT::Scalar;
 
 
   87      public: 
template <
typename PolicyT>
 
   90        public: 
using Scalar = 
typename PolicyT::Scalar;
 
   93            const Identity &_coneID, 
Scalar _radius) = 0;
 
   96            const Identity &_coneID, 
Scalar _height) = 0;
 
 
 
  107      public: 
template <
typename PolicyT, 
typename FeaturesT>
 
  110        public: 
using Scalar = 
typename PolicyT::Scalar;
 
  130            const PoseType &_pose = PoseType::Identity());
 
 
  133      public: 
template <
typename PolicyT>
 
  136        public: 
using Scalar = 
typename PolicyT::Scalar;
 
  142            const Identity &_linkID,
 
 
 
  152#include <gz/physics/detail/ConeShape.hh>