#include <ArticulatedHierarchyContainer.h>
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 | |
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 -
type::vector<Articulation*> articulatedsystemplugin::ArticulationCenter::articulations |
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
type::Vec3 articulatedsystemplugin::ArticulationCenter::Disp_Rotation |
type::Vec3 articulatedsystemplugin::ArticulationCenter::DisplacementArticulationCenter |
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
ArticulatedHierarchyContainer::Transform articulatedsystemplugin::ArticulationCenter::H_c_cLp |
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
ArticulatedHierarchyContainer::Transform articulatedsystemplugin::ArticulationCenter::H_pLc_cLp |
type::Quat<SReal> articulatedsystemplugin::ArticulationCenter::OrientationArticulationCenter |
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
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
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
|
protected |
This class contain a set of articulations.
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 |
|
inlineoverrideprotected |
|
inline |
|
inline |
|
inline |
|
inline |
articulatedsystemplugin::ArticulationCenter::SOFA_CLASS | ( | ArticulationCenter | , |
core::objectmodel::BaseObject | |||
) |
|
inline |