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>
84 public: LinkPtr<PolicyT, FeaturesT> RootLink();
87 public: ConstLinkPtr<PolicyT, FeaturesT> RootLink()
const;
94 public: LinkPtr<PolicyT, FeaturesT> IGN_DEPRECATED(4.0) CanonicalLink();
98 public: ConstLinkPtr<PolicyT, FeaturesT> IGN_DEPRECATED(4.0)
99 CanonicalLink() const;
102 public: template <typename PolicyT>
103 class Implementation : public virtual Feature::Implementation<PolicyT>
105 public:
virtual Identity FindFreeGroupForModel(
106 const Identity &_modelID)
const = 0;
108 public:
virtual Identity FindFreeGroupForLink(
109 const Identity &_linkID)
const = 0;
111 public:
virtual Identity GetFreeGroupRootLink(
112 const Identity &_groupID)
const = 0;
119 FindFreeGroupFeature, FrameSemantics>
121 public:
template <
typename PolicyT,
typename FeaturesT>
142 public:
template <
typename PolicyT,
typename FeaturesT>
149 public:
void SetWorldPose(
const PoseType &_pose);
152 public:
template <
typename PolicyT>
159 const Identity &_groupID,
175 public:
template <
typename PolicyT,
typename FeaturesT>
185 public:
void SetWorldLinearVelocity(
189 public:
void SetWorldAngularVelocity(
193 public:
template <
typename PolicyT>
202 public:
virtual void SetFreeGroupWorldLinearVelocity(
203 const Identity &_groupID,
206 public:
virtual void SetFreeGroupWorldAngularVelocity(
207 const Identity &_groupID,
214 #include <ignition/physics/detail/FreeGroup.hh> typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: FreeGroup.hh:146
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:167
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:134
typename FromPolicy< PolicyT >::template Use< Pose > PoseType
Definition: FreeGroup.hh:156
typename FromPolicy< PolicyT >::template Use< AngularVector > AngularVelocity
Definition: FreeGroup.hh:182
This struct is used to conveniently convert from a policy to a geometric type. Example usage: ...
Definition: Geometry.hh:77
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:200
This feature provides an interface between the Model and Link classes and the FreeGroup class...
Definition: FreeGroup.hh:117
typename FromPolicy< PolicyT >::template Use< LinearVector > LinearVelocity
Definition: FreeGroup.hh:197
Definition: FreeGroup.hh:153
typename FromPolicy< PolicyT >::template Use< LinearVector > LinearVelocity
Definition: FreeGroup.hh:179
Definition: Feature.hh:92
This class defines the FreeGroup concept, which represents a group of links that are not connected to...
Definition: FreeGroup.hh:176
Definition: FreeGroup.hh:194
This class defines the FreeGroup concept, which represents a group of links that are not connected to...
Definition: FreeGroup.hh:143