DART 6.7.3
Loading...
Searching...
No Matches
dart::dynamics::EulerJoint Class Reference

class EulerJoint More...

#include <EulerJoint.hpp>

Inheritance diagram for dart::dynamics::EulerJoint:
dart::common::EmbedPropertiesOnTopOf< DerivedT, PropertiesDataT, CompositeBases > dart::common::CompositeJoiner< EmbedProperties< DerivedT, PropertiesDataT >, CompositeBases... >

Public Types

using AxisOrder = detail::AxisOrder
 
using UniqueProperties = detail::EulerJointUniqueProperties
 
using Properties = detail::EulerJointProperties
 
using Base = detail::EulerJointBase
 
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
 

Public Member Functions

bool hasEulerJointAspect () const
 Check if this Composite currently has EulerJointAspect .
 
Aspect * getEulerJointAspect ()
 Get a(an) EulerJointAspect from this Composite.
 
const Aspect * getEulerJointAspect () const
 Get a(an) EulerJointAspect from this Composite.
 
Aspect * getEulerJointAspect (const bool createIfNull)
 Get a(an) EulerJointAspect from this Composite.
 
void setEulerJointAspect (const Aspect *aspect)
 Make a clone of EulerJointAspect and place the clone into this Composite.
 
void setEulerJointAspect (std::unique_ptr< Aspect > &&aspect)
 Use move semantics to place EulerJointAspect into this Composite.
 
template<typename ... Args>
Aspect * createEulerJointAspect (Args &&... args)
 Construct a(an) EulerJointAspect inside of this Composite.
 
void removeEulerJointAspect ()
 Remove a(an) EulerJointAspect from this Composite.
 
std::unique_ptr< Aspect > releaseEulerJointAspect ()
 Remove a(an) EulerJointAspect from this Composite, but return its unique_ptr instead of letting it be deleted.
 
 EulerJoint (const EulerJoint &)=delete
 
virtual ~EulerJoint ()
 Destructor.
 
void setProperties (const Properties &_properties)
 Set the Properties of this EulerJoint.
 
void setProperties (const UniqueProperties &_properties)
 Set the Properties of this EulerJoint.
 
void setAspectProperties (const AspectProperties &properties)
 Set the AspectProperties of this EulerJoint.
 
Properties getEulerJointProperties () const
 Get the Properties of this EulerJoint.
 
void copy (const EulerJoint &_otherJoint)
 Copy the Properties of another EulerJoint.
 
void copy (const EulerJoint *_otherJoint)
 Copy the Properties of another EulerJoint.
 
EulerJoint & operator= (const EulerJoint &_otherJoint)
 Same as copy(const EulerJoint&)
 
const std::string & getType () const override
 
bool isCyclic (std::size_t _index) const override
 
void setAxisOrder (AxisOrder _order, bool _renameDofs=true)
 Set the axis order.
 
AxisOrder getAxisOrder () const
 Return the axis order.
 
template<typename RotationType >
Eigen::Vector3d convertToPositions (const RotationType &_rotation) const
 This is a version of EulerJoint::convertToPositions(const RotationType&, AxisOrder) which will use the AxisOrder belonging to the joint instance that it gets called on.
 
Eigen::Isometry3d convertToTransform (const Eigen::Vector3d &_positions) const
 This is a version of EulerJoint::convertToRotation(const Eigen::Vector3d&, AxisOrder) which will use the AxisOrder belonging to the joint instance that it gets called on.
 
Eigen::Matrix3d convertToRotation (const Eigen::Vector3d &_positions) const
 
Eigen::Matrix< double, 6, 3 > getRelativeJacobianStatic (const Eigen::Vector3d &_positions) const override
 
const AspectProperties & getAspectProperties () const
 

Static Public Member Functions

static const std::string & getStaticType ()
 Get joint type for this class.
 
template<typename RotationType >
static Eigen::Vector3d convertToPositions (const RotationType &_rotation, AxisOrder _ordering)
 Convert a rotation into a 3D vector that can be used to set the positions of an EulerJoint with the specified AxisOrder.
 
static Eigen::Isometry3d convertToTransform (const Eigen::Vector3d &_positions, AxisOrder _ordering)
 Convert a set of Euler angle positions into a transform.
 
static Eigen::Matrix3d convertToRotation (const Eigen::Vector3d &_positions, AxisOrder _ordering)
 Convert a set of Euler angle positions into a rotation matrix.
 

Protected Member Functions

 EulerJoint (const Properties &properties)
 Constructor called by Skeleton class.
 
Joint * clone () const override
 
void updateDegreeOfFreedomNames () override
 Set the names of this joint's DegreesOfFreedom.
 
void updateRelativeTransform () const override
 
void updateRelativeJacobian (bool=true) const override
 
void updateRelativeJacobianTimeDeriv () const override
 

Protected Attributes

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

Friends

class Skeleton
 

Detailed Description

class EulerJoint

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

◆ AxisOrder

◆ Base

◆ Derived

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

◆ Impl

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

◆ Properties

◆ UniqueProperties

Constructor & Destructor Documentation

◆ EulerJoint() [1/2]

dart::dynamics::EulerJoint::EulerJoint ( const EulerJoint &  )
delete

◆ ~EulerJoint()

dart::dynamics::EulerJoint::~EulerJoint ( )
virtual

Destructor.

◆ EulerJoint() [2/2]

dart::dynamics::EulerJoint::EulerJoint ( const Properties &  properties)
protected

Constructor called by Skeleton class.

Member Function Documentation

◆ clone()

Joint * dart::dynamics::EulerJoint::clone ( ) const
overrideprotected

◆ convertToPositions() [1/2]

template<typename RotationType >
Eigen::Vector3d dart::dynamics::EulerJoint::convertToPositions ( const RotationType &  _rotation) const
inline

This is a version of EulerJoint::convertToPositions(const RotationType&, AxisOrder) which will use the AxisOrder belonging to the joint instance that it gets called on.

◆ convertToPositions() [2/2]

template<typename RotationType >
static Eigen::Vector3d dart::dynamics::EulerJoint::convertToPositions ( const RotationType &  _rotation,
AxisOrder  _ordering 
)
inlinestatic

Convert a rotation into a 3D vector that can be used to set the positions of an EulerJoint with the specified AxisOrder.

The positions returned by this function will result in a relative transform of getTransformFromParentBodyNode() * _rotation * getTransformFromChildBodyNode().inverse() between the parent BodyNode and the child BodyNode frames when applied to an EulerJoint with the correct axis ordering.

◆ convertToRotation() [1/2]

Eigen::Matrix3d dart::dynamics::EulerJoint::convertToRotation ( const Eigen::Vector3d &  _positions) const

◆ convertToRotation() [2/2]

Eigen::Matrix3d dart::dynamics::EulerJoint::convertToRotation ( const Eigen::Vector3d &  _positions,
AxisOrder  _ordering 
)
static

Convert a set of Euler angle positions into a rotation matrix.

◆ convertToTransform() [1/2]

Eigen::Isometry3d dart::dynamics::EulerJoint::convertToTransform ( const Eigen::Vector3d &  _positions) const

This is a version of EulerJoint::convertToRotation(const Eigen::Vector3d&, AxisOrder) which will use the AxisOrder belonging to the joint instance that it gets called on.

◆ convertToTransform() [2/2]

Eigen::Isometry3d dart::dynamics::EulerJoint::convertToTransform ( const Eigen::Vector3d &  _positions,
AxisOrder  _ordering 
)
static

Convert a set of Euler angle positions into a transform.

◆ copy() [1/2]

void dart::dynamics::EulerJoint::copy ( const EulerJoint &  _otherJoint)

Copy the Properties of another EulerJoint.

◆ copy() [2/2]

void dart::dynamics::EulerJoint::copy ( const EulerJoint *  _otherJoint)

Copy the Properties of another EulerJoint.

◆ createEulerJointAspect()

template<typename ... Args>
Aspect * dart::dynamics::EulerJoint::createEulerJointAspect ( Args &&...  args)
inline

Construct a(an) EulerJointAspect inside of this Composite.

◆ getAspectProperties()

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

◆ getAxisOrder()

EulerJoint::AxisOrder dart::dynamics::EulerJoint::getAxisOrder ( ) const

Return the axis order.

◆ getEulerJointAspect() [1/3]

Aspect * dart::dynamics::EulerJoint::getEulerJointAspect ( )
inline

Get a(an) EulerJointAspect from this Composite.

◆ getEulerJointAspect() [2/3]

const Aspect * dart::dynamics::EulerJoint::getEulerJointAspect ( ) const
inline

Get a(an) EulerJointAspect from this Composite.

◆ getEulerJointAspect() [3/3]

Aspect * dart::dynamics::EulerJoint::getEulerJointAspect ( const bool  createIfNull)
inline

Get a(an) EulerJointAspect from this Composite.

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

◆ getEulerJointProperties()

EulerJoint::Properties dart::dynamics::EulerJoint::getEulerJointProperties ( ) const

Get the Properties of this EulerJoint.

◆ getRelativeJacobianStatic()

Eigen::Matrix< double, 6, 3 > dart::dynamics::EulerJoint::getRelativeJacobianStatic ( const Eigen::Vector3d &  _positions) const
override

◆ getStaticType()

const std::string & dart::dynamics::EulerJoint::getStaticType ( )
static

Get joint type for this class.

◆ getType()

const std::string & dart::dynamics::EulerJoint::getType ( ) const
override

◆ hasEulerJointAspect()

bool dart::dynamics::EulerJoint::hasEulerJointAspect ( ) const
inline

Check if this Composite currently has EulerJointAspect .

◆ isCyclic()

bool dart::dynamics::EulerJoint::isCyclic ( std::size_t  _index) const
override

◆ operator=()

EulerJoint & dart::dynamics::EulerJoint::operator= ( const EulerJoint &  _otherJoint)

◆ releaseEulerJointAspect()

std::unique_ptr< Aspect > dart::dynamics::EulerJoint::releaseEulerJointAspect ( )
inline

Remove a(an) EulerJointAspect 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) EulerJointAspect between two Composites.

◆ removeEulerJointAspect()

void dart::dynamics::EulerJoint::removeEulerJointAspect ( )
inline

Remove a(an) EulerJointAspect from this Composite.

◆ setAspectProperties()

void dart::dynamics::EulerJoint::setAspectProperties ( const AspectProperties &  properties)

Set the AspectProperties of this EulerJoint.

◆ setAxisOrder()

void dart::dynamics::EulerJoint::setAxisOrder ( EulerJoint::AxisOrder  _order,
bool  _renameDofs = true 
)

Set the axis order.

Parameters
[in]_orderAxis order
[in]_renameDofsIf true, the names of dofs in this joint will be renmaed according to the axis order.

◆ setEulerJointAspect() [1/2]

void dart::dynamics::EulerJoint::setEulerJointAspect ( const Aspect *  aspect)
inline

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

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

◆ setEulerJointAspect() [2/2]

void dart::dynamics::EulerJoint::setEulerJointAspect ( std::unique_ptr< Aspect > &&  aspect)
inline

Use move semantics to place EulerJointAspect into this Composite.

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

◆ setProperties() [1/2]

void dart::dynamics::EulerJoint::setProperties ( const Properties &  _properties)

Set the Properties of this EulerJoint.

◆ setProperties() [2/2]

void dart::dynamics::EulerJoint::setProperties ( const UniqueProperties &  _properties)

Set the Properties of this EulerJoint.

◆ updateDegreeOfFreedomNames()

void dart::dynamics::EulerJoint::updateDegreeOfFreedomNames ( )
overrideprotected

Set the names of this joint's DegreesOfFreedom.

Used during construction and when axis order is changed.

◆ updateRelativeJacobian()

void dart::dynamics::EulerJoint::updateRelativeJacobian ( bool  = true) const
overrideprotected

◆ updateRelativeJacobianTimeDeriv()

void dart::dynamics::EulerJoint::updateRelativeJacobianTimeDeriv ( ) const
overrideprotected

◆ updateRelativeTransform()

void dart::dynamics::EulerJoint::updateRelativeTransform ( ) const
overrideprotected

Friends And Related Symbol Documentation

◆ Skeleton

friend class Skeleton
friend

Member Data Documentation

◆ 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.