DART  6.10.1
dart::utils::MjcfParser::detail::Joint Class Referencefinal

#include <Joint.hpp>

Public Member Functions

 Joint ()=default
 
const std::string & getName () const
 
JointType getType () const
 
const Eigen::Vector3d & getPos () const
 
const Eigen::Vector3d & getAxis () const
 
bool isLimited () const
 
const Eigen::Vector2d & getRange () const
 
double getDamping () const
 
double getSpringRef () const
 

Private Member Functions

Errors read (tinyxml2::XMLElement *element, const Defaults &defaults, const JointAttributes &defaultAttributes)
 
Errors preprocess (const Compiler &compiler)
 Updates attributes and elements that doesn't require any other elements. More...
 
Errors compile (const Compiler &compiler)
 Updates attributes and elements that require the preprocessed child elements of this <joint>. More...
 
Errors postprocess (const Body *body, const Compiler &compiler)
 Updates attributes and elements that require the compiled parent element. More...
 

Private Attributes

JointAttributes mAttributes
 
std::string mName {""}
 
JointType mType {JointType::HINGE}
 
int mGroup {0}
 
Eigen::Vector3d mPos {Eigen::Vector3d::Zero()}
 Position of the joint, specified in local or global coordinates as determined by the coordinate attribute of compiler. More...
 
Eigen::Vector3d mAxis {Eigen::Vector3d::UnitZ()}
 This attribute specifies the axis of rotation for hinge joints and the direction of translation for slide joints. More...
 
Eigen::Vector2d mSpringDamper {Eigen::Vector2d::Zero()}
 
bool mLimited {false}
 This attribute specifies if the joint has limits. More...
 
double mStiffness {0}
 
Eigen::Vector2d mRange {Eigen::Vector2d::Zero()}
 The joint limits. More...
 
double mMargin {0}
 
double mRef {0}
 
double mSpringRef {0}
 
double mArmature {0}
 
double mDamping {0}
 
double mFrictionLoss {0}
 
Eigen::VectorXd mUser
 

Friends

class Body
 

Constructor & Destructor Documentation

◆ Joint()

dart::utils::MjcfParser::detail::Joint::Joint ( )
default

Member Function Documentation

◆ compile()

Errors dart::utils::MjcfParser::detail::Joint::compile ( const Compiler compiler)
private

Updates attributes and elements that require the preprocessed child elements of this <joint>.

◆ getAxis()

const Eigen::Vector3d & dart::utils::MjcfParser::detail::Joint::getAxis ( ) const

◆ getDamping()

double dart::utils::MjcfParser::detail::Joint::getDamping ( ) const

◆ getName()

const std::string & dart::utils::MjcfParser::detail::Joint::getName ( ) const

◆ getPos()

const Eigen::Vector3d & dart::utils::MjcfParser::detail::Joint::getPos ( ) const

◆ getRange()

const Eigen::Vector2d & dart::utils::MjcfParser::detail::Joint::getRange ( ) const

◆ getSpringRef()

double dart::utils::MjcfParser::detail::Joint::getSpringRef ( ) const

◆ getType()

JointType dart::utils::MjcfParser::detail::Joint::getType ( ) const

◆ isLimited()

bool dart::utils::MjcfParser::detail::Joint::isLimited ( ) const

◆ postprocess()

Errors dart::utils::MjcfParser::detail::Joint::postprocess ( const Body body,
const Compiler compiler 
)
private

Updates attributes and elements that require the compiled parent element.

◆ preprocess()

Errors dart::utils::MjcfParser::detail::Joint::preprocess ( const Compiler compiler)
private

Updates attributes and elements that doesn't require any other elements.

◆ read()

Errors dart::utils::MjcfParser::detail::Joint::read ( tinyxml2::XMLElement *  element,
const Defaults defaults,
const JointAttributes defaultAttributes 
)
private

Friends And Related Function Documentation

◆ Body

friend class Body
friend

Member Data Documentation

◆ mArmature

double dart::utils::MjcfParser::detail::Joint::mArmature {0}
private

◆ mAttributes

JointAttributes dart::utils::MjcfParser::detail::Joint::mAttributes
private

◆ mAxis

Eigen::Vector3d dart::utils::MjcfParser::detail::Joint::mAxis {Eigen::Vector3d::UnitZ()}
private

This attribute specifies the axis of rotation for hinge joints and the direction of translation for slide joints.

It is ignored for free and ball joints.

◆ mDamping

double dart::utils::MjcfParser::detail::Joint::mDamping {0}
private

◆ mFrictionLoss

double dart::utils::MjcfParser::detail::Joint::mFrictionLoss {0}
private

◆ mGroup

int dart::utils::MjcfParser::detail::Joint::mGroup {0}
private

◆ mLimited

bool dart::utils::MjcfParser::detail::Joint::mLimited {false}
private

This attribute specifies if the joint has limits.

◆ mMargin

double dart::utils::MjcfParser::detail::Joint::mMargin {0}
private

◆ mName

std::string dart::utils::MjcfParser::detail::Joint::mName {""}
private

◆ mPos

Eigen::Vector3d dart::utils::MjcfParser::detail::Joint::mPos {Eigen::Vector3d::Zero()}
private

Position of the joint, specified in local or global coordinates as determined by the coordinate attribute of compiler.

For free joints this attribute is ignored.

◆ mRange

Eigen::Vector2d dart::utils::MjcfParser::detail::Joint::mRange {Eigen::Vector2d::Zero()}
private

The joint limits.

◆ mRef

double dart::utils::MjcfParser::detail::Joint::mRef {0}
private

◆ mSpringDamper

Eigen::Vector2d dart::utils::MjcfParser::detail::Joint::mSpringDamper {Eigen::Vector2d::Zero()}
private

◆ mSpringRef

double dart::utils::MjcfParser::detail::Joint::mSpringRef {0}
private

◆ mStiffness

double dart::utils::MjcfParser::detail::Joint::mStiffness {0}
private

◆ mType

JointType dart::utils::MjcfParser::detail::Joint::mType {JointType::HINGE}
private

◆ mUser

Eigen::VectorXd dart::utils::MjcfParser::detail::Joint::mUser
private