DART  6.10.1
dart::dynamics::SoftBodyNode Class Reference

SoftBodyNode represent a soft body that has one deformable skin. More...

#include <SoftBodyNode.hpp>

Inheritance diagram for dart::dynamics::SoftBodyNode:
dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases > dart::common::CompositeJoiner< EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT >, CompositeBases... >

Public Types

using UniqueProperties = detail::SoftBodyNodeUniqueProperties
 
using Properties = detail::SoftBodyNodeProperties
 
using Base = detail::SoftBodyNodeBase
 
using Impl = EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT >
 
using Derived = typename Impl::Derived
 
using AspectStateData = typename Impl::AspectStateData
 
using AspectState = typename Impl::AspectState
 
using AspectPropertiesData = typename Impl::AspectPropertiesData
 
using AspectProperties = typename Impl::AspectProperties
 
using Aspect = typename Impl::Aspect
 

Public Member Functions

bool hasSoftBodyAspect () const
 Check if this Composite currently has SoftBodyAspect . More...
 
AspectgetSoftBodyAspect ()
 Get a(an) SoftBodyAspect from this Composite. More...
 
const AspectgetSoftBodyAspect () const
 Get a(an) SoftBodyAspect from this Composite. More...
 
AspectgetSoftBodyAspect (const bool createIfNull)
 Get a(an) SoftBodyAspect from this Composite. More...
 
void setSoftBodyAspect (const Aspect *aspect)
 Make a clone of SoftBodyAspect and place the clone into this Composite. More...
 
void setSoftBodyAspect (std::unique_ptr< Aspect > &&aspect)
 Use move semantics to place SoftBodyAspect into this Composite. More...
 
template<typename... Args>
AspectcreateSoftBodyAspect (Args &&... args)
 Construct a(an) SoftBodyAspect inside of this Composite. More...
 
void removeSoftBodyAspect ()
 Remove a(an) SoftBodyAspect from this Composite. More...
 
std::unique_ptr< AspectreleaseSoftBodyAspect ()
 Remove a(an) SoftBodyAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More...
 
virtual ~SoftBodyNode ()
 
SoftBodyNodeasSoftBodyNode () override
 
const SoftBodyNodeasSoftBodyNode () const override
 
void setProperties (const Properties &_properties)
 Set the Properties of this SoftBodyNode. More...
 
void setProperties (const UniqueProperties &_properties)
 Set the Properties of this SoftBodyNode. More...
 
void setAspectState (const AspectState &state)
 Set the AspectState of this SoftBodyNode. More...
 
void setAspectProperties (const AspectProperties &properties)
 Set the AspectProperties of this SoftBodyNode. More...
 
Properties getSoftBodyNodeProperties () const
 Get the Properties of this SoftBodyNode. More...
 
void copy (const SoftBodyNode &_otherSoftBodyNode)
 Copy the Properties of another SoftBodyNode. More...
 
void copy (const SoftBodyNode *_otherSoftBodyNode)
 Copy the Properties of another SoftBodyNode. More...
 
SoftBodyNodeoperator= (const SoftBodyNode &_otherSoftBodyNode)
 Copy the Properties of another SoftBodyNode. More...
 
PointMassNotifiergetNotifier ()
 Get the update notifier for the PointMasses of this SoftBodyNode. More...
 
const PointMassNotifiergetNotifier () const
 Get the update notifier for the PointMasses of this SoftBodyNode. More...
 
double getMass () const
 Get mass. More...
 
void setVertexSpringStiffness (double _kv)
 
double getVertexSpringStiffness () const
 
void setEdgeSpringStiffness (double _ke)
 
double getEdgeSpringStiffness () const
 
void setDampingCoefficient (double _damp)
 
double getDampingCoefficient () const
 
void removeAllPointMasses ()
 
PointMassaddPointMass (const PointMass::Properties &_properties)
 
std::size_t getNumPointMasses () const
 
PointMassgetPointMass (std::size_t _idx)
 
const PointMassgetPointMass (std::size_t _idx) const
 
const std::vector< PointMass * > & getPointMasses () const
 Return all the point masses in this SoftBodyNode. More...
 
void connectPointMasses (std::size_t _idx1, std::size_t _idx2)
 
void addFace (const Eigen::Vector3i &_face)
 
const Eigen::Vector3i & getFace (std::size_t _idx) const
 
std::size_t getNumFaces () const
 
void clearConstraintImpulse () override
 
std::shared_ptr< SkeletongetSkeleton ()
 Return the Skeleton this BodyNode belongs to. More...
 
std::shared_ptr< const SkeletongetSkeleton () const
 Return the (const) Skeleton this BodyNode belongs to. More...
 
const AspectPropertiesgetAspectProperties () const
 
const AspectStategetAspectState () const
 

Protected Member Functions

 SoftBodyNode (BodyNode *_parentBodyNode, Joint *_parentJoint, const Properties &_properties)
 Constructor called by Skeleton class. More...
 
BodyNodeclone (BodyNode *_parentBodyNode, Joint *_parentJoint, bool cloneNodes) const override
 Create a clone of this SoftBodyNode. More...
 
void configurePointMasses (ShapeNode *softNode)
 Used by SoftBodyAspect to have this SoftBodyNode reconstruct its SoftMeshShape. More...
 
void init (const SkeletonPtr &_skeleton) override
 
void clearExternalForces () override
 
void clearInternalForces () override
 
Recursive dynamics routines
void checkArticulatedInertiaUpdate () const
 Update articulated inertia if necessary. More...
 
void updateTransform () override
 
void updateVelocity () override
 
void updatePartialAcceleration () const override
 
void updateArtInertia (double _timeStep) const override
 
void updateBiasForce (const Eigen::Vector3d &_gravity, double _timeStep) override
 
void updateBiasImpulse () override
 
void updateAccelerationID () override
 
void updateAccelerationFD () override
 
void updateVelocityChangeFD () override
 
void updateTransmittedForceID (const Eigen::Vector3d &_gravity, bool _withExternalForces=false) override
 
void updateTransmittedForceFD () override
 
void updateTransmittedImpulse () override
 
void updateJointForceID (double _timeStep, bool _withDampingForces, bool _withSpringForces) override
 
void updateJointForceFD (double _timeStep, bool _withDampingForces, bool _withSpringForces) override
 
void updateJointImpulseFD () override
 
void updateConstrainedTerms (double _timeStep) override
 
Equations of motion related routines
void updateMassMatrix () override
 
void aggregateMassMatrix (Eigen::MatrixXd &_MCol, std::size_t _col) override
 
void aggregateAugMassMatrix (Eigen::MatrixXd &_MCol, std::size_t _col, double _timeStep) override
 
void updateInvMassMatrix () override
 
void updateInvAugMassMatrix () override
 
void aggregateInvMassMatrix (Eigen::MatrixXd &_InvMCol, std::size_t _col) override
 
void aggregateInvAugMassMatrix (Eigen::MatrixXd &_InvMCol, std::size_t _col, double _timeStep) override
 
void aggregateCoriolisForceVector (Eigen::VectorXd &_C) override
 
void aggregateGravityForceVector (Eigen::VectorXd &_g, const Eigen::Vector3d &_gravity) override
 
void updateCombinedVector () override
 
void aggregateCombinedVector (Eigen::VectorXd &_Cg, const Eigen::Vector3d &_gravity) override
 
void aggregateExternalForces (Eigen::VectorXd &_Fext) override
 

Protected Attributes

std::vector< PointMass * > mPointMasses
 List of point masses composing deformable mesh. More...
 
PointMassNotifiermNotifier
 An Entity which tracks when the point masses need to be updated. More...
 
WeakShapeNodePtr mSoftShapeNode
 Soft mesh shape belonging to this node. More...
 
math::Inertia mI2
 Generalized inertia with point masses. More...
 
math::Inertia mArtInertia2
 
math::Inertia mArtInertiaImplicit2
 
AspectProperties mAspectProperties
 Aspect::Properties data, directly accessible to your derived class. More...
 
AspectState mAspectState
 Aspect::State data, directly accessible to your derived class. More...
 

Private Member Functions

void _addPiToArtInertia (const Eigen::Vector3d &_p, double _Pi) const
 
void _addPiToArtInertiaImplicit (const Eigen::Vector3d &_p, double _ImplicitPi) const
 
void updateInertiaWithPointMass ()
 

Friends

class Skeleton
 
class PointMass
 
class PointMassNotifier
 

Detailed Description

SoftBodyNode represent a soft body that has one deformable skin.

This class is implementation of Sumit Jain and C. Karen Liu's paper: http://www.cc.gatech.edu/graphics/projects/Sumit/homepage/projects/softcontacts/index.html

Member Typedef Documentation

◆ Aspect

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >::Aspect = typename Impl::Aspect
inherited

◆ AspectProperties

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >::AspectProperties = typename Impl::AspectProperties
inherited

◆ AspectPropertiesData

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >::AspectPropertiesData = typename Impl::AspectPropertiesData
inherited

◆ AspectState

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >::AspectState = typename Impl::AspectState
inherited

◆ AspectStateData

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >::AspectStateData = typename Impl::AspectStateData
inherited

◆ Base

◆ Derived

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

◆ Impl

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
using dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >::Impl = EmbedStateAndProperties<DerivedT, StateDataT, PropertiesDataT>
inherited

◆ Properties

◆ UniqueProperties

Constructor & Destructor Documentation

◆ ~SoftBodyNode()

dart::dynamics::SoftBodyNode::~SoftBodyNode ( )
virtual

◆ SoftBodyNode()

dart::dynamics::SoftBodyNode::SoftBodyNode ( BodyNode _parentBodyNode,
Joint _parentJoint,
const Properties _properties 
)
protected

Constructor called by Skeleton class.

Member Function Documentation

◆ _addPiToArtInertia()

void dart::dynamics::SoftBodyNode::_addPiToArtInertia ( const Eigen::Vector3d &  _p,
double  _Pi 
) const
private

◆ _addPiToArtInertiaImplicit()

void dart::dynamics::SoftBodyNode::_addPiToArtInertiaImplicit ( const Eigen::Vector3d &  _p,
double  _ImplicitPi 
) const
private

◆ addFace()

void dart::dynamics::SoftBodyNode::addFace ( const Eigen::Vector3i &  _face)

◆ addPointMass()

PointMass * dart::dynamics::SoftBodyNode::addPointMass ( const PointMass::Properties _properties)

◆ aggregateAugMassMatrix()

void dart::dynamics::SoftBodyNode::aggregateAugMassMatrix ( Eigen::MatrixXd &  _MCol,
std::size_t  _col,
double  _timeStep 
)
overrideprotected

◆ aggregateCombinedVector()

void dart::dynamics::SoftBodyNode::aggregateCombinedVector ( Eigen::VectorXd &  _Cg,
const Eigen::Vector3d &  _gravity 
)
overrideprotected

◆ aggregateCoriolisForceVector()

void dart::dynamics::SoftBodyNode::aggregateCoriolisForceVector ( Eigen::VectorXd &  _C)
overrideprotected

◆ aggregateExternalForces()

void dart::dynamics::SoftBodyNode::aggregateExternalForces ( Eigen::VectorXd &  _Fext)
overrideprotected

◆ aggregateGravityForceVector()

void dart::dynamics::SoftBodyNode::aggregateGravityForceVector ( Eigen::VectorXd &  _g,
const Eigen::Vector3d &  _gravity 
)
overrideprotected

◆ aggregateInvAugMassMatrix()

void dart::dynamics::SoftBodyNode::aggregateInvAugMassMatrix ( Eigen::MatrixXd &  _InvMCol,
std::size_t  _col,
double  _timeStep 
)
overrideprotected

mPointMasses.at(i)->aggregateInvAugMassMatrix(_InvMCol, _col, _timeStep);

◆ aggregateInvMassMatrix()

void dart::dynamics::SoftBodyNode::aggregateInvMassMatrix ( Eigen::MatrixXd &  _InvMCol,
std::size_t  _col 
)
overrideprotected

◆ aggregateMassMatrix()

void dart::dynamics::SoftBodyNode::aggregateMassMatrix ( Eigen::MatrixXd &  _MCol,
std::size_t  _col 
)
overrideprotected

◆ asSoftBodyNode() [1/2]

const SoftBodyNode * dart::dynamics::SoftBodyNode::asSoftBodyNode ( ) const
override

◆ asSoftBodyNode() [2/2]

SoftBodyNode * dart::dynamics::SoftBodyNode::asSoftBodyNode ( )
override

◆ checkArticulatedInertiaUpdate()

void dart::dynamics::SoftBodyNode::checkArticulatedInertiaUpdate ( ) const
protected

Update articulated inertia if necessary.

◆ clearConstraintImpulse()

void dart::dynamics::SoftBodyNode::clearConstraintImpulse ( )
override

◆ clearExternalForces()

void dart::dynamics::SoftBodyNode::clearExternalForces ( )
overrideprotected

◆ clearInternalForces()

void dart::dynamics::SoftBodyNode::clearInternalForces ( )
overrideprotected

◆ clone()

BodyNode * dart::dynamics::SoftBodyNode::clone ( BodyNode _parentBodyNode,
Joint _parentJoint,
bool  cloneNodes 
) const
overrideprotected

Create a clone of this SoftBodyNode.

This may only be called by the Skeleton class.

◆ configurePointMasses()

void dart::dynamics::SoftBodyNode::configurePointMasses ( ShapeNode softNode)
protected

Used by SoftBodyAspect to have this SoftBodyNode reconstruct its SoftMeshShape.

◆ connectPointMasses()

void dart::dynamics::SoftBodyNode::connectPointMasses ( std::size_t  _idx1,
std::size_t  _idx2 
)

◆ copy() [1/2]

void dart::dynamics::SoftBodyNode::copy ( const SoftBodyNode _otherSoftBodyNode)

Copy the Properties of another SoftBodyNode.

◆ copy() [2/2]

void dart::dynamics::SoftBodyNode::copy ( const SoftBodyNode _otherSoftBodyNode)

Copy the Properties of another SoftBodyNode.

◆ createSoftBodyAspect()

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

Construct a(an) SoftBodyAspect inside of this Composite.

◆ getAspectProperties()

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

◆ getAspectState()

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
const AspectState& dart::common::EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT >::getAspectState
inlineinherited

◆ getDampingCoefficient()

double dart::dynamics::SoftBodyNode::getDampingCoefficient ( ) const

◆ getEdgeSpringStiffness()

double dart::dynamics::SoftBodyNode::getEdgeSpringStiffness ( ) const

◆ getFace()

const Eigen::Vector3i & dart::dynamics::SoftBodyNode::getFace ( std::size_t  _idx) const

◆ getMass()

double dart::dynamics::SoftBodyNode::getMass ( ) const

Get mass.

◆ getNotifier() [1/2]

PointMassNotifier * dart::dynamics::SoftBodyNode::getNotifier ( )

Get the update notifier for the PointMasses of this SoftBodyNode.

◆ getNotifier() [2/2]

const PointMassNotifier * dart::dynamics::SoftBodyNode::getNotifier ( ) const

Get the update notifier for the PointMasses of this SoftBodyNode.

◆ getNumFaces()

std::size_t dart::dynamics::SoftBodyNode::getNumFaces ( ) const

◆ getNumPointMasses()

std::size_t dart::dynamics::SoftBodyNode::getNumPointMasses ( ) const

◆ getPointMass() [1/2]

PointMass * dart::dynamics::SoftBodyNode::getPointMass ( std::size_t  _idx)

◆ getPointMass() [2/2]

const PointMass * dart::dynamics::SoftBodyNode::getPointMass ( std::size_t  _idx) const

◆ getPointMasses()

const std::vector< PointMass * > & dart::dynamics::SoftBodyNode::getPointMasses ( ) const

Return all the point masses in this SoftBodyNode.

◆ getSkeleton() [1/2]

SkeletonPtr dart::dynamics::SkeletonRefCountingBase::getSkeleton

Return the Skeleton this BodyNode belongs to.

◆ getSkeleton() [2/2]

ConstSkeletonPtr dart::dynamics::SkeletonRefCountingBase::getSkeleton

Return the (const) Skeleton this BodyNode belongs to.

◆ getSoftBodyAspect() [1/3]

Aspect* dart::dynamics::SoftBodyNode::getSoftBodyAspect ( )
inline

Get a(an) SoftBodyAspect from this Composite.

◆ getSoftBodyAspect() [2/3]

const Aspect* dart::dynamics::SoftBodyNode::getSoftBodyAspect ( ) const
inline

Get a(an) SoftBodyAspect from this Composite.

◆ getSoftBodyAspect() [3/3]

Aspect* dart::dynamics::SoftBodyNode::getSoftBodyAspect ( const bool  createIfNull)
inline

Get a(an) SoftBodyAspect from this Composite.

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

◆ getSoftBodyNodeProperties()

SoftBodyNode::Properties dart::dynamics::SoftBodyNode::getSoftBodyNodeProperties ( ) const

Get the Properties of this SoftBodyNode.

◆ getVertexSpringStiffness()

double dart::dynamics::SoftBodyNode::getVertexSpringStiffness ( ) const

◆ hasSoftBodyAspect()

bool dart::dynamics::SoftBodyNode::hasSoftBodyAspect ( ) const
inline

Check if this Composite currently has SoftBodyAspect .

◆ init()

void dart::dynamics::SoftBodyNode::init ( const SkeletonPtr _skeleton)
overrideprotected

◆ operator=()

SoftBodyNode & dart::dynamics::SoftBodyNode::operator= ( const SoftBodyNode _otherSoftBodyNode)

Copy the Properties of another SoftBodyNode.

◆ releaseSoftBodyAspect()

std::unique_ptr< Aspect > dart::dynamics::SoftBodyNode::releaseSoftBodyAspect ( )
inline

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

◆ removeAllPointMasses()

void dart::dynamics::SoftBodyNode::removeAllPointMasses ( )

◆ removeSoftBodyAspect()

void dart::dynamics::SoftBodyNode::removeSoftBodyAspect ( )
inline

Remove a(an) SoftBodyAspect from this Composite.

◆ setAspectProperties()

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

Set the AspectProperties of this SoftBodyNode.

◆ setAspectState()

void dart::dynamics::SoftBodyNode::setAspectState ( const AspectState state)

Set the AspectState of this SoftBodyNode.

◆ setDampingCoefficient()

void dart::dynamics::SoftBodyNode::setDampingCoefficient ( double  _damp)

◆ setEdgeSpringStiffness()

void dart::dynamics::SoftBodyNode::setEdgeSpringStiffness ( double  _ke)

◆ setProperties() [1/2]

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

Set the Properties of this SoftBodyNode.

◆ setProperties() [2/2]

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

Set the Properties of this SoftBodyNode.

◆ setSoftBodyAspect() [1/2]

void dart::dynamics::SoftBodyNode::setSoftBodyAspect ( const Aspect aspect)
inline

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

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

◆ setSoftBodyAspect() [2/2]

void dart::dynamics::SoftBodyNode::setSoftBodyAspect ( std::unique_ptr< Aspect > &&  aspect)
inline

Use move semantics to place SoftBodyAspect into this Composite.

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

◆ setVertexSpringStiffness()

void dart::dynamics::SoftBodyNode::setVertexSpringStiffness ( double  _kv)

◆ updateAccelerationFD()

void dart::dynamics::SoftBodyNode::updateAccelerationFD ( )
overrideprotected

◆ updateAccelerationID()

void dart::dynamics::SoftBodyNode::updateAccelerationID ( )
overrideprotected

◆ updateArtInertia()

void dart::dynamics::SoftBodyNode::updateArtInertia ( double  _timeStep) const
overrideprotected

◆ updateBiasForce()

void dart::dynamics::SoftBodyNode::updateBiasForce ( const Eigen::Vector3d &  _gravity,
double  _timeStep 
)
overrideprotected

◆ updateBiasImpulse()

void dart::dynamics::SoftBodyNode::updateBiasImpulse ( )
overrideprotected

◆ updateCombinedVector()

void dart::dynamics::SoftBodyNode::updateCombinedVector ( )
overrideprotected

◆ updateConstrainedTerms()

void dart::dynamics::SoftBodyNode::updateConstrainedTerms ( double  _timeStep)
overrideprotected

◆ updateInertiaWithPointMass()

void dart::dynamics::SoftBodyNode::updateInertiaWithPointMass ( )
private

◆ updateInvAugMassMatrix()

void dart::dynamics::SoftBodyNode::updateInvAugMassMatrix ( )
overrideprotected

mInvM_c.head<3>() += (*it)->getLocalPosition().cross((*it)->mBiasForceForInvMeta); / mInvM_c.tail<3>() += (*it)->mBiasForceForInvMeta; / }

◆ updateInvMassMatrix()

void dart::dynamics::SoftBodyNode::updateInvMassMatrix ( )
overrideprotected

◆ updateJointForceFD()

void dart::dynamics::SoftBodyNode::updateJointForceFD ( double  _timeStep,
bool  _withDampingForces,
bool  _withSpringForces 
)
overrideprotected

◆ updateJointForceID()

void dart::dynamics::SoftBodyNode::updateJointForceID ( double  _timeStep,
bool  _withDampingForces,
bool  _withSpringForces 
)
overrideprotected

◆ updateJointImpulseFD()

void dart::dynamics::SoftBodyNode::updateJointImpulseFD ( )
overrideprotected

◆ updateMassMatrix()

void dart::dynamics::SoftBodyNode::updateMassMatrix ( )
overrideprotected

◆ updatePartialAcceleration()

void dart::dynamics::SoftBodyNode::updatePartialAcceleration ( ) const
overrideprotected

◆ updateTransform()

void dart::dynamics::SoftBodyNode::updateTransform ( )
overrideprotected

◆ updateTransmittedForceFD()

void dart::dynamics::SoftBodyNode::updateTransmittedForceFD ( )
overrideprotected

◆ updateTransmittedForceID()

void dart::dynamics::SoftBodyNode::updateTransmittedForceID ( const Eigen::Vector3d &  _gravity,
bool  _withExternalForces = false 
)
overrideprotected

◆ updateTransmittedImpulse()

void dart::dynamics::SoftBodyNode::updateTransmittedImpulse ( )
overrideprotected

◆ updateVelocity()

void dart::dynamics::SoftBodyNode::updateVelocity ( )
overrideprotected

◆ updateVelocityChangeFD()

void dart::dynamics::SoftBodyNode::updateVelocityChangeFD ( )
overrideprotected

Friends And Related Function Documentation

◆ PointMass

friend class PointMass
friend

◆ PointMassNotifier

friend class PointMassNotifier
friend

◆ Skeleton

friend class Skeleton
friend

Member Data Documentation

◆ mArtInertia2

math::Inertia dart::dynamics::SoftBodyNode::mArtInertia2
protected

◆ mArtInertiaImplicit2

math::Inertia dart::dynamics::SoftBodyNode::mArtInertiaImplicit2
protected

◆ mAspectProperties

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
AspectProperties dart::common::EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT >::mAspectProperties
protectedinherited

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

◆ mAspectState

template<class DerivedT , typename StateDataT , typename PropertiesDataT , typename... CompositeBases>
AspectState dart::common::EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT >::mAspectState
protectedinherited

Aspect::State data, directly accessible to your derived class.

◆ mI2

math::Inertia dart::dynamics::SoftBodyNode::mI2
protected

Generalized inertia with point masses.

◆ mNotifier

PointMassNotifier* dart::dynamics::SoftBodyNode::mNotifier
protected

An Entity which tracks when the point masses need to be updated.

◆ mPointMasses

std::vector<PointMass*> dart::dynamics::SoftBodyNode::mPointMasses
protected

List of point masses composing deformable mesh.

◆ mSoftShapeNode

WeakShapeNodePtr dart::dynamics::SoftBodyNode::mSoftShapeNode
protected

Soft mesh shape belonging to this node.