SOFA plugin: ArticulatedSystemPlugin  master
Open source framework for multi-physics simuation
articulatedsystemplugin::ArticulationCenter Class Reference

#include <ArticulatedHierarchyContainer.h>

Inheritance diagram for articulatedsystemplugin::ArticulationCenter:

Detailed Description

This class defines an articulation center. This contains a set of articulations. An articulation center is always defined between two DOF's (ParentDOF and ChildDOF). It stores the local position of the center articulation in relation to this DOF's (posOnParent, posOnChild), theirs indices (parentIndex, childIndex) and the global position of the articulation center. The local positions and indices have to be provided at initialization. For the same articulation center can be defined several articulations. All the variables which are defined in this class can be modified once sofa is running.

Public Attributes

Data< int > parentIndex
 Parent of the center articulation. More...
 
Data< int > childIndex
 Child of the center articulation. More...
 
Data< type::Vec3 > globalPosition
 Global position of the articulation center. More...
 
Data< type::Vec3 > posOnParent
 Parent position of the articulation center. More...
 
Data< type::Vec3 > posOnChild
 Child position of the articulation center. More...
 
Data< int > articulationProcess
 0 - (default) hierarchy between articulations (euler angles) 1- ( on Parent) no hierarchy - axis are attached to the parent 2- (attached on Child) no hierarchy - axis are attached to the child More...
 
ArticulatedHierarchyContainer::Transform H_p_pLc
 
ArticulatedHierarchyContainer::Transform H_c_cLp
 
ArticulatedHierarchyContainer::Transform H_pLc_cLp
 
type::vector< Articulation * > articulations
 
type::Quat< SReal > OrientationArticulationCenter
 
type::Vec3 DisplacementArticulationCenter
 
type::Vec3 Disp_Rotation
 

Public Member Functions

 SOFA_CLASS (ArticulationCenter, core::objectmodel::BaseObject)
 
type::Vec3 posOnChildGlobal (type::Quat< SReal > localToGlobal)
 
type::Vec3 initTranslateChild (type::Quat< SReal > objectRotation)
 
type::Vec3 translateChild (type::Quat< SReal > object1Rotation, type::Quat< SReal > object2Rotation)
 
type::Vec3 correctPosChild (type::Vec3 object1Pos, type::Quat< SReal > object1Rot, type::Vec3 object2Pos, type::Quat< SReal > object2Rot)
 
type::vector< Articulation * > & getArticulations ()
 

Protected Member Functions

 ArticulationCenter ()
 
 ~ArticulationCenter () override
 

Attribute details

◆ articulationProcess

Data<int> articulatedsystemplugin::ArticulationCenter::articulationProcess

0 - (default) hierarchy between articulations (euler angles) 1- ( on Parent) no hierarchy - axis are attached to the parent 2- (attached on Child) no hierarchy - axis are attached to the child

It tells if the articulations of the articulation center are processed one by one or globally: 0 - (default ) articulation are treated one by one, the axis of the second articulation is updated by the potential rotation of the first articulation potential problems could arise when rotation exceed 90° (known problem of euler angles) 1 - (Attach on Parent) the axis of the articulations are linked to the parent - rotations are treated by successive increases - 2 - (Attach on Child ) the axis of the articulations are linked to the child (estimate position from the previous time step) - rotations are treated by successive increases -

◆ articulations

type::vector<Articulation*> articulatedsystemplugin::ArticulationCenter::articulations

◆ childIndex

Data<int> articulatedsystemplugin::ArticulationCenter::childIndex

Child of the center articulation.

All DOF's can be identified, in an univocal way, by an index this variable will store the index of the childDOF of the articulation center

◆ Disp_Rotation

type::Vec3 articulatedsystemplugin::ArticulationCenter::Disp_Rotation

◆ DisplacementArticulationCenter

type::Vec3 articulatedsystemplugin::ArticulationCenter::DisplacementArticulationCenter

◆ globalPosition

Data<type::Vec3> articulatedsystemplugin::ArticulationCenter::globalPosition

Global position of the articulation center.

Global position for the articulation center. It's not necessary to provide it at initialization. This will be computed in mapping using the global position of the parent DOF and the local position of the center articulation

◆ H_c_cLp

ArticulatedHierarchyContainer::Transform articulatedsystemplugin::ArticulationCenter::H_c_cLp

◆ H_p_pLc

ArticulatedHierarchyContainer::Transform articulatedsystemplugin::ArticulationCenter::H_p_pLc

for ARBORIS Mapping Store information about the transformation induced by the articulation center (joint) H_p_pLc and H_c_cLp redefine posOnParent, posOnChild (a local rotation between the center of the articualtion and the parent/child bodies can be defined) H_pLc_cLp is transformation induced by the articulations of the articulation center (joint) it is updated during "apply" function of the Mapping

◆ H_pLc_cLp

ArticulatedHierarchyContainer::Transform articulatedsystemplugin::ArticulationCenter::H_pLc_cLp

◆ OrientationArticulationCenter

type::Quat<SReal> articulatedsystemplugin::ArticulationCenter::OrientationArticulationCenter

◆ parentIndex

Data<int> articulatedsystemplugin::ArticulationCenter::parentIndex

Parent of the center articulation.

All DOF's can be identified, in an univocal way, by an index this variable will store the index of the parentDOF of the articulation center

◆ posOnChild

Data<type::Vec3> articulatedsystemplugin::ArticulationCenter::posOnChild

Child position of the articulation center.

It stores the local position of the center articulation in relation to the global position of the childDOF

◆ posOnParent

Data<type::Vec3> articulatedsystemplugin::ArticulationCenter::posOnParent

Parent position of the articulation center.

It stores the local position of the center articulation in relation to the global position of the parentDOF

Constructor details

◆ ArticulationCenter()

articulatedsystemplugin::ArticulationCenter::ArticulationCenter ( )
protected

This class contain a set of articulations.

See also
Articulation
Parameters
parentIndex.It stores the index of the parentDOF of the articulation center
childIndex.It stores the index of the childDOF of the articulation center
posOnParent.It stores the local position of the center articulation in relation to the global position of the parentDOF
posOnChild.It stores the local position of the center articulation in relation to the global position of the childDOF

◆ ~ArticulationCenter()

articulatedsystemplugin::ArticulationCenter::~ArticulationCenter ( )
inlineoverrideprotected

Function details

◆ correctPosChild()

type::Vec3 articulatedsystemplugin::ArticulationCenter::correctPosChild ( type::Vec3  object1Pos,
type::Quat< SReal >  object1Rot,
type::Vec3  object2Pos,
type::Quat< SReal >  object2Rot 
)
inline

◆ getArticulations()

type::vector<Articulation*>& articulatedsystemplugin::ArticulationCenter::getArticulations ( )
inline

◆ initTranslateChild()

type::Vec3 articulatedsystemplugin::ArticulationCenter::initTranslateChild ( type::Quat< SReal >  objectRotation)
inline

◆ posOnChildGlobal()

type::Vec3 articulatedsystemplugin::ArticulationCenter::posOnChildGlobal ( type::Quat< SReal >  localToGlobal)
inline

◆ SOFA_CLASS()

articulatedsystemplugin::ArticulationCenter::SOFA_CLASS ( ArticulationCenter  ,
core::objectmodel::BaseObject   
)

◆ translateChild()

type::Vec3 articulatedsystemplugin::ArticulationCenter::translateChild ( type::Quat< SReal >  object1Rotation,
type::Quat< SReal >  object2Rotation 
)
inline