18 #ifndef IGNITION_PHYSICS_FREEGROUP_HH_ 19 #define IGNITION_PHYSICS_FREEGROUP_HH_ 29 DETAIL_IGN_PHYSICS_DEFINE_ENTITY(FreeGroup)
32 class IGNITION_PHYSICS_VISIBLE FindFreeGroupFeature :
public virtual Feature
46 public:
template <
typename PolicyT,
typename FeaturesT>
47 class Model :
public virtual Feature::Model<PolicyT, FeaturesT>
49 using FreeGroupPtrType = FreeGroupPtr<PolicyT, FeaturesT>;
50 using ConstFreeGroupPtrType = ConstFreeGroupPtr<PolicyT, FeaturesT>;
55 public: FreeGroupPtrType FindFreeGroup();
58 public: ConstFreeGroupPtrType FindFreeGroup()
const;
61 public:
template <
typename PolicyT,
typename FeaturesT>
62 class Link :
public virtual Feature::Link<PolicyT, FeaturesT>
64 using FreeGroupPtrType = FreeGroupPtr<PolicyT, FeaturesT>;
65 using ConstFreeGroupPtrType = ConstFreeGroupPtr<PolicyT, FeaturesT>;
71 public: FreeGroupPtrType FindFreeGroup();
74 public: ConstFreeGroupPtrType FindFreeGroup()
const;
77 public:
template <
typename PolicyT,
typename FeaturesT>
78 class FreeGroup :
public virtual Entity<PolicyT, FeaturesT>
83 public: LinkPtr<PolicyT, FeaturesT> CanonicalLink();
86 public: ConstLinkPtr<PolicyT, FeaturesT> CanonicalLink()
const;
89 public:
template <
typename PolicyT>
90 class Implementation :
public virtual Feature::Implementation<PolicyT>
92 public:
virtual Identity FindFreeGroupForModel(
93 const Identity &_modelID)
const = 0;
95 public:
virtual Identity FindFreeGroupForLink(
96 const Identity &_linkID)
const = 0;
98 public:
virtual Identity GetFreeGroupCanonicalLink(
99 const Identity &_groupID)
const = 0;
106 FindFreeGroupFeature, FrameSemantics>
108 public:
template <
typename PolicyT,
typename FeaturesT>
129 public:
template <
typename PolicyT,
typename FeaturesT>
136 public:
void SetWorldPose(
const PoseType &_pose);
139 public:
template <
typename PolicyT>
146 const Identity &_groupID,
162 public:
template <
typename PolicyT,
typename FeaturesT>
172 public:
void SetWorldLinearVelocity(
176 public:
void SetWorldAngularVelocity(
180 public:
template <
typename PolicyT>
189 public:
virtual void SetFreeGroupWorldLinearVelocity(
190 const Identity &_groupID,
193 public:
virtual void SetFreeGroupWorldAngularVelocity(
194 const Identity &_groupID,
201 #include <ignition/physics/detail/FreeGroup.hh> typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: FreeGroup.hh:133
If your feature is known to require any other features, then you should have your feature class inher...
Definition: FeatureList.hh:108
This features sets the FreeGroup linear and angular velocity in world frame.
Definition: FreeGroup.hh:154
This is the base class of all "proxy objects". The "proxy objects" are essentially interfaces into th...
Definition: Entity.hh:216
This features sets the FreeGroup pose in world frame. However, while a physics engine with maximal co...
Definition: FreeGroup.hh:121
typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: FreeGroup.hh:143
typename FromPolicy< PolicyT >::template Use< AngularVector > AngularVelocity
Definition: FreeGroup.hh:169
This struct is used to conveniently convert from a policy to a geometric type. Example usage: ...
Definition: Geometry.hh:69
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 FromPolicy< PolicyT >::template Use< AngularVector > AngularVelocity
Definition: FreeGroup.hh:187
This feature provides an interface between the Model and Link classes and the FreeGroup class...
Definition: FreeGroup.hh:104
typename FromPolicy< PolicyT >::template Use< LinearVector > LinearVelocity
Definition: FreeGroup.hh:184
Definition: FreeGroup.hh:140
typename FromPolicy< PolicyT >::template Use< LinearVector > LinearVelocity
Definition: FreeGroup.hh:166
Definition: Feature.hh:92
This class defines the FreeGroup concept, which represents a group of links that are not connected to...
Definition: FreeGroup.hh:163
Definition: FreeGroup.hh:181
This class defines the FreeGroup concept, which represents a group of links that are not connected to...
Definition: FreeGroup.hh:130