33 #ifndef DART_DYNAMICS_FRAME_HPP_
34 #define DART_DYNAMICS_FRAME_HPP_
38 #include <Eigen/Geometry>
87 const Frame* inCoordinatesOf)
const;
104 const Frame* _inCoordinatesOf)
const;
112 const Frame* _relativeTo,
113 const Frame* _inCoordinatesOf)
const;
125 const Eigen::Vector3d& _offset,
167 const Frame* _inCoordinatesOf)
const;
176 const Frame* _relativeTo,
177 const Frame* _inCoordinatesOf)
const;
186 const Eigen::Vector3d& _offset,
320 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
349 const
std::
string&
getName() const override final;
364 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
std::string * name
Definition: SkelParser.cpp:1642
Entity class is a base class for any objects that exist in the kinematic tree structure of DART.
Definition: Entity.hpp:60
ConstructAbstractTag
Used when constructing a pure abstract class, because calling the Entity constructor is just a formal...
Definition: Entity.hpp:163
The Frame class serves as the backbone of DART's kinematic tree structure.
Definition: Frame.hpp:57
std::set< Entity * > mChildEntities
Container of this Frame's child Entities.
Definition: Frame.hpp:309
bool isWorld() const
Returns true if this Frame is the World Frame.
Definition: Frame.cpp:445
std::size_t getNumChildEntities() const
Get the number of Entities that are currently children of this Frame.
Definition: Frame.cpp:403
virtual ShapeFrame * asShapeFrame()
Convert 'this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.
Definition: Frame.cpp:433
const std::set< Entity * > & getChildEntities()
Get a container with the Entities that are children of this Frame.
Definition: Frame.cpp:391
bool mAmShapeFrame
Contains whether or not this is a ShapeFrame.
Definition: Frame.hpp:316
virtual void changeParentFrame(Frame *_newParentFrame) override
Used by derived classes to change their parent frames.
Definition: Frame.cpp:538
virtual void processNewEntity(Entity *_newChildEntity)
Called during a parent Frame change to allow extensions of the Frame class to handle new children in ...
Definition: Frame.cpp:579
virtual const Eigen::Vector6d & getPartialAcceleration() const =0
The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as ...
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.
Definition: Frame.cpp:373
ConstructAbstractTag
Used when constructing a pure abstract class, because calling the Frame constructor is just a formali...
Definition: Frame.hpp:257
@ ConstructAbstract
Definition: Frame.hpp:257
const bool mAmWorld
Contains whether or not this is the World Frame.
Definition: Frame.hpp:313
Eigen::Isometry3d mWorldTransform
World transform of this Frame.
Definition: Frame.hpp:293
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.
Definition: Frame.cpp:208
virtual const Eigen::Vector6d & getRelativeSpatialVelocity() const =0
Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates.
std::set< Frame * > mChildFrames
Container of this Frame's child Frames.
Definition: Frame.hpp:306
Eigen::Isometry3d getTransform(const Frame *_withRespectTo=Frame::World()) const
Get the transform of this Frame with respect to some other Frame.
Definition: Frame.cpp:94
virtual void dirtyVelocity() override
Notify the velocity updates of this Frame and all its children are needed.
Definition: Frame.cpp:470
static Frame * World()
Definition: Frame.cpp:72
virtual void processRemovedEntity(Entity *_oldChildEntity)
Called when a child Entity is removed from its parent Frame.
Definition: Frame.cpp:585
std::size_t getNumChildFrames() const
Get the number of Frames that are currently children of this Frame.
Definition: Frame.cpp:421
const std::set< Frame * > & getChildFrames()
Get a container with the Frames that are children of this Frame.
Definition: Frame.cpp:409
ConstructWorldTag
Used when constructing the World.
Definition: Frame.hpp:283
@ ConstructWorld
Definition: Frame.hpp:283
virtual const Eigen::Vector6d & getPrimaryRelativeAcceleration() const =0
The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as ...
const Eigen::Vector6d & getSpatialVelocity() const
Get the total spatial velocity of this Frame in the coordinates of this Frame.
Definition: Frame.cpp:125
const Eigen::Isometry3d & getWorldTransform() const
Get the transform of this Frame with respect to the World Frame.
Definition: Frame.cpp:79
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.
Definition: Frame.cpp:334
Eigen::Vector6d mVelocity
Total velocity of this Frame, in the coordinates of this Frame.
Definition: Frame.hpp:298
Frame()
Default constructor, delegates to Frame(ConstructAbstract_t)
Definition: Frame.cpp:519
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.
Definition: Frame.cpp:223
bool isShapeFrame() const
Returns true if this Frame is a ShapeFrame.
Definition: Frame.cpp:427
Frame(const Frame &)=delete
const Eigen::Vector6d & getSpatialAcceleration() const
Get the total spatial acceleration of this Frame in the coordinates of this Frame.
Definition: Frame.cpp:230
virtual const Eigen::Vector6d & getRelativeSpatialAcceleration() const =0
Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this F...
virtual const Eigen::Isometry3d & getRelativeTransform() const =0
Get the transform of this Frame with respect to its parent Frame.
virtual ~Frame()
Destructor.
Definition: Frame.cpp:45
Eigen::Vector6d mAcceleration
Total acceleration of this Frame, in the coordinates of this Frame.
Definition: Frame.hpp:303
virtual void dirtyAcceleration() override
Notify the acceleration updates of this Frame and all its children are needed.
Definition: Frame.cpp:489
virtual void dirtyTransform() override
Notify the transformation updates of this Frame and all its children are needed.
Definition: Frame.cpp:451
Definition: ShapeFrame.hpp:164
The WorldFrame class is a class that is used internally to create the singleton World Frame.
Definition: Frame.hpp:328
const Eigen::Isometry3d mRelativeTf
This is set to Identity and never changes.
Definition: Frame.hpp:357
const Eigen::Vector6d & getRelativeSpatialVelocity() const override final
Always returns a zero vector.
Definition: Frame.cpp:612
const std::string & getName() const override final
Return the name of this Entity.
Definition: Frame.cpp:645
const Eigen::Isometry3d & getRelativeTransform() const override final
Always returns the Identity Transform.
Definition: Frame.cpp:606
const Eigen::Vector6d & getRelativeSpatialAcceleration() const override final
Always returns a zero vector.
Definition: Frame.cpp:618
static const Eigen::Vector6d mZero
This is set to a Zero vector and never changes.
Definition: Frame.hpp:360
const Eigen::Vector6d & getPartialAcceleration() const override final
Always returns a zero vector.
Definition: Frame.cpp:630
const Eigen::Vector6d & getPrimaryRelativeAcceleration() const override final
Always returns a zero vector.
Definition: Frame.cpp:624
const std::string & setName(const std::string &name) override final
Set name.
Definition: Frame.cpp:636
Definition: Random-impl.hpp:92
Matrix< double, 6, 1 > Vector6d
Definition: MathTypes.hpp:49
Definition: BulletCollisionDetector.cpp:63
Definition: SharedLibraryManager.hpp:43