Ignition Physics

API Reference

5.1.0
AddLinkExternalForceTorque::Link< PolicyT, FeaturesT > Class Template Reference

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 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. More...
 
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. More...
 
void AddExternalTorque (const RelativeTorqueType &_torque)
 Add an external torque on the link. The torque is applied for one simulation step only. More...
 
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. More...
 
- Public Member Functions inherited from FrameSemantics::Frame< PolicyT, FeaturesT >
virtual ~Frame ()=default
 Virtual destructor. More...
 
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. More...
 
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. More...
 
FrameData FrameDataRelativeToWorld () const
 Get the FrameData of this object with respect to the world. More...
 
FrameID GetFrameID () const
 Get a FrameID for this object. More...
 
 operator FrameID () const
 Implicit conversion to a FrameID is provided. This way, a reference to the Object can be treated as a FrameID. More...
 
- Public Member Functions inherited from Entity< PolicyT, FeaturesT >
virtual ~Entity ()=default
 Virtual destructor. More...
 
std::size_t EntityID () const
 Get the unique ID value of this Entity. More...
 
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. More...
 
const Identity & FullIdentity () const
 Get the Identity object of this Entity. More...
 

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. More...
 
 Entity (std::shared_ptr< Pimpl > &&_pimpl, const Identity &_identity)
 Constructor that allows the pimpl to be moved instead of copied. More...
 
template<typename FeatureT >
FeatureT::template Implementation< PolicyT > * Interface ()
 Get a pointer to the implementation of FeatureT. More...
 
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. More...
 
- Protected Attributes inherited from Entity< PolicyT, FeaturesT >
Identity identity
 This field contains information to identify the entity. More...
 
std::shared_ptr< Pimplpimpl
 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. More...
 

Detailed Description

template<typename PolicyT, typename FeaturesT>
class ignition::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 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]_forceThe desired force as a Relative Force (a quantity that contains information about the coordinates in which it is expressed)
[in]_positionThe 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).

◆ AddExternalForce() [2/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]_forceThe desired force
[in]_forceInCoordinatesOfThe coordinates in which the force is expressed
[in]_positionThe 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.

◆ AddExternalTorque() [1/2]

void AddExternalTorque ( const RelativeTorqueType _torque)

Add an external torque on the link. The torque is applied for one simulation step only.

Parameters
[in]_torqueThe desired torque as a Relative Torque (a quantity that contains information about the coordinates in which it is expressed)

◆ AddExternalTorque() [2/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]_torqueThe desired torque
[in]_inCoordinatesOfThe coordinates in which the torque is expressed

The documentation for this class was generated from the following file: