DART  6.7.3
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 . More...
 
AspectgetEulerJointAspect ()
 Get a(an) EulerJointAspect from this Composite. More...
 
const AspectgetEulerJointAspect () const
 Get a(an) EulerJointAspect from this Composite. More...
 
AspectgetEulerJointAspect (const bool createIfNull)
 Get a(an) EulerJointAspect from this Composite. More...
 
void setEulerJointAspect (const Aspect *aspect)
 Make a clone of EulerJointAspect and place the clone into this Composite. More...
 
void setEulerJointAspect (std::unique_ptr< Aspect > &&aspect)
 Use move semantics to place EulerJointAspect into this Composite. More...
 
template<typename ... Args>
AspectcreateEulerJointAspect (Args &&... args)
 Construct a(an) EulerJointAspect inside of this Composite. More...
 
void removeEulerJointAspect ()
 Remove a(an) EulerJointAspect from this Composite. More...
 
std::unique_ptr< AspectreleaseEulerJointAspect ()
 Remove a(an) EulerJointAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More...
 
 EulerJoint (const EulerJoint &)=delete
 
virtual ~EulerJoint ()
 Destructor. More...
 
void setProperties (const Properties &_properties)
 Set the Properties of this EulerJoint. More...
 
void setProperties (const UniqueProperties &_properties)
 Set the Properties of this EulerJoint. More...
 
void setAspectProperties (const AspectProperties &properties)
 Set the AspectProperties of this EulerJoint. More...
 
Properties getEulerJointProperties () const
 Get the Properties of this EulerJoint. More...
 
void copy (const EulerJoint &_otherJoint)
 Copy the Properties of another EulerJoint. More...
 
void copy (const EulerJoint *_otherJoint)
 Copy the Properties of another EulerJoint. More...
 
EulerJointoperator= (const EulerJoint &_otherJoint)
 Same as copy(const EulerJoint&) More...
 
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. More...
 
AxisOrder getAxisOrder () const
 Return the axis order. More...
 
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. More...
 
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. More...
 
Eigen::Matrix3d convertToRotation (const Eigen::Vector3d &_positions) const
 
Eigen::Matrix< double, 6, 3 > getRelativeJacobianStatic (const Eigen::Vector3d &_positions) const override
 
const AspectPropertiesgetAspectProperties () const
 

Static Public Member Functions

static const std::string & getStaticType ()
 Get joint type for this class. More...
 
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. More...
 
static Eigen::Isometry3d convertToTransform (const Eigen::Vector3d &_positions, AxisOrder _ordering)
 Convert a set of Euler angle positions into a transform. More...
 
static Eigen::Matrix3d convertToRotation (const Eigen::Vector3d &_positions, AxisOrder _ordering)
 Convert a set of Euler angle positions into a rotation matrix. More...
 

Protected Member Functions

 EulerJoint (const Properties &properties)
 Constructor called by Skeleton class. More...
 
Jointclone () const override
 
void updateDegreeOfFreedomNames () override
 Set the names of this joint's DegreesOfFreedom. More...
 
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. More...
 

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