The Link API for adding link force/torque. More...
#include <Link.hh>
Public Types | |
using | AngularVectorType = typename FromPolicy< PolicyT >::template Use< AngularVector > |
using | LinearVectorType = typename FromPolicy< PolicyT >::template Use< LinearVector > |
using | RelativeForceType = typename FromPolicy< PolicyT >::template Use< RelativeForce > |
using | RelativePositionType = typename FromPolicy< PolicyT >::template Use< RelativePosition > |
using | RelativeTorqueType = typename FromPolicy< PolicyT >::template Use< RelativeTorque > |
Public Types inherited from FrameSemantics::Frame< PolicyT, FeaturesT > | |
using | FrameData = FrameData< typename PolicyT::Scalar, PolicyT::Dim > |
Public Types inherited from Entity< PolicyT, FeaturesT > | |
using | Features = FeaturesT |
using | Pimpl = typename detail::DeterminePlugin< Policy, Features >::type |
using | Policy = PolicyT |
Public Member Functions | |
void | AddExternalForce (const LinearVectorType &_force, const FrameID &_forceInCoordinatesOf=FrameID::World(), const LinearVectorType &_position=LinearVectorType::Zero()) |
Add a force on the link applied at a specified position. This force is applied for one simulation step only. This is a convenient form of AddExternalForce where the force and position are free vectors and an additional parameter is used to specify the coordinates in which the force is expressed. | |
void | AddExternalForce (const RelativeForceType &_force, const RelativePositionType &_position) |
Add a force on the link applied at a specified position. This force is applied for one simulation step only. | |
void | AddExternalTorque (const AngularVectorType &_torque, const FrameID &_inCoordinatesOf=FrameID::World()) |
Add an external torque on the link. The torque is applied for one simulation step only. | |
void | AddExternalTorque (const RelativeTorqueType &_torque) |
Add an external torque on the link. The torque is applied for one simulation step only. | |
Public Member Functions inherited from FrameSemantics::Frame< PolicyT, FeaturesT > | |
virtual | ~Frame ()=default |
Virtual destructor. | |
FrameData | FrameDataRelativeTo (const FrameID &_relativeTo) const |
Get the FrameData of this object with respect to another frame. The data will also be expressed in the coordinates of the _relativeTo frame. | |
FrameData | FrameDataRelativeTo (const FrameID &_relativeTo, const FrameID &_inCoordinatesOf) const |
Get the FrameData of this object relative to another frame, expressed in the coordinates of a third frame. | |
FrameData | FrameDataRelativeToWorld () const |
Get the FrameData of this object with respect to the world. | |
FrameID | GetFrameID () const |
Get a FrameID for this object. | |
operator FrameID () const | |
Implicit conversion to a FrameID is provided. This way, a reference to the Object can be treated as a FrameID. | |
Public Member Functions inherited from Entity< PolicyT, FeaturesT > | |
virtual | ~Entity ()=default |
Virtual destructor. | |
std::size_t | EntityID () const |
Get the unique ID value of this Entity. | |
const std::shared_ptr< void > & | EntityReference () const |
Get a reference-counting std::shared_ptr to the object inside the implementation that this object provides an abstraction for. | |
const Identity & | FullIdentity () const |
Get the Identity object of this Entity. | |
Additional Inherited Members | |
Protected Member Functions inherited from Entity< PolicyT, FeaturesT > | |
Entity (const std::shared_ptr< Pimpl > &_pimpl=nullptr, const Identity &_identity=Identity()) | |
Constructor for the Entity. | |
Entity (std::shared_ptr< Pimpl > &&_pimpl, const Identity &_identity) | |
Constructor that allows the pimpl to be moved instead of copied. | |
template<typename FeatureT > | |
FeatureT::template Implementation< PolicyT > * | Interface () |
Get a pointer to the implementation of FeatureT. | |
template<typename FeatureT > | |
const FeatureT::template Implementation< PolicyT > * | Interface () const |
Same as Interface(), but const-qualified so that const entities can request const-qualified interfaces from the implementation. | |
Protected Attributes inherited from Entity< PolicyT, FeaturesT > | |
Identity | identity |
This field contains information to identify the entity. | |
std::shared_ptr< Pimpl > | pimpl |
This is a pointer to the physics engine implementation, and it can be used by the object features to find the interfaces that they need in order to function. | |
Detailed Description
class gz::physics::AddLinkExternalForceTorque::Link< PolicyT, FeaturesT >
The Link API for adding link force/torque.
Member Typedef Documentation
◆ AngularVectorType
using AngularVectorType = typename FromPolicy<PolicyT>::template Use<AngularVector> |
◆ LinearVectorType
using LinearVectorType = typename FromPolicy<PolicyT>::template Use<LinearVector> |
◆ RelativeForceType
using RelativeForceType = typename FromPolicy<PolicyT>::template Use<RelativeForce> |
◆ RelativePositionType
using RelativePositionType = typename FromPolicy<PolicyT>::template Use<RelativePosition> |
◆ RelativeTorqueType
using RelativeTorqueType = typename FromPolicy<PolicyT>::template Use<RelativeTorque> |
Member Function Documentation
◆ AddExternalForce() [1/2]
void AddExternalForce | ( | const LinearVectorType & | _force, |
const FrameID & | _forceInCoordinatesOf = FrameID::World() , |
||
const LinearVectorType & | _position = LinearVectorType::Zero() |
||
) |
Add a force on the link applied at a specified position. This force is applied for one simulation step only. This is a convenient form of AddExternalForce where the force and position are free vectors and an additional parameter is used to specify the coordinates in which the force is expressed.
- Parameters
-
[in] _force The desired force [in] _forceInCoordinatesOf The coordinates in which the force is expressed [in] _position The point of application of the force expressed in the link-fixed frame.
Note that in this version of AddExternalForce the position is expressed in the link-fixed frame while the coordinate frame for the force is a parameter that can be set. If you want to specify the reference frame for the position quantity, please use the AddExternalForce function that takes Relative quantities.
◆ AddExternalForce() [2/2]
void AddExternalForce | ( | const RelativeForceType & | _force, |
const RelativePositionType & | _position | ||
) |
Add a force on the link applied at a specified position. This force is applied for one simulation step only.
- Parameters
-
[in] _force The desired force as a Relative Force (a quantity that contains information about the coordinates in which it is expressed) [in] _position The point of application of the force. This parameter is a Relative Position (a quantity that contains information about the frame in which it is expressed).
◆ AddExternalTorque() [1/2]
void AddExternalTorque | ( | const AngularVectorType & | _torque, |
const FrameID & | _inCoordinatesOf = FrameID::World() |
||
) |
Add an external torque on the link. The torque is applied for one simulation step only.
- Parameters
-
[in] _torque The desired torque [in] _inCoordinatesOf The coordinates in which the torque is expressed
◆ AddExternalTorque() [2/2]
void AddExternalTorque | ( | const RelativeTorqueType & | _torque | ) |
Add an external torque on the link. The torque is applied for one simulation step only.
- Parameters
-
[in] _torque The desired torque as a Relative Torque (a quantity that contains information about the coordinates in which it is expressed)
The documentation for this class was generated from the following file: