DART  6.10.1
dart::dynamics::PlanarJoint Class Reference

PlanarJoint represents a 3-dof joint, which has two orthogonal translational axes and one rotational axis. More...

#include <PlanarJoint.hpp>

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

Public Types

using PlaneType = detail::PlaneType
 
using UniqueProperties = detail::PlanarJointUniqueProperties
 
using Properties = detail::PlanarJointProperties
 
using Base = GenericJoint< math::R3Space >
 
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 hasPlanarJointAspect () const
 Check if this Composite currently has PlanarJointAspect . More...
 
AspectgetPlanarJointAspect ()
 Get a(an) PlanarJointAspect from this Composite. More...
 
const AspectgetPlanarJointAspect () const
 Get a(an) PlanarJointAspect from this Composite. More...
 
AspectgetPlanarJointAspect (const bool createIfNull)
 Get a(an) PlanarJointAspect from this Composite. More...
 
void setPlanarJointAspect (const Aspect *aspect)
 Make a clone of PlanarJointAspect and place the clone into this Composite. More...
 
void setPlanarJointAspect (std::unique_ptr< Aspect > &&aspect)
 Use move semantics to place PlanarJointAspect into this Composite. More...
 
template<typename... Args>
AspectcreatePlanarJointAspect (Args &&... args)
 Construct a(an) PlanarJointAspect inside of this Composite. More...
 
void removePlanarJointAspect ()
 Remove a(an) PlanarJointAspect from this Composite. More...
 
std::unique_ptr< AspectreleasePlanarJointAspect ()
 Remove a(an) PlanarJointAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More...
 
 PlanarJoint (const PlanarJoint &)=delete
 
virtual ~PlanarJoint ()
 Destructor. More...
 
void setProperties (const Properties &_properties)
 Set the Properties of this PlanarJoint. More...
 
void setProperties (const UniqueProperties &_properties)
 Set the Properties of this PlanarJoint. More...
 
void setAspectProperties (const AspectProperties &properties)
 Set the AspectProperties of this PlanarJoint. More...
 
Properties getPlanarJointProperties () const
 Get the Properties of this PlanarJoint. More...
 
void copy (const PlanarJoint &_otherJoint)
 Copy the Properties of another PlanarJoint. More...
 
void copy (const PlanarJoint *_otherJoint)
 Copy the Properties of another PlanarJoint. More...
 
PlanarJointoperator= (const PlanarJoint &_otherJoint)
 Same as copy(const PlanarJoint&) More...
 
const std::string & getType () const override
 
bool isCyclic (std::size_t _index) const override
 
void setXYPlane (bool _renameDofs=true)
 Set plane type as XY-plane. More...
 
void setYZPlane (bool _renameDofs=true)
 Set plane type as YZ-plane. More...
 
void setZXPlane (bool _renameDofs=true)
 Set plane type as ZX-plane. More...
 
void setArbitraryPlane (const Eigen::Vector3d &_transAxis1, const Eigen::Vector3d &_transAxis2, bool _renameDofs=true)
 Set plane type as arbitrary plane with two orthogonal translational axes. More...
 
PlaneType getPlaneType () const
 Return plane type. More...
 
const Eigen::Vector3d & getRotationalAxis () const
 Return rotational axis. More...
 
const Eigen::Vector3d & getTranslationalAxis1 () const
 Return first translational axis. More...
 
const Eigen::Vector3d & getTranslationalAxis2 () const
 Return second translational axis. More...
 
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...
 

Protected Member Functions

 PlanarJoint (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

PlanarJoint represents a 3-dof joint, which has two orthogonal translational axes and one rotational axis.

First and second coordiantes represent translation along first and second translational axes, respectively. Third coordinate represents rotation along rotational axis.

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

◆ 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

◆ PlaneType

◆ Properties

◆ UniqueProperties

Constructor & Destructor Documentation

◆ PlanarJoint() [1/2]

dart::dynamics::PlanarJoint::PlanarJoint ( const PlanarJoint )
delete

◆ ~PlanarJoint()

dart::dynamics::PlanarJoint::~PlanarJoint ( )
virtual

Destructor.

◆ PlanarJoint() [2/2]

dart::dynamics::PlanarJoint::PlanarJoint ( const Properties properties)
protected

Constructor called by Skeleton class.

Member Function Documentation

◆ clone()

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

◆ copy() [1/2]

void dart::dynamics::PlanarJoint::copy ( const PlanarJoint _otherJoint)

Copy the Properties of another PlanarJoint.

◆ copy() [2/2]

void dart::dynamics::PlanarJoint::copy ( const PlanarJoint _otherJoint)

Copy the Properties of another PlanarJoint.

◆ createPlanarJointAspect()

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

Construct a(an) PlanarJointAspect inside of this Composite.

◆ getAspectProperties()

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

◆ getPlanarJointAspect() [1/3]

Aspect* dart::dynamics::PlanarJoint::getPlanarJointAspect ( )
inline

Get a(an) PlanarJointAspect from this Composite.

◆ getPlanarJointAspect() [2/3]

const Aspect* dart::dynamics::PlanarJoint::getPlanarJointAspect ( ) const
inline

Get a(an) PlanarJointAspect from this Composite.

◆ getPlanarJointAspect() [3/3]

Aspect* dart::dynamics::PlanarJoint::getPlanarJointAspect ( const bool  createIfNull)
inline

Get a(an) PlanarJointAspect from this Composite.

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

◆ getPlanarJointProperties()

PlanarJoint::Properties dart::dynamics::PlanarJoint::getPlanarJointProperties ( ) const

Get the Properties of this PlanarJoint.

◆ getPlaneType()

PlanarJoint::PlaneType dart::dynamics::PlanarJoint::getPlaneType ( ) const

Return plane type.

◆ getRelativeJacobianStatic()

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

◆ getRotationalAxis()

const Eigen::Vector3d & dart::dynamics::PlanarJoint::getRotationalAxis ( ) const

Return rotational axis.

◆ getStaticType()

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

Get joint type for this class.

◆ getTranslationalAxis1()

const Eigen::Vector3d & dart::dynamics::PlanarJoint::getTranslationalAxis1 ( ) const

Return first translational axis.

◆ getTranslationalAxis2()

const Eigen::Vector3d & dart::dynamics::PlanarJoint::getTranslationalAxis2 ( ) const

Return second translational axis.

◆ getType()

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

◆ hasPlanarJointAspect()

bool dart::dynamics::PlanarJoint::hasPlanarJointAspect ( ) const
inline

Check if this Composite currently has PlanarJointAspect .

◆ isCyclic()

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

◆ operator=()

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

◆ releasePlanarJointAspect()

std::unique_ptr< Aspect > dart::dynamics::PlanarJoint::releasePlanarJointAspect ( )
inline

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

◆ removePlanarJointAspect()

void dart::dynamics::PlanarJoint::removePlanarJointAspect ( )
inline

Remove a(an) PlanarJointAspect from this Composite.

◆ setArbitraryPlane()

void dart::dynamics::PlanarJoint::setArbitraryPlane ( const Eigen::Vector3d &  _transAxis1,
const Eigen::Vector3d &  _transAxis2,
bool  _renameDofs = true 
)

Set plane type as arbitrary plane with two orthogonal translational axes.

Parameters
[in]_transAxis1An orthogonal translational axis
[in]_transAxis2Another orthogonal translation axis
[in]_renameDofsIf true, the names of dofs in this joint will be renmaed according to the plane type.

◆ setAspectProperties()

void dart::dynamics::PlanarJoint::setAspectProperties ( const AspectProperties properties)

Set the AspectProperties of this PlanarJoint.

◆ setPlanarJointAspect() [1/2]

void dart::dynamics::PlanarJoint::setPlanarJointAspect ( const Aspect aspect)
inline

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

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

◆ setPlanarJointAspect() [2/2]

void dart::dynamics::PlanarJoint::setPlanarJointAspect ( std::unique_ptr< Aspect > &&  aspect)
inline

Use move semantics to place PlanarJointAspect into this Composite.

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

◆ setProperties() [1/2]

void dart::dynamics::PlanarJoint::setProperties ( const Properties _properties)

Set the Properties of this PlanarJoint.

◆ setProperties() [2/2]

void dart::dynamics::PlanarJoint::setProperties ( const UniqueProperties _properties)

Set the Properties of this PlanarJoint.

◆ setXYPlane()

void dart::dynamics::PlanarJoint::setXYPlane ( bool  _renameDofs = true)

Set plane type as XY-plane.

Parameters
[in]_renameDofsIf true, the names of dofs in this joint will be renmaed according to the plane type.

◆ setYZPlane()

void dart::dynamics::PlanarJoint::setYZPlane ( bool  _renameDofs = true)

Set plane type as YZ-plane.

Parameters
[in]_renameDofsIf true, the names of dofs in this joint will be renmaed according to the plane type.

◆ setZXPlane()

void dart::dynamics::PlanarJoint::setZXPlane ( bool  _renameDofs = true)

Set plane type as ZX-plane.

Parameters
[in]_renameDofsIf true, the names of dofs in this joint will be renmaed according to the plane type.

◆ updateDegreeOfFreedomNames()

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

Set the names of this joint's DegreesOfFreedom.

Used during construction and when the Plane type is changed.

◆ updateRelativeJacobian()

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

◆ updateRelativeJacobianTimeDeriv()

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

◆ updateRelativeTransform()

void dart::dynamics::PlanarJoint::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.