18 #ifndef IGNITION_PHYSICS_SHAPE_HH_ 19 #define IGNITION_PHYSICS_SHAPE_HH_ 34 public:
template <
typename PolicyT,
typename FeaturesT>
45 public:
PoseType GetRelativeTransform()
const;
48 public:
template <
typename PolicyT>
54 public:
virtual PoseType GetShapeRelativeTransform(
55 const Identity &_shapeID)
const = 0;
63 public:
template <
typename PolicyT,
typename FeaturesT>
75 public:
void SetRelativeTransform(
const PoseType &_pose);
78 public:
template <
typename PolicyT>
84 public:
virtual void SetShapeRelativeTransform(
85 const Identity &_shapeID,
const PoseType &_pose) = 0;
93 public:
template <
typename PolicyT,
typename FeaturesT>
96 public:
using Scalar =
typename PolicyT::Scalar;
104 public:
Scalar GetFrictionCoefficient(
105 const BaseShapePtr<PolicyT> &_other)
const;
114 public:
Scalar GetRestitutionCoefficient(
115 const BaseShapePtr<PolicyT> &_other)
const;
118 public:
template <
typename PolicyT>
121 public:
using Scalar =
typename PolicyT::Scalar;
123 public:
virtual Scalar GetFrictionCoefficient(
124 const Identity &_shape0,
const Identity &_shape1)
const = 0;
126 public:
virtual Scalar GetRestitutionCoefficient(
127 const Identity &_shape0,
const Identity &_shape1)
const = 0;
135 public:
template <
typename PolicyT,
typename FeaturesT>
155 public:
template <
typename PolicyT>
165 const Identity &_shape)
const = 0;
173 public:
template <
typename PolicyT,
typename FeaturesT>
176 public:
using Scalar =
typename PolicyT::Scalar;
185 public:
void SetFrictionCoefficient(
186 const BaseShapePtr<PolicyT> &_other,
Scalar _value);
195 public:
void SetRestitutionCoefficient(
196 const BaseShapePtr<PolicyT> &_other,
Scalar _value);
199 public:
template <
typename PolicyT>
202 public:
using Scalar =
typename PolicyT::Scalar;
204 public:
virtual void SetShapeFrictionCoefficient(
205 const Identity &_shape0,
206 const Identity &_shape1,
209 public:
virtual void SetShapeRestitutionCoefficient(
210 const Identity &_shape0,
211 const Identity &_shape1,
220 public:
template <
typename PolicyT,
typename FeaturesT>
227 public:
void SetCollisionFilterMask(
const uint16_t _mask);
231 public: uint16_t GetCollisionFilterMask()
const;
234 public:
void RemoveCollisionFilterMask();
237 public:
template <
typename PolicyT>
240 public:
virtual void SetCollisionFilterMask(
241 const Identity &_shapeID,
const uint16_t _mask) = 0;
243 public:
virtual uint16_t GetCollisionFilterMask(
244 const Identity &_shapeID)
const = 0;
246 public:
virtual void RemoveCollisionFilterMask(
247 const Identity &_shapeID) = 0;
255 public:
template <
typename PolicyT,
typename FeaturesT>
258 public:
using Scalar =
typename PolicyT::Scalar;
264 public:
Scalar GetPrimarySlipCompliance()
const;
270 public:
Scalar GetSecondarySlipCompliance()
const;
273 public:
template <
typename PolicyT>
276 public:
using Scalar =
typename PolicyT::Scalar;
278 public:
virtual Scalar GetShapeFrictionPyramidPrimarySlipCompliance(
279 const Identity &_shapeID)
const = 0;
281 public:
virtual Scalar GetShapeFrictionPyramidSecondarySlipCompliance(
282 const Identity &_shapeID)
const = 0;
290 public:
template <
typename PolicyT,
typename FeaturesT>
293 public:
using Scalar =
typename PolicyT::Scalar;
301 public:
bool SetPrimarySlipCompliance(
Scalar _value);
309 public:
bool SetSecondarySlipCompliance(
Scalar _value);
312 public:
template <
typename PolicyT>
315 public:
using Scalar =
typename PolicyT::Scalar;
317 public:
virtual bool SetShapeFrictionPyramidPrimarySlipCompliance(
318 const Identity &_shapeID,
Scalar _value) = 0;
320 public:
virtual bool SetShapeFrictionPyramidSecondarySlipCompliance(
321 const Identity &_shapeID,
Scalar _value) = 0;
327 #include <ignition/physics/detail/Shape.hh> typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: Shape.hh:82
Placeholder class in case a Feature does not define its own Shape API.
Definition: Feature.hh:85
If your feature is known to require any other features, then you should have your feature class inher...
Definition: FeatureList.hh:108
typename PolicyT::Scalar Scalar
Definition: Shape.hh:258
This class defines the concept of a Feature. It should be inherited by classes that define some plugi...
Definition: Feature.hh:35
typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: Shape.hh:52
static const FrameID & World()
Get a reference to the world Frame.
This struct is used to conveniently convert from a policy to a geometric type. Example usage: ...
Definition: Geometry.hh:69
typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: Shape.hh:38
Base class for the API of a Frame. This will be inherited by any objects that are able to express Fra...
Definition: FrameSemantics.hh:41
typename PolicyT::Scalar Scalar
Definition: Shape.hh:202
typename PolicyT::Scalar Scalar
Definition: Shape.hh:176
typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: Shape.hh:67
typename PolicyT::Scalar Scalar
Definition: Shape.hh:276
Definition: Feature.hh:92
typename FromPolicy< PolicyT >::template Use< AlignedBox > AlignedBoxType
Definition: Shape.hh:159
typename PolicyT::Scalar Scalar
Definition: Shape.hh:315
typename FromPolicy< PolicyT >::template Use< AlignedBox > AlignedBoxType
Definition: Shape.hh:140
typename PolicyT::Scalar Scalar
Definition: Shape.hh:121
typename PolicyT::Scalar Scalar
Definition: Shape.hh:293
typename PolicyT::Scalar Scalar
Definition: Shape.hh:96
Container for specifying Frame IDs. We do not want to use a generic integer type for this...
Definition: FrameID.hh:46