Ignition Physics

API Reference

5.1.0
FrameSemantics::Engine< PolicyT, FeaturesT > Class Template Reference

This class defines the engine interface that provides the FrameSemantics feature. More...

#include <FrameSemantics.hh>

Public Types

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

template<typename RQ >
RQ Reframe (const RQ &_quantity, const FrameID &_withRespectTo=FrameID::World()) const
 Create a new RelativeQuantity which expresses the input quantity in terms of a new parent frame. Note that the returned RelativeQuantity will behave as though it has a constant value within its new parent frame. More...
 
template<typename RQ >
RQ::Quantity Resolve (const RQ &_quantity, const FrameID &_relativeTo, const FrameID &_inCoordinatesOf) const
 Resolve can take a RelativeQuantity (RQ) and compute its values in terms of other reference frames. The argument relativeTo indicates a frame that the quantity should be compared against (e.g. the velocity of Frame A relative to Frame B where both A and B may be moving). The argument inCoordinatesOf indicates the coordinate frame that the values should be expressed in (this is usually just a change in rotation). More...
 
template<typename RQ >
RQ::Quantity Resolve (const RQ &_quantity, const FrameID &_relativeTo=FrameID::World()) const
 This overload causes the World Frame to be used as the default frame when relativeTo is not specified. It also causes the frame specified for relativeTo to be used as the frame for inCoordinatesOf. More...
 
- Public Member Functions inherited from Feature::Engine< PolicyT, FeaturesT >
virtual ~Engine ()=default
 Virtual destructor. 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::FrameSemantics::Engine< PolicyT, FeaturesT >

This class defines the engine interface that provides the FrameSemantics feature.

Member Typedef Documentation

◆ FrameData

using FrameData = FrameData< typename PolicyT::Scalar, PolicyT::Dim>

Member Function Documentation

◆ Reframe()

RQ Reframe ( const RQ &  _quantity,
const FrameID _withRespectTo = FrameID::World() 
) const

Create a new RelativeQuantity which expresses the input quantity in terms of a new parent frame. Note that the returned RelativeQuantity will behave as though it has a constant value within its new parent frame.

◆ Resolve() [1/2]

RQ::Quantity Resolve ( const RQ &  _quantity,
const FrameID _relativeTo,
const FrameID _inCoordinatesOf 
) const

Resolve can take a RelativeQuantity (RQ) and compute its values in terms of other reference frames. The argument relativeTo indicates a frame that the quantity should be compared against (e.g. the velocity of Frame A relative to Frame B where both A and B may be moving). The argument inCoordinatesOf indicates the coordinate frame that the values should be expressed in (this is usually just a change in rotation).

◆ Resolve() [2/2]

RQ::Quantity Resolve ( const RQ &  _quantity,
const FrameID _relativeTo = FrameID::World() 
) const

This overload causes the World Frame to be used as the default frame when relativeTo is not specified. It also causes the frame specified for relativeTo to be used as the frame for inCoordinatesOf.

In other words:

– Get the value of v in terms of the World Frame Resolve(v)

– Get the value of v relative to frame A, in coordinates of frame A Resolve(v, A)

– Get the value of v relative to frame A, in coordinates of frame B Resolve(v, A, B)


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