DART  6.10.1
dart::dynamics::SimpleFrame Class Reference

The SimpleFrame class offers a user-friendly way of creating arbitrary Frames within the kinematic tree structure of DART. More...

#include <SimpleFrame.hpp>

Inheritance diagram for dart::dynamics::SimpleFrame:
dart::dynamics::Detachable dart::dynamics::ShapeFrame dart::dynamics::Entity dart::common::VersionCounter dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases > dart::dynamics::Frame dart::common::Subject dart::common::CompositeJoiner< EmbedProperties< DerivedT, PropertiesDataT >, CompositeBases... > dart::dynamics::Entity dart::common::Subject dart::gui::osg::InteractiveFrame dart::gui::osg::InteractiveTool

Public Types

using EntitySignal = common::Signal< void(const Entity *)>
 
using FrameChangedSignal = common::Signal< void(const Entity *, const Frame *_oldFrame, const Frame *_newFrame)>
 
using NameChangedSignal = common::Signal< void(const Entity *, const std::string &_oldName, const std::string &_newName)>
 
using ShapeUpdatedSignal = common::Signal< void(const ShapeFrame *thisShapeFrame, const ShapePtr &oldShape, const ShapePtr &newShape)>
 
using RelativeTransformUpdatedSignal = common::Signal< void(const ShapeFrame *thisShapeFrame, const Eigen::Isometry3d &oldTransform, const Eigen::Isometry3d &newTransform)>
 
using UniqueProperties = AspectProperties
 
using Properties = UniqueProperties
 
using Impl = EmbedProperties< DerivedT, PropertiesDataT >
 
using Derived = typename Impl::Derived
 
using AspectPropertiesData = typename Impl::AspectPropertiesData
 
using AspectProperties = typename Impl::AspectProperties
 
using Aspect = typename Impl::Aspect
 
using Base = CompositeJoiner< Impl, CompositeBases... >
 

Public Member Functions

 SimpleFrame (Frame *_refFrame=Frame::World(), const std::string &_name="simple_frame", const Eigen::Isometry3d &_relativeTransform=Eigen::Isometry3d::Identity())
 Constructor. More...
 
 SimpleFrame (const SimpleFrame &_otherFrame, Frame *_refFrame=Frame::World())
 Copy constructor. More...
 
 ~SimpleFrame () override
 Destructor. More...
 
const std::string & setName (const std::string &_name) override
 Set name. More...
 
const std::string & getName () const override
 Return the name of this Entity. More...
 
std::shared_ptr< SimpleFrameclone (Frame *_refFrame=Frame::World()) const
 Create a new SimpleFrame with the same world transform, velocity, and acceleration as this one. More...
 
void copy (const Frame &_otherFrame, Frame *_refFrame=Frame::World(), bool _copyProperties=true)
 Make the world transform, world velocity, and world acceleration of this SimpleFrame match another Frame. More...
 
void copy (const Frame *_otherFrame, Frame *_refFrame=Frame::World(), bool _copyProperties=true)
 Same as copy(const Frame&) More...
 
SimpleFrameoperator= (const SimpleFrame &_otherFrame)
 Same as copy(const Frame&) except the parent frame of this SimpleFrame is left the same, and _copyProperties is set to false. More...
 
std::shared_ptr< SimpleFramespawnChildSimpleFrame (const std::string &name="SimpleFrame", const Eigen::Isometry3d &relativeTransform=Eigen::Isometry3d::Identity())
 Spawn a child SimpleFrame to this SimpleFrame. More...
 
void setRelativeTransform (const Eigen::Isometry3d &_newRelTransform)
 Set the relative transform of this SimpleFrame. More...
 
void setRelativeTranslation (const Eigen::Vector3d &_newTranslation)
 Set the relative translation of this SimpleFrame. More...
 
void setRelativeRotation (const Eigen::Matrix3d &_newRotation)
 Set the relative rotation of this SimpleFrame. More...
 
void setTransform (const Eigen::Isometry3d &_newTransform, const Frame *_withRespectTo=Frame::World())
 Set the transform of this SimpleFrame so that its transform with respect to Frame _withRespectTo is equal to _newTransform. More...
 
void setTranslation (const Eigen::Vector3d &_newTranslation, const Frame *_withRespectTo=Frame::World())
 Set the translation of this SimpleFrame so that its translation with respect to Frame _withRespectTo is equal to _newTranslation. More...
 
void setRotation (const Eigen::Matrix3d &_newRotation, const Frame *_withRespectTo=Frame::World())
 Set the rotation of this SimpleFrame so that its rotation with respect to Frame _withRespectTo is equal to _newRotation. More...
 
const Eigen::Isometry3d & getRelativeTransform () const override
 Get the transform of this Frame with respect to its parent Frame. More...
 
void setRelativeSpatialVelocity (const Eigen::Vector6d &_newSpatialVelocity)
 Set the spatial velocity of this SimpleFrame relative to its parent Frame. More...
 
void setRelativeSpatialVelocity (const Eigen::Vector6d &_newSpatialVelocity, const Frame *_inCoordinatesOf)
 Set the spatial velocity of this SimpleFrame relative to its parent Frame. More...
 
const Eigen::Vector6dgetRelativeSpatialVelocity () const override
 Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates. More...
 
void setRelativeSpatialAcceleration (const Eigen::Vector6d &_newSpatialAcceleration)
 Set the spatial acceleration of this SimpleFrame relative to its parent Frame. More...
 
void setRelativeSpatialAcceleration (const Eigen::Vector6d &_newSpatialAcceleration, const Frame *_inCoordinatesOf)
 Set the spatial acceleration of this SimpleFrame relative to its parent Frame. More...
 
const Eigen::Vector6dgetRelativeSpatialAcceleration () const override
 Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this Frame. More...
 
const Eigen::Vector6dgetPrimaryRelativeAcceleration () const override
 The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration, accessible by getPartialAcceleration(). More...
 
const Eigen::Vector6dgetPartialAcceleration () const override
 The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration. More...
 
void setClassicDerivatives (const Eigen::Vector3d &_linearVelocity=Eigen::Vector3d::Zero(), const Eigen::Vector3d &_angularVelocity=Eigen::Vector3d::Zero(), const Eigen::Vector3d &_linearAcceleration=Eigen::Vector3d::Zero(), const Eigen::Vector3d &_angularAcceleration=Eigen::Vector3d::Zero())
 Set the relative velocity and acceleration of this Frame according to classical (non-spatial) relative velocity and relative acceleration vectors. More...
 
virtual void setParentFrame (Frame *_newParentFrame)
 Allows the user to change the parent Frame of this Entity. More...
 
FramegetParentFrame ()
 Get the parent (reference) frame of this Entity. More...
 
const FramegetParentFrame () const
 Get the parent (reference) frame of this Entity. More...
 
bool descendsFrom (const Frame *_someFrame) const
 Returns true if and only if this Entity is itself (i.e. More...
 
bool isFrame () const
 True iff this Entity is also a Frame. More...
 
bool isQuiet () const
 Returns true if this Entity is set to be quiet. More...
 
virtual void notifyTransformUpdate ()
 Notify the transformation update of this Entity that its parent Frame's pose is needed. More...
 
virtual void dirtyTransform ()
 Notify the transformation update of this Entity that its parent Frame's pose is needed. More...
 
bool needsTransformUpdate () const
 Returns true iff a transform update is needed for this Entity. More...
 
virtual void notifyVelocityUpdate ()
 Notify the velocity update of this Entity that its parent Frame's velocity is needed. More...
 
virtual void dirtyVelocity ()
 Notify the velocity update of this Entity that its parent Frame's velocity is needed. More...
 
bool needsVelocityUpdate () const
 Returns true iff a velocity update is needed for this Entity. More...
 
virtual void notifyAccelerationUpdate ()
 Notify the acceleration of this Entity that its parent Frame's acceleration is needed. More...
 
virtual void dirtyAcceleration ()
 Notify the acceleration of this Entity that its parent Frame's acceleration is needed. More...
 
bool needsAccelerationUpdate () const
 Returns true iff an acceleration update is needed for this Entity. More...
 
void setProperties (const UniqueProperties &properties)
 Set the UniqueProperties of this ShapeFrame. More...
 
void setAspectProperties (const AspectProperties &properties)
 Set the AspectProperties of this ShapeFrame. More...
 
const AspectPropertiesgetAspectProperties () const
 
const AspectPropertiesgetAspectProperties () const
 
void setShape (const ShapePtr &shape)
 Set shape. More...
 
ShapePtr getShape ()
 Return shape. More...
 
ConstShapePtr getShape () const
 Return (const) shape. More...
 
bool hasVisualAspect () const
 Check if this Composite currently has VisualAspect . More...
 
VisualAspectgetVisualAspect ()
 Get a(an) VisualAspect from this Composite. More...
 
const VisualAspectgetVisualAspect () const
 Get a(an) VisualAspect from this Composite. More...
 
VisualAspectgetVisualAspect (const bool createIfNull)
 Get a(an) VisualAspect from this Composite. More...
 
void setVisualAspect (const VisualAspect *aspect)
 Make a clone of VisualAspect and place the clone into this Composite. More...
 
void setVisualAspect (std::unique_ptr< VisualAspect > &&aspect)
 Use move semantics to place VisualAspect into this Composite. More...
 
template<typename... Args>
VisualAspectcreateVisualAspect (Args &&... args)
 Construct a(an) VisualAspect inside of this Composite. More...
 
void removeVisualAspect ()
 Remove a(an) VisualAspect from this Composite. More...
 
std::unique_ptr< VisualAspectreleaseVisualAspect ()
 Remove a(an) VisualAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More...
 
bool hasCollisionAspect () const
 Check if this Composite currently has CollisionAspect . More...
 
CollisionAspectgetCollisionAspect ()
 Get a(an) CollisionAspect from this Composite. More...
 
const CollisionAspectgetCollisionAspect () const
 Get a(an) CollisionAspect from this Composite. More...
 
CollisionAspectgetCollisionAspect (const bool createIfNull)
 Get a(an) CollisionAspect from this Composite. More...
 
void setCollisionAspect (const CollisionAspect *aspect)
 Make a clone of CollisionAspect and place the clone into this Composite. More...
 
void setCollisionAspect (std::unique_ptr< CollisionAspect > &&aspect)
 Use move semantics to place CollisionAspect into this Composite. More...
 
template<typename... Args>
CollisionAspectcreateCollisionAspect (Args &&... args)
 Construct a(an) CollisionAspect inside of this Composite. More...
 
void removeCollisionAspect ()
 Remove a(an) CollisionAspect from this Composite. More...
 
std::unique_ptr< CollisionAspectreleaseCollisionAspect ()
 Remove a(an) CollisionAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More...
 
bool hasDynamicsAspect () const
 Check if this Composite currently has DynamicsAspect . More...
 
DynamicsAspectgetDynamicsAspect ()
 Get a(an) DynamicsAspect from this Composite. More...
 
const DynamicsAspectgetDynamicsAspect () const
 Get a(an) DynamicsAspect from this Composite. More...
 
DynamicsAspectgetDynamicsAspect (const bool createIfNull)
 Get a(an) DynamicsAspect from this Composite. More...
 
void setDynamicsAspect (const DynamicsAspect *aspect)
 Make a clone of DynamicsAspect and place the clone into this Composite. More...
 
void setDynamicsAspect (std::unique_ptr< DynamicsAspect > &&aspect)
 Use move semantics to place DynamicsAspect into this Composite. More...
 
template<typename... Args>
DynamicsAspectcreateDynamicsAspect (Args &&... args)
 Construct a(an) DynamicsAspect inside of this Composite. More...
 
void removeDynamicsAspect ()
 Remove a(an) DynamicsAspect from this Composite. More...
 
std::unique_ptr< DynamicsAspectreleaseDynamicsAspect ()
 Remove a(an) DynamicsAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More...
 
ShapeFrameasShapeFrame () override
 Convert 'this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr. More...
 
const ShapeFrameasShapeFrame () const override
 Convert 'const this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr. More...
 
bool isShapeNode () const
 Returns true if this Frame is a ShapeNode. More...
 
virtual ShapeNodeasShapeNode ()
 Convert 'this' into a ShapeNode pointer if ShapeFrame is a ShapeNode, otherwise return nullptr. More...
 
virtual const ShapeNodeasShapeNode () const
 Convert 'const this' into a ShapeNode pointer if ShapeFrame is a ShapeNode, otherwise return nullptr. More...
 
virtual std::size_t incrementVersion ()
 Increment the version for this object. More...
 
virtual std::size_t getVersion () const
 Get the version number of this object. More...
 
const Eigen::Isometry3d & getWorldTransform () const
 Get the transform of this Frame with respect to the World Frame. More...
 
Eigen::Isometry3d getTransform (const Frame *_withRespectTo=Frame::World()) const
 Get the transform of this Frame with respect to some other Frame. More...
 
Eigen::Isometry3d getTransform (const Frame *withRespectTo, const Frame *inCoordinatesOf) const
 Get the transform of this Frame with respect to some other Frame. More...
 
const Eigen::Vector6dgetSpatialVelocity () const
 Get the total spatial velocity of this Frame in the coordinates of this Frame. More...
 
Eigen::Vector6d getSpatialVelocity (const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial velocity of this Frame relative to some other Frame. More...
 
Eigen::Vector6d getSpatialVelocity (const Eigen::Vector3d &_offset) const
 Get the spatial velocity of a fixed point in this Frame. More...
 
Eigen::Vector6d getSpatialVelocity (const Eigen::Vector3d &_offset, const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial velocity of a fixed point in this Frame. More...
 
Eigen::Vector3d getLinearVelocity (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the linear portion of classical velocity of this Frame relative to some other Frame. More...
 
Eigen::Vector3d getLinearVelocity (const Eigen::Vector3d &_offset, const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the linear velocity of a point that is fixed in this Frame. More...
 
Eigen::Vector3d getAngularVelocity (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the angular portion of classical velocity of this Frame relative to some other Frame. More...
 
const Eigen::Vector6dgetSpatialAcceleration () const
 Get the total spatial acceleration of this Frame in the coordinates of this Frame. More...
 
Eigen::Vector6d getSpatialAcceleration (const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial acceleration of this Frame relative to some other Frame. More...
 
Eigen::Vector6d getSpatialAcceleration (const Eigen::Vector3d &_offset) const
 Get the spatial acceleration of a fixed point in this Frame. More...
 
Eigen::Vector6d getSpatialAcceleration (const Eigen::Vector3d &_offset, const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial acceleration of a fixed point in this Frame. More...
 
Eigen::Vector3d getLinearAcceleration (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the linear portion of classical acceleration of this Frame relative to some other Frame. More...
 
Eigen::Vector3d getLinearAcceleration (const Eigen::Vector3d &_offset, const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 
Eigen::Vector3d getAngularAcceleration (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the angular portion of classical acceleration of this Frame relative to some other Frame. More...
 
const std::set< Entity * > & getChildEntities ()
 Get a container with the Entities that are children of this Frame. More...
 
const std::set< const Entity * > getChildEntities () const
 Get a container with the Entities that are children of this Frame. More...
 
std::size_t getNumChildEntities () const
 Get the number of Entities that are currently children of this Frame. More...
 
const std::set< Frame * > & getChildFrames ()
 Get a container with the Frames that are children of this Frame. More...
 
std::set< const Frame * > getChildFrames () const
 Get a container with the Frames that are children of this Frame. More...
 
std::size_t getNumChildFrames () const
 Get the number of Frames that are currently children of this Frame. More...
 
bool isShapeFrame () const
 Returns true if this Frame is a ShapeFrame. More...
 
bool isWorld () const
 Returns true if this Frame is the World Frame. More...
 
virtual void dirtyTransform () override
 Notify the transformation updates of this Frame and all its children are needed. More...
 
virtual void dirtyVelocity () override
 Notify the velocity updates of this Frame and all its children are needed. More...
 
virtual void dirtyAcceleration () override
 Notify the acceleration updates of this Frame and all its children are needed. More...
 

Static Public Member Functions

template<typename... Args>
static std::shared_ptr< SimpleFramecreateShared (Args &&... args)
 
static FrameWorld ()
 
static std::shared_ptr< FrameWorldShared ()
 

Public Attributes

common::SlotRegister< ShapeUpdatedSignalonShapeUpdated
 Slot register for shape updated signal. More...
 
common::SlotRegister< RelativeTransformUpdatedSignalonRelativeTransformUpdated
 Slot register for relative transformation updated signal. More...
 

Protected Types

enum  ConstructFrameTag { ConstructFrame }
 Used when constructing a Frame class, because the Frame constructor will take care of setting up the parameters you pass into it. More...
 
enum  ConstructAbstractTag { ConstructAbstract }
 Used when constructing a pure abstract class, because calling the Entity constructor is just a formality. More...
 
enum  ConstructAbstractTag { ConstructAbstract }
 Used when constructing a pure abstract class, because calling the Frame constructor is just a formality. More...
 

Protected Member Functions

virtual void changeParentFrame (Frame *_newParentFrame)
 Used by derived classes to change their parent frames. More...
 
void sendDestructionNotification () const
 Send a destruction notification to all Observers. More...
 
void addObserver (Observer *_observer) const
 Add an Observer to the list of Observers. More...
 
void removeObserver (Observer *_observer) const
 Remove an Observer from the list of Observers. More...
 
void setVersionDependentObject (VersionCounter *dependent)
 
virtual void changeParentFrame (Frame *_newParentFrame) override
 Used by derived classes to change their parent frames. More...
 
virtual void processNewEntity (Entity *_newChildEntity)
 Called during a parent Frame change to allow extensions of the Frame class to handle new children in customized ways. More...
 
virtual void processRemovedEntity (Entity *_oldChildEntity)
 Called when a child Entity is removed from its parent Frame. More...
 

Protected Attributes

std::string mName
 Name of this SimpleFrame. More...
 
Eigen::Isometry3d mRelativeTf
 Relative transform of the SimpleFrame. More...
 
Eigen::Vector6d mRelativeVelocity
 Relative spatial velocity of the SimpleFrame. More...
 
Eigen::Vector6d mRelativeAcceleration
 Relative spatial acceleration of the SimpleFrame. More...
 
Eigen::Vector6d mPartialAcceleration
 Partial Acceleration of this Frame. More...
 
FramemParentFrame
 Parent frame of this Entity. More...
 
bool mNeedTransformUpdate
 Does this Entity need a Transform update. More...
 
bool mNeedVelocityUpdate
 Does this Entity need a Velocity update. More...
 
bool mNeedAccelerationUpdate
 Does this Entity need an Acceleration update. More...
 
FrameChangedSignal mFrameChangedSignal
 Frame changed signal. More...
 
NameChangedSignal mNameChangedSignal
 Name changed signal. More...
 
EntitySignal mTransformUpdatedSignal
 Transform changed signal. More...
 
EntitySignal mVelocityChangedSignal
 Velocity changed signal. More...
 
EntitySignal mAccelerationChangedSignal
 Acceleration changed signal. More...
 
std::set< Observer * > mObservers
 List of current Observers. More...
 
bool mAmShapeNode
 Contains whether or not this is a ShapeNode. More...
 
ShapeUpdatedSignal mShapeUpdatedSignal
 Shape updated signal. More...
 
RelativeTransformUpdatedSignal mRelativeTransformUpdatedSignal
 Relative transformation updated signal. More...
 
common::Connection mConnectionForShapeVersionChange
 Connect to changes in the Shape version. More...
 
std::size_t mVersion
 
AspectProperties mAspectProperties
 Aspect::Properties data, directly accessible to your derived class. More...
 
Eigen::Isometry3d mWorldTransform
 World transform of this Frame. More...
 
Eigen::Vector6d mVelocity
 Total velocity of this Frame, in the coordinates of this Frame. More...
 
Eigen::Vector6d mAcceleration
 Total acceleration of this Frame, in the coordinates of this Frame. More...
 
std::set< Frame * > mChildFrames
 Container of this Frame's child Frames. More...
 
std::set< Entity * > mChildEntities
 Container of this Frame's child Entities. More...
 

Private Types

enum  ConstructWorldTag { ConstructWorld }
 Used when constructing the World. More...
 

Private Attributes

VersionCountermDependent
 
const bool mAmWorld
 Contains whether or not this is the World Frame. More...
 
bool mAmShapeFrame
 Contains whether or not this is a ShapeFrame. More...
 

Slot registers

common::SlotRegister< FrameChangedSignalonFrameChanged
 Slot register for frame changed signal. More...
 
common::SlotRegister< NameChangedSignalonNameChanged
 Slot register for name changed signal. More...
 
common::SlotRegister< EntitySignalonTransformUpdated
 Slot register for transform updated signal. More...
 
common::SlotRegister< EntitySignalonVelocityChanged
 Slot register for velocity updated signal. More...
 
common::SlotRegister< EntitySignalonAccelerationChanged
 Slot register for acceleration updated signal. More...
 
const bool mAmQuiet
 Whether or not this Entity is set to be quiet. More...
 
bool mAmFrame
 Whether or not this Entity is a Frame. More...
 

Detailed Description

The SimpleFrame class offers a user-friendly way of creating arbitrary Frames within the kinematic tree structure of DART.

The user is free to specify the relative transform, relative velocity, and relative acceleration of this Frame.

While many classes (such as BodyNode and EndEffector) inherit the Frame class, they all have restrictions (constraints) on how their properties (such as position, velocity, and acceleration) can be modified. Conversely, the SimpleFrame class is nothing but a simple abstract Frame whose properties can be arbitrarily set and modified by the user.

Member Typedef Documentation

◆ Aspect

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases >::Aspect = typename Impl::Aspect
inherited

◆ AspectProperties

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases >::AspectProperties = typename Impl::AspectProperties
inherited

◆ AspectPropertiesData

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases >::AspectPropertiesData = typename Impl::AspectPropertiesData
inherited

◆ Base

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases >::Base = CompositeJoiner<Impl, CompositeBases...>
inherited

◆ Derived

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases >::Derived = typename Impl::Derived
inherited

◆ EntitySignal

◆ FrameChangedSignal

using dart::dynamics::Entity::FrameChangedSignal = common::Signal<void( const Entity*, const Frame* _oldFrame, const Frame* _newFrame)>
inherited

◆ Impl

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases >::Impl = EmbedProperties<DerivedT, PropertiesDataT>
inherited

◆ NameChangedSignal

using dart::dynamics::Entity::NameChangedSignal = common::Signal<void( const Entity*, const std::string& _oldName, const std::string& _newName)>
inherited

◆ Properties

◆ RelativeTransformUpdatedSignal

using dart::dynamics::ShapeFrame::RelativeTransformUpdatedSignal = common::Signal<void( const ShapeFrame* thisShapeFrame, const Eigen::Isometry3d& oldTransform, const Eigen::Isometry3d& newTransform)>
inherited

◆ ShapeUpdatedSignal

using dart::dynamics::ShapeFrame::ShapeUpdatedSignal = common::Signal<void( const ShapeFrame* thisShapeFrame, const ShapePtr& oldShape, const ShapePtr& newShape)>
inherited

◆ UniqueProperties

Member Enumeration Documentation

◆ ConstructAbstractTag [1/2]

Used when constructing a pure abstract class, because calling the Entity constructor is just a formality.

Enumerator
ConstructAbstract 

◆ ConstructAbstractTag [2/2]

Used when constructing a pure abstract class, because calling the Frame constructor is just a formality.

Enumerator
ConstructAbstract 

◆ ConstructFrameTag

Used when constructing a Frame class, because the Frame constructor will take care of setting up the parameters you pass into it.

Enumerator
ConstructFrame 

◆ ConstructWorldTag

Used when constructing the World.

Enumerator
ConstructWorld 

Constructor & Destructor Documentation

◆ SimpleFrame() [1/2]

dart::dynamics::SimpleFrame::SimpleFrame ( Frame _refFrame = Frame::World(),
const std::string &  _name = "simple_frame",
const Eigen::Isometry3d &  _relativeTransform = Eigen::Isometry3d::Identity() 
)
explicit

Constructor.

◆ SimpleFrame() [2/2]

dart::dynamics::SimpleFrame::SimpleFrame ( const SimpleFrame _otherFrame,
Frame _refFrame = Frame::World() 
)

Copy constructor.

Note that the parent frame of _otherFrame will not be copied as the reference frame for the newly created SimpleFrame.

◆ ~SimpleFrame()

dart::dynamics::SimpleFrame::~SimpleFrame ( )
override

Destructor.

Member Function Documentation

◆ addObserver()

void dart::common::Subject::addObserver ( Observer _observer) const
protectedinherited

Add an Observer to the list of Observers.

◆ asShapeFrame() [1/2]

const ShapeFrame * dart::dynamics::ShapeFrame::asShapeFrame ( ) const
overridevirtualinherited

Convert 'const this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.

Reimplemented from dart::dynamics::Frame.

◆ asShapeFrame() [2/2]

ShapeFrame * dart::dynamics::ShapeFrame::asShapeFrame ( )
overridevirtualinherited

Convert 'this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.

Reimplemented from dart::dynamics::Frame.

◆ asShapeNode() [1/2]

ShapeNode * dart::dynamics::ShapeFrame::asShapeNode ( )
virtualinherited

Convert 'this' into a ShapeNode pointer if ShapeFrame is a ShapeNode, otherwise return nullptr.

◆ asShapeNode() [2/2]

const ShapeNode * dart::dynamics::ShapeFrame::asShapeNode ( ) const
virtualinherited

Convert 'const this' into a ShapeNode pointer if ShapeFrame is a ShapeNode, otherwise return nullptr.

This should be preferred over performing a dynamic_cast when you want to cast a ShapeFrame into a ShapeNode, because this method costs less.

◆ changeParentFrame() [1/2]

void dart::dynamics::Entity::changeParentFrame ( Frame _newParentFrame)
protectedvirtualinherited

Used by derived classes to change their parent frames.

Reimplemented in dart::dynamics::Frame.

◆ changeParentFrame() [2/2]

void dart::dynamics::Frame::changeParentFrame ( Frame _newParentFrame)
overrideprotectedvirtualinherited

Used by derived classes to change their parent frames.

Reimplemented from dart::dynamics::Entity.

◆ clone()

SimpleFramePtr dart::dynamics::SimpleFrame::clone ( Frame _refFrame = Frame::World()) const

Create a new SimpleFrame with the same world transform, velocity, and acceleration as this one.

_refFrame will be used as the reference Frame of the new SimpleFrame.

◆ copy() [1/2]

void dart::dynamics::SimpleFrame::copy ( const Frame _otherFrame,
Frame _refFrame = Frame::World(),
bool  _copyProperties = true 
)

Make the world transform, world velocity, and world acceleration of this SimpleFrame match another Frame.

The _refFrame argument will be the new parent Frame of this SimpleFrame. Also copies the Entity Properties if _copyProperties is left as true.

◆ copy() [2/2]

void dart::dynamics::SimpleFrame::copy ( const Frame _otherFrame,
Frame _refFrame = Frame::World(),
bool  _copyProperties = true 
)

Same as copy(const Frame&)

◆ createCollisionAspect()

template<typename... Args>
CollisionAspect* dart::dynamics::ShapeFrame::createCollisionAspect ( Args &&...  args)
inlineinherited

Construct a(an) CollisionAspect inside of this Composite.

◆ createDynamicsAspect()

template<typename... Args>
DynamicsAspect* dart::dynamics::ShapeFrame::createDynamicsAspect ( Args &&...  args)
inlineinherited

Construct a(an) DynamicsAspect inside of this Composite.

◆ createShared()

template<typename... Args>
static std::shared_ptr< SimpleFrame > dart::dynamics::SimpleFrame::createShared ( Args &&...  args)
inlinestatic

Create shared instance of this class

◆ createVisualAspect()

template<typename... Args>
VisualAspect* dart::dynamics::ShapeFrame::createVisualAspect ( Args &&...  args)
inlineinherited

Construct a(an) VisualAspect inside of this Composite.

◆ descendsFrom()

bool dart::dynamics::Entity::descendsFrom ( const Frame _someFrame) const
inherited

Returns true if and only if this Entity is itself (i.e.

this == _someFrame) or depends on (i.e. kinematically descends from) _someFrame.

If _someFrame is nullptr, this returns true in order to accommodate BodyNodes which always have a nullptr BodyNode as the parent of a root BodyNode.

◆ dirtyAcceleration() [1/2]

void dart::dynamics::Entity::dirtyAcceleration ( )
virtualinherited

Notify the acceleration of this Entity that its parent Frame's acceleration is needed.

Reimplemented in dart::dynamics::PointMassNotifier, dart::dynamics::Frame, and dart::dynamics::BodyNode.

◆ dirtyAcceleration() [2/2]

void dart::dynamics::Frame::dirtyAcceleration ( )
overridevirtualinherited

Notify the acceleration updates of this Frame and all its children are needed.

Reimplemented from dart::dynamics::Entity.

Reimplemented in dart::dynamics::BodyNode.

◆ dirtyTransform() [1/2]

void dart::dynamics::Entity::dirtyTransform ( )
virtualinherited

Notify the transformation update of this Entity that its parent Frame's pose is needed.

Reimplemented in dart::dynamics::PointMassNotifier, dart::dynamics::Frame, and dart::dynamics::BodyNode.

◆ dirtyTransform() [2/2]

void dart::dynamics::Frame::dirtyTransform ( )
overridevirtualinherited

Notify the transformation updates of this Frame and all its children are needed.

Reimplemented from dart::dynamics::Entity.

Reimplemented in dart::dynamics::BodyNode.

◆ dirtyVelocity() [1/2]

void dart::dynamics::Entity::dirtyVelocity ( )
virtualinherited

Notify the velocity update of this Entity that its parent Frame's velocity is needed.

Reimplemented in dart::dynamics::PointMassNotifier, dart::dynamics::Frame, and dart::dynamics::BodyNode.

◆ dirtyVelocity() [2/2]

void dart::dynamics::Frame::dirtyVelocity ( )
overridevirtualinherited

Notify the velocity updates of this Frame and all its children are needed.

Reimplemented from dart::dynamics::Entity.

Reimplemented in dart::dynamics::BodyNode.

◆ getAngularAcceleration()

Eigen::Vector3d dart::dynamics::Frame::getAngularAcceleration ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the angular portion of classical acceleration of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getAngularVelocity()

Eigen::Vector3d dart::dynamics::Frame::getAngularVelocity ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the angular portion of classical velocity of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getAspectProperties() [1/2]

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
const AspectProperties& dart::common::EmbedProperties< DerivedT, PropertiesDataT >::getAspectProperties
inlineinherited

◆ getAspectProperties() [2/2]

const ShapeFrame::AspectProperties & dart::dynamics::ShapeFrame::getAspectProperties ( ) const
inherited

◆ getChildEntities() [1/2]

const std::set< Entity * > & dart::dynamics::Frame::getChildEntities ( )
inherited

Get a container with the Entities that are children of this Frame.

std::set is used because Entities may be arbitrarily added and removed from a parent Frame, and each entry should be unique. std::set makes this procedure easier.

◆ getChildEntities() [2/2]

const std::set< const Entity * > dart::dynamics::Frame::getChildEntities ( ) const
inherited

Get a container with the Entities that are children of this Frame.

Note that this is version is slightly less efficient than the non-const version because it needs to rebuild a set where each pointer is converted to be a const pointer.

◆ getChildFrames() [1/2]

const std::set< Frame * > & dart::dynamics::Frame::getChildFrames ( )
inherited

Get a container with the Frames that are children of this Frame.

std::set is used because Frames may be arbitrarily added and removed from a parent Frame, and each entry should be unique.

◆ getChildFrames() [2/2]

std::set< const Frame * > dart::dynamics::Frame::getChildFrames ( ) const
inherited

Get a container with the Frames that are children of this Frame.

Note that this version is less efficient than the non-const version because it needs to rebuild a set so that the entries are const.

◆ getCollisionAspect() [1/3]

CollisionAspect* dart::dynamics::ShapeFrame::getCollisionAspect ( )
inlineinherited

Get a(an) CollisionAspect from this Composite.

◆ getCollisionAspect() [2/3]

const CollisionAspect* dart::dynamics::ShapeFrame::getCollisionAspect ( ) const
inlineinherited

Get a(an) CollisionAspect from this Composite.

◆ getCollisionAspect() [3/3]

CollisionAspect* dart::dynamics::ShapeFrame::getCollisionAspect ( const bool  createIfNull)
inlineinherited

Get a(an) CollisionAspect from this Composite.

If _createIfNull is true, then a(an) CollisionAspect will be generated if one does not already exist.

◆ getDynamicsAspect() [1/3]

DynamicsAspect* dart::dynamics::ShapeFrame::getDynamicsAspect ( )
inlineinherited

Get a(an) DynamicsAspect from this Composite.

◆ getDynamicsAspect() [2/3]

const DynamicsAspect* dart::dynamics::ShapeFrame::getDynamicsAspect ( ) const
inlineinherited

Get a(an) DynamicsAspect from this Composite.

◆ getDynamicsAspect() [3/3]

DynamicsAspect* dart::dynamics::ShapeFrame::getDynamicsAspect ( const bool  createIfNull)
inlineinherited

Get a(an) DynamicsAspect from this Composite.

If _createIfNull is true, then a(an) DynamicsAspect will be generated if one does not already exist.

◆ getLinearAcceleration() [1/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearAcceleration ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

◆ getLinearAcceleration() [2/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearAcceleration ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the linear portion of classical acceleration of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getLinearVelocity() [1/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearVelocity ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the linear velocity of a point that is fixed in this Frame.

You can specify a relative Frame, and it can be expressed in the coordinates of any Frame.

◆ getLinearVelocity() [2/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearVelocity ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the linear portion of classical velocity of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getName()

const std::string & dart::dynamics::SimpleFrame::getName ( ) const
overridevirtual

Return the name of this Entity.

Implements dart::dynamics::Entity.

◆ getNumChildEntities()

std::size_t dart::dynamics::Frame::getNumChildEntities ( ) const
inherited

Get the number of Entities that are currently children of this Frame.

◆ getNumChildFrames()

std::size_t dart::dynamics::Frame::getNumChildFrames ( ) const
inherited

Get the number of Frames that are currently children of this Frame.

◆ getParentFrame() [1/2]

Frame * dart::dynamics::Entity::getParentFrame ( )
inherited

Get the parent (reference) frame of this Entity.

◆ getParentFrame() [2/2]

const Frame * dart::dynamics::Entity::getParentFrame ( ) const
inherited

Get the parent (reference) frame of this Entity.

◆ getPartialAcceleration()

const Eigen::Vector6d & dart::dynamics::SimpleFrame::getPartialAcceleration ( ) const
overridevirtual

The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration.

This function returns that component of acceleration.

Implements dart::dynamics::Frame.

◆ getPrimaryRelativeAcceleration()

const Eigen::Vector6d & dart::dynamics::SimpleFrame::getPrimaryRelativeAcceleration ( ) const
overridevirtual

The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration, accessible by getPartialAcceleration().

We save operations during our forward kinematics by computing and storing the partial acceleration separately from the rest of the Frame's acceleration. getPrimaryRelativeAcceleration() will return the portion of the relative spatial acceleration that is not contained in the partial acceleration. To get the full spatial acceleration of this Frame relative to its parent Frame, use getRelativeSpatialAcceleration(). To get the full spatial acceleration of this Frame relative to the World Frame, use getSpatialAcceleration().

Implements dart::dynamics::Frame.

◆ getRelativeSpatialAcceleration()

const Eigen::Vector6d & dart::dynamics::SimpleFrame::getRelativeSpatialAcceleration ( ) const
overridevirtual

Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this Frame.

Implements dart::dynamics::Frame.

◆ getRelativeSpatialVelocity()

const Eigen::Vector6d & dart::dynamics::SimpleFrame::getRelativeSpatialVelocity ( ) const
overridevirtual

Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates.

Implements dart::dynamics::Frame.

◆ getRelativeTransform()

const Eigen::Isometry3d & dart::dynamics::SimpleFrame::getRelativeTransform ( ) const
overridevirtual

Get the transform of this Frame with respect to its parent Frame.

Implements dart::dynamics::Frame.

◆ getShape() [1/2]

ShapePtr dart::dynamics::ShapeFrame::getShape ( )
inherited

Return shape.

◆ getShape() [2/2]

ConstShapePtr dart::dynamics::ShapeFrame::getShape ( ) const
inherited

Return (const) shape.

◆ getSpatialAcceleration() [1/4]

const Eigen::Vector6d & dart::dynamics::Frame::getSpatialAcceleration ( ) const
inherited

Get the total spatial acceleration of this Frame in the coordinates of this Frame.

◆ getSpatialAcceleration() [2/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialAcceleration ( const Eigen::Vector3d &  _offset) const
inherited

Get the spatial acceleration of a fixed point in this Frame.

The acceleration is in coordinates of this Frame and is relative to the World Frame.

◆ getSpatialAcceleration() [3/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialAcceleration ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial acceleration of a fixed point in this Frame.

◆ getSpatialAcceleration() [4/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialAcceleration ( const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial acceleration of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getSpatialVelocity() [1/4]

const Eigen::Vector6d & dart::dynamics::Frame::getSpatialVelocity ( ) const
inherited

Get the total spatial velocity of this Frame in the coordinates of this Frame.

◆ getSpatialVelocity() [2/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialVelocity ( const Eigen::Vector3d &  _offset) const
inherited

Get the spatial velocity of a fixed point in this Frame.

The velocity is in coordinates of this Frame and is relative to the World Frame.

◆ getSpatialVelocity() [3/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialVelocity ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial velocity of a fixed point in this Frame.

◆ getSpatialVelocity() [4/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialVelocity ( const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial velocity of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getTransform() [1/2]

Eigen::Isometry3d dart::dynamics::Frame::getTransform ( const Frame _withRespectTo = Frame::World()) const
inherited

Get the transform of this Frame with respect to some other Frame.

◆ getTransform() [2/2]

Eigen::Isometry3d dart::dynamics::Frame::getTransform ( const Frame withRespectTo,
const Frame inCoordinatesOf 
) const
inherited

Get the transform of this Frame with respect to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getVersion()

std::size_t dart::common::VersionCounter::getVersion ( ) const
virtualinherited

Get the version number of this object.

◆ getVisualAspect() [1/3]

VisualAspect* dart::dynamics::ShapeFrame::getVisualAspect ( )
inlineinherited

Get a(an) VisualAspect from this Composite.

◆ getVisualAspect() [2/3]

const VisualAspect* dart::dynamics::ShapeFrame::getVisualAspect ( ) const
inlineinherited

Get a(an) VisualAspect from this Composite.

◆ getVisualAspect() [3/3]

VisualAspect* dart::dynamics::ShapeFrame::getVisualAspect ( const bool  createIfNull)
inlineinherited

Get a(an) VisualAspect from this Composite.

If _createIfNull is true, then a(an) VisualAspect will be generated if one does not already exist.

◆ getWorldTransform()

const Eigen::Isometry3d & dart::dynamics::Frame::getWorldTransform ( ) const
inherited

Get the transform of this Frame with respect to the World Frame.

◆ hasCollisionAspect()

bool dart::dynamics::ShapeFrame::hasCollisionAspect ( ) const
inlineinherited

Check if this Composite currently has CollisionAspect .

◆ hasDynamicsAspect()

bool dart::dynamics::ShapeFrame::hasDynamicsAspect ( ) const
inlineinherited

Check if this Composite currently has DynamicsAspect .

◆ hasVisualAspect()

bool dart::dynamics::ShapeFrame::hasVisualAspect ( ) const
inlineinherited

Check if this Composite currently has VisualAspect .

◆ incrementVersion()

std::size_t dart::common::VersionCounter::incrementVersion ( )
virtualinherited

Increment the version for this object.

Reimplemented in dart::dynamics::Shape.

◆ isFrame()

bool dart::dynamics::Entity::isFrame ( ) const
inherited

True iff this Entity is also a Frame.

◆ isQuiet()

bool dart::dynamics::Entity::isQuiet ( ) const
inherited

Returns true if this Entity is set to be quiet.

A quiet entity is unknown to its parent Frame. It will not be tracked by its parent; it will not receive notifications from its parent, and it will not be rendered. The advantage to a quiet Entity is that it has less overhead when constructing and deconstructing, which makes it more suitable for temporary objects.

◆ isShapeFrame()

bool dart::dynamics::Frame::isShapeFrame ( ) const
inherited

Returns true if this Frame is a ShapeFrame.

◆ isShapeNode()

bool dart::dynamics::ShapeFrame::isShapeNode ( ) const
inherited

Returns true if this Frame is a ShapeNode.

◆ isWorld()

bool dart::dynamics::Frame::isWorld ( ) const
inherited

Returns true if this Frame is the World Frame.

◆ needsAccelerationUpdate()

bool dart::dynamics::Entity::needsAccelerationUpdate ( ) const
inherited

Returns true iff an acceleration update is needed for this Entity.

◆ needsTransformUpdate()

bool dart::dynamics::Entity::needsTransformUpdate ( ) const
inherited

Returns true iff a transform update is needed for this Entity.

◆ needsVelocityUpdate()

bool dart::dynamics::Entity::needsVelocityUpdate ( ) const
inherited

Returns true iff a velocity update is needed for this Entity.

◆ notifyAccelerationUpdate()

void dart::dynamics::Entity::notifyAccelerationUpdate ( )
virtualinherited

Notify the acceleration of this Entity that its parent Frame's acceleration is needed.

◆ notifyTransformUpdate()

void dart::dynamics::Entity::notifyTransformUpdate ( )
virtualinherited

Notify the transformation update of this Entity that its parent Frame's pose is needed.

◆ notifyVelocityUpdate()

void dart::dynamics::Entity::notifyVelocityUpdate ( )
virtualinherited

Notify the velocity update of this Entity that its parent Frame's velocity is needed.

◆ operator=()

SimpleFrame & dart::dynamics::SimpleFrame::operator= ( const SimpleFrame _otherFrame)

Same as copy(const Frame&) except the parent frame of this SimpleFrame is left the same, and _copyProperties is set to false.

◆ processNewEntity()

void dart::dynamics::Frame::processNewEntity ( Entity _newChildEntity)
protectedvirtualinherited

Called during a parent Frame change to allow extensions of the Frame class to handle new children in customized ways.

This function is a no op unless an inheriting class (such as BodyNode) overrides it.

Reimplemented in dart::dynamics::BodyNode.

◆ processRemovedEntity()

void dart::dynamics::Frame::processRemovedEntity ( Entity _oldChildEntity)
protectedvirtualinherited

Called when a child Entity is removed from its parent Frame.

This allows special post-processing to be performed for extensions of the Frame class.

Reimplemented in dart::dynamics::BodyNode.

◆ releaseCollisionAspect()

std::unique_ptr< CollisionAspect > dart::dynamics::ShapeFrame::releaseCollisionAspect ( )
inlineinherited

Remove a(an) CollisionAspect from this Composite, but return its unique_ptr instead of letting it be deleted.

This allows you to safely use move semantics to transfer a(an) CollisionAspect between two Composites.

◆ releaseDynamicsAspect()

std::unique_ptr< DynamicsAspect > dart::dynamics::ShapeFrame::releaseDynamicsAspect ( )
inlineinherited

Remove a(an) DynamicsAspect from this Composite, but return its unique_ptr instead of letting it be deleted.

This allows you to safely use move semantics to transfer a(an) DynamicsAspect between two Composites.

◆ releaseVisualAspect()

std::unique_ptr< VisualAspect > dart::dynamics::ShapeFrame::releaseVisualAspect ( )
inlineinherited

Remove a(an) VisualAspect from this Composite, but return its unique_ptr instead of letting it be deleted.

This allows you to safely use move semantics to transfer a(an) VisualAspect between two Composites.

◆ removeCollisionAspect()

void dart::dynamics::ShapeFrame::removeCollisionAspect ( )
inlineinherited

Remove a(an) CollisionAspect from this Composite.

◆ removeDynamicsAspect()

void dart::dynamics::ShapeFrame::removeDynamicsAspect ( )
inlineinherited

Remove a(an) DynamicsAspect from this Composite.

◆ removeObserver()

void dart::common::Subject::removeObserver ( Observer _observer) const
protectedinherited

Remove an Observer from the list of Observers.

◆ removeVisualAspect()

void dart::dynamics::ShapeFrame::removeVisualAspect ( )
inlineinherited

Remove a(an) VisualAspect from this Composite.

◆ sendDestructionNotification()

void dart::common::Subject::sendDestructionNotification ( ) const
protectedinherited

Send a destruction notification to all Observers.

This will cause all Observers to behave as if this Subject has been permanently deleted, so it should only be called when that behavior is desired.

◆ setAspectProperties()

void dart::dynamics::ShapeFrame::setAspectProperties ( const AspectProperties properties)
inherited

Set the AspectProperties of this ShapeFrame.

◆ setClassicDerivatives()

void dart::dynamics::SimpleFrame::setClassicDerivatives ( const Eigen::Vector3d &  _linearVelocity = Eigen::Vector3d::Zero(),
const Eigen::Vector3d &  _angularVelocity = Eigen::Vector3d::Zero(),
const Eigen::Vector3d &  _linearAcceleration = Eigen::Vector3d::Zero(),
const Eigen::Vector3d &  _angularAcceleration = Eigen::Vector3d::Zero() 
)

Set the relative velocity and acceleration of this Frame according to classical (non-spatial) relative velocity and relative acceleration vectors.

These values must be given with respect to this Frame's parent (note: this is unlike setRelativeSpatialVelocity and setRelativeSpatialAcceleration which expect values in the Frame's own coordinates).

This method is slightly less computationally efficient than using setRelativeSpatialVelocity and setRelativeSpatialAcceleration, but offers the most intuitive way of setting relative velocities and relative accelerations.

These values are equivalent to the terms in the Newton-Euler

◆ setCollisionAspect() [1/2]

void dart::dynamics::ShapeFrame::setCollisionAspect ( const CollisionAspect aspect)
inlineinherited

Make a clone of CollisionAspect and place the clone into this Composite.

If a(an) CollisionAspect already exists in this Composite, the existing CollisionAspect will be destroyed.

◆ setCollisionAspect() [2/2]

void dart::dynamics::ShapeFrame::setCollisionAspect ( std::unique_ptr< CollisionAspect > &&  aspect)
inlineinherited

Use move semantics to place CollisionAspect into this Composite.

If a(an) CollisionAspect already exists in this Composite, the existing CollisionAspect will be destroyed.

◆ setDynamicsAspect() [1/2]

void dart::dynamics::ShapeFrame::setDynamicsAspect ( const DynamicsAspect aspect)
inlineinherited

Make a clone of DynamicsAspect and place the clone into this Composite.

If a(an) DynamicsAspect already exists in this Composite, the existing DynamicsAspect will be destroyed.

◆ setDynamicsAspect() [2/2]

void dart::dynamics::ShapeFrame::setDynamicsAspect ( std::unique_ptr< DynamicsAspect > &&  aspect)
inlineinherited

Use move semantics to place DynamicsAspect into this Composite.

If a(an) DynamicsAspect already exists in this Composite, the existing DynamicsAspect will be destroyed.

◆ setName()

const std::string & dart::dynamics::SimpleFrame::setName ( const std::string &  _name)
overridevirtual

Set name.

Some implementations of Entity may make alterations to the name that gets passed in. The final name that this entity will use gets passed back in the return of this function.

Implements dart::dynamics::Entity.

◆ setParentFrame()

void dart::dynamics::Detachable::setParentFrame ( Frame _newParentFrame)
virtualinherited

Allows the user to change the parent Frame of this Entity.

◆ setProperties()

void dart::dynamics::ShapeFrame::setProperties ( const UniqueProperties properties)
inherited

Set the UniqueProperties of this ShapeFrame.

◆ setRelativeRotation()

void dart::dynamics::SimpleFrame::setRelativeRotation ( const Eigen::Matrix3d &  _newRotation)

Set the relative rotation of this SimpleFrame.

◆ setRelativeSpatialAcceleration() [1/2]

void dart::dynamics::SimpleFrame::setRelativeSpatialAcceleration ( const Eigen::Vector6d _newSpatialAcceleration)

Set the spatial acceleration of this SimpleFrame relative to its parent Frame.

Must be in the coordinates of THIS Frame.

This is the most computationally efficient way of setting relative acceleration.

◆ setRelativeSpatialAcceleration() [2/2]

void dart::dynamics::SimpleFrame::setRelativeSpatialAcceleration ( const Eigen::Vector6d _newSpatialAcceleration,
const Frame _inCoordinatesOf 
)

Set the spatial acceleration of this SimpleFrame relative to its parent Frame.

Specify the coordinate Frame of _newSpatialAcceleration.

◆ setRelativeSpatialVelocity() [1/2]

void dart::dynamics::SimpleFrame::setRelativeSpatialVelocity ( const Eigen::Vector6d _newSpatialVelocity)

Set the spatial velocity of this SimpleFrame relative to its parent Frame.

Must be in the coordinates of THIS Frame.

This is the most computationally efficient way of setting relative velocity.

Use setClassicDerivatives to set the velocity according to classic relative linear and angular velocity values.

◆ setRelativeSpatialVelocity() [2/2]

void dart::dynamics::SimpleFrame::setRelativeSpatialVelocity ( const Eigen::Vector6d _newSpatialVelocity,
const Frame _inCoordinatesOf 
)

Set the spatial velocity of this SimpleFrame relative to its parent Frame.

Specify the coordinate Frame of _newSpatialVelocity.

Use setClassicDerivatives to set the velocity according to classic relative linear and angular velocity values.

◆ setRelativeTransform()

void dart::dynamics::SimpleFrame::setRelativeTransform ( const Eigen::Isometry3d &  _newRelTransform)

Set the relative transform of this SimpleFrame.

◆ setRelativeTranslation()

void dart::dynamics::SimpleFrame::setRelativeTranslation ( const Eigen::Vector3d &  _newTranslation)

Set the relative translation of this SimpleFrame.

◆ setRotation()

void dart::dynamics::SimpleFrame::setRotation ( const Eigen::Matrix3d &  _newRotation,
const Frame _withRespectTo = Frame::World() 
)

Set the rotation of this SimpleFrame so that its rotation with respect to Frame _withRespectTo is equal to _newRotation.

Note that the parent Frame of this SimpleFrame will not be changed.

◆ setShape()

void dart::dynamics::ShapeFrame::setShape ( const ShapePtr shape)
inherited

Set shape.

◆ setTransform()

void dart::dynamics::SimpleFrame::setTransform ( const Eigen::Isometry3d &  _newTransform,
const Frame _withRespectTo = Frame::World() 
)

Set the transform of this SimpleFrame so that its transform with respect to Frame _withRespectTo is equal to _newTransform.

Note that the parent Frame of this SimpleFrame will not be changed.

◆ setTranslation()

void dart::dynamics::SimpleFrame::setTranslation ( const Eigen::Vector3d &  _newTranslation,
const Frame _withRespectTo = Frame::World() 
)

Set the translation of this SimpleFrame so that its translation with respect to Frame _withRespectTo is equal to _newTranslation.

Note that the parent Frame of this SimpleFrame will not be changed.

◆ setVersionDependentObject()

void dart::common::VersionCounter::setVersionDependentObject ( VersionCounter dependent)
protectedinherited

◆ setVisualAspect() [1/2]

void dart::dynamics::ShapeFrame::setVisualAspect ( const VisualAspect aspect)
inlineinherited

Make a clone of VisualAspect and place the clone into this Composite.

If a(an) VisualAspect already exists in this Composite, the existing VisualAspect will be destroyed.

◆ setVisualAspect() [2/2]

void dart::dynamics::ShapeFrame::setVisualAspect ( std::unique_ptr< VisualAspect > &&  aspect)
inlineinherited

Use move semantics to place VisualAspect into this Composite.

If a(an) VisualAspect already exists in this Composite, the existing VisualAspect will be destroyed.

◆ spawnChildSimpleFrame()

std::shared_ptr< SimpleFrame > dart::dynamics::SimpleFrame::spawnChildSimpleFrame ( const std::string &  name = "SimpleFrame",
const Eigen::Isometry3d &  relativeTransform = Eigen::Isometry3d::Identity() 
)

Spawn a child SimpleFrame to this SimpleFrame.

SimpleFrame doesn't have the ownership of the created child SimpleFrame. This means that you are responsible for holding onto the returned SimpleFrame. If you neglect to store it, it will automatically be destroyed.

◆ World()

Frame * dart::dynamics::Frame::World ( )
staticinherited

◆ WorldShared()

std::shared_ptr< Frame > dart::dynamics::Frame::WorldShared ( )
staticinherited

Member Data Documentation

◆ mAcceleration

Eigen::Vector6d dart::dynamics::Frame::mAcceleration
mutableprotectedinherited

Total acceleration of this Frame, in the coordinates of this Frame.

Do not use directly! Use getSpatialAcceleration() to access this quantity

◆ mAccelerationChangedSignal

EntitySignal dart::dynamics::Entity::mAccelerationChangedSignal
protectedinherited

Acceleration changed signal.

◆ mAmFrame

bool dart::dynamics::Entity::mAmFrame
privateinherited

Whether or not this Entity is a Frame.

◆ mAmQuiet

const bool dart::dynamics::Entity::mAmQuiet
privateinherited

Whether or not this Entity is set to be quiet.

◆ mAmShapeFrame

bool dart::dynamics::Frame::mAmShapeFrame
privateinherited

Contains whether or not this is a ShapeFrame.

◆ mAmShapeNode

bool dart::dynamics::ShapeFrame::mAmShapeNode
protectedinherited

Contains whether or not this is a ShapeNode.

◆ mAmWorld

const bool dart::dynamics::Frame::mAmWorld
privateinherited

Contains whether or not this is the World Frame.

◆ mAspectProperties

template<class DerivedT , typename PropertiesDataT , typename... CompositeBases>
AspectProperties dart::common::EmbedProperties< DerivedT, PropertiesDataT >::mAspectProperties
protectedinherited

Aspect::Properties data, directly accessible to your derived class.

◆ mChildEntities

std::set<Entity*> dart::dynamics::Frame::mChildEntities
protectedinherited

Container of this Frame's child Entities.

◆ mChildFrames

std::set<Frame*> dart::dynamics::Frame::mChildFrames
protectedinherited

Container of this Frame's child Frames.

◆ mConnectionForShapeVersionChange

common::Connection dart::dynamics::ShapeFrame::mConnectionForShapeVersionChange
protectedinherited

Connect to changes in the Shape version.

◆ mDependent

VersionCounter* dart::common::VersionCounter::mDependent
privateinherited

◆ mFrameChangedSignal

FrameChangedSignal dart::dynamics::Entity::mFrameChangedSignal
protectedinherited

Frame changed signal.

◆ mName

std::string dart::dynamics::SimpleFrame::mName
protected

Name of this SimpleFrame.

◆ mNameChangedSignal

NameChangedSignal dart::dynamics::Entity::mNameChangedSignal
protectedinherited

Name changed signal.

◆ mNeedAccelerationUpdate

bool dart::dynamics::Entity::mNeedAccelerationUpdate
mutableprotectedinherited

Does this Entity need an Acceleration update.

◆ mNeedTransformUpdate

bool dart::dynamics::Entity::mNeedTransformUpdate
mutableprotectedinherited

Does this Entity need a Transform update.

◆ mNeedVelocityUpdate

bool dart::dynamics::Entity::mNeedVelocityUpdate
mutableprotectedinherited

Does this Entity need a Velocity update.

◆ mObservers

std::set<Observer*> dart::common::Subject::mObservers
mutableprotectedinherited

List of current Observers.

◆ mParentFrame

Frame* dart::dynamics::Entity::mParentFrame
protectedinherited

Parent frame of this Entity.

◆ mPartialAcceleration

Eigen::Vector6d dart::dynamics::SimpleFrame::mPartialAcceleration
mutableprotected

Partial Acceleration of this Frame.

◆ mRelativeAcceleration

Eigen::Vector6d dart::dynamics::SimpleFrame::mRelativeAcceleration
protected

Relative spatial acceleration of the SimpleFrame.

◆ mRelativeTf

Eigen::Isometry3d dart::dynamics::SimpleFrame::mRelativeTf
protected

Relative transform of the SimpleFrame.

◆ mRelativeTransformUpdatedSignal

RelativeTransformUpdatedSignal dart::dynamics::ShapeFrame::mRelativeTransformUpdatedSignal
protectedinherited

Relative transformation updated signal.

◆ mRelativeVelocity

Eigen::Vector6d dart::dynamics::SimpleFrame::mRelativeVelocity
protected

Relative spatial velocity of the SimpleFrame.

◆ mShapeUpdatedSignal

ShapeUpdatedSignal dart::dynamics::ShapeFrame::mShapeUpdatedSignal
protectedinherited

Shape updated signal.

◆ mTransformUpdatedSignal

EntitySignal dart::dynamics::Entity::mTransformUpdatedSignal
protectedinherited

Transform changed signal.

◆ mVelocity

Eigen::Vector6d dart::dynamics::Frame::mVelocity
mutableprotectedinherited

Total velocity of this Frame, in the coordinates of this Frame.

Do not use directly! Use getSpatialVelocity() to access this quantity

◆ mVelocityChangedSignal

EntitySignal dart::dynamics::Entity::mVelocityChangedSignal
protectedinherited

Velocity changed signal.

◆ mVersion

std::size_t dart::common::VersionCounter::mVersion
protectedinherited

◆ mWorldTransform

Eigen::Isometry3d dart::dynamics::Frame::mWorldTransform
mutableprotectedinherited

World transform of this Frame.

This object is mutable to enable auto-updating to happen in the const member getWorldTransform() function

Do not use directly! Use getWorldTransform() to access this quantity

◆ onAccelerationChanged

common::SlotRegister<EntitySignal> dart::dynamics::Entity::onAccelerationChanged
inherited

Slot register for acceleration updated signal.

◆ onFrameChanged

common::SlotRegister<FrameChangedSignal> dart::dynamics::Entity::onFrameChanged
inherited

Slot register for frame changed signal.

◆ onNameChanged

common::SlotRegister<NameChangedSignal> dart::dynamics::Entity::onNameChanged
inherited

Slot register for name changed signal.

◆ onRelativeTransformUpdated

common::SlotRegister<RelativeTransformUpdatedSignal> dart::dynamics::ShapeFrame::onRelativeTransformUpdated
inherited

Slot register for relative transformation updated signal.

◆ onShapeUpdated

common::SlotRegister<ShapeUpdatedSignal> dart::dynamics::ShapeFrame::onShapeUpdated
inherited

Slot register for shape updated signal.

◆ onTransformUpdated

common::SlotRegister<EntitySignal> dart::dynamics::Entity::onTransformUpdated
inherited

Slot register for transform updated signal.

◆ onVelocityChanged

common::SlotRegister<EntitySignal> dart::dynamics::Entity::onVelocityChanged
inherited

Slot register for velocity updated signal.