18 #ifndef GZ_PHYSICS_SHAPE_HH_
19 #define GZ_PHYSICS_SHAPE_HH_
36 public:
template <
typename PolicyT,
typename FeaturesT>
47 public:
PoseType GetRelativeTransform()
const;
50 public:
template <
typename PolicyT>
56 public:
virtual PoseType GetShapeRelativeTransform(
57 const Identity &_shapeID)
const = 0;
65 public:
template <
typename PolicyT,
typename FeaturesT>
77 public:
void SetRelativeTransform(
const PoseType &_pose);
80 public:
template <
typename PolicyT>
86 public:
virtual void SetShapeRelativeTransform(
87 const Identity &_shapeID,
const PoseType &_pose) = 0;
97 public:
template <
typename PolicyT,
typename FeaturesT>
100 public:
using Scalar =
typename PolicyT::Scalar;
108 public:
Scalar GetFrictionCoefficient(
109 const BaseShapePtr<PolicyT> &_other)
const;
118 public:
Scalar GetRestitutionCoefficient(
119 const BaseShapePtr<PolicyT> &_other)
const;
122 public:
template <
typename PolicyT>
125 public:
using Scalar =
typename PolicyT::Scalar;
127 public:
virtual Scalar GetFrictionCoefficient(
128 const Identity &_shape0,
const Identity &_shape1)
const = 0;
130 public:
virtual Scalar GetRestitutionCoefficient(
131 const Identity &_shape0,
const Identity &_shape1)
const = 0;
141 public:
template <
typename PolicyT,
typename FeaturesT>
161 public:
template <
typename PolicyT>
171 const Identity &_shape)
const = 0;
181 public:
template <
typename PolicyT,
typename FeaturesT>
184 public:
using Scalar =
typename PolicyT::Scalar;
193 public:
void SetFrictionCoefficient(
194 const BaseShapePtr<PolicyT> &_other,
Scalar _value);
203 public:
void SetRestitutionCoefficient(
204 const BaseShapePtr<PolicyT> &_other,
Scalar _value);
207 public:
template <
typename PolicyT>
210 public:
using Scalar =
typename PolicyT::Scalar;
212 public:
virtual void SetShapeFrictionCoefficient(
213 const Identity &_shape0,
214 const Identity &_shape1,
217 public:
virtual void SetShapeRestitutionCoefficient(
218 const Identity &_shape0,
219 const Identity &_shape1,
228 public:
template <
typename PolicyT,
typename FeaturesT>
235 public:
void SetCollisionFilterMask(
const uint16_t _mask);
239 public: uint16_t GetCollisionFilterMask()
const;
242 public:
void RemoveCollisionFilterMask();
245 public:
template <
typename PolicyT>
248 public:
virtual void SetCollisionFilterMask(
249 const Identity &_shapeID,
const uint16_t _mask) = 0;
251 public:
virtual uint16_t GetCollisionFilterMask(
252 const Identity &_shapeID)
const = 0;
254 public:
virtual void RemoveCollisionFilterMask(
255 const Identity &_shapeID) = 0;
265 public:
template <
typename PolicyT,
typename FeaturesT>
268 public:
using Scalar =
typename PolicyT::Scalar;
274 public:
Scalar GetPrimarySlipCompliance()
const;
280 public:
Scalar GetSecondarySlipCompliance()
const;
283 public:
template <
typename PolicyT>
286 public:
using Scalar =
typename PolicyT::Scalar;
288 public:
virtual Scalar GetShapeFrictionPyramidPrimarySlipCompliance(
289 const Identity &_shapeID)
const = 0;
291 public:
virtual Scalar GetShapeFrictionPyramidSecondarySlipCompliance(
292 const Identity &_shapeID)
const = 0;
302 public:
template <
typename PolicyT,
typename FeaturesT>
305 public:
using Scalar =
typename PolicyT::Scalar;
313 public:
bool SetPrimarySlipCompliance(
Scalar _value);
321 public:
bool SetSecondarySlipCompliance(
Scalar _value);
324 public:
template <
typename PolicyT>
327 public:
using Scalar =
typename PolicyT::Scalar;
329 public:
virtual bool SetShapeFrictionPyramidPrimarySlipCompliance(
330 const Identity &_shapeID,
Scalar _value) = 0;
332 public:
virtual bool SetShapeFrictionPyramidSecondarySlipCompliance(
333 const Identity &_shapeID,
Scalar _value) = 0;
339 #include <gz/physics/detail/Shape.hh>