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. | |
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). | |
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. | |
Public Member Functions inherited from Feature::Engine< PolicyT, FeaturesT > | |
virtual | ~Engine ()=default |
Virtual destructor. | |
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::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: