SOFA API  6b913c64
Open source framework for multi-physics simuation
sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut > Class Template Reference

#include <CenterOfMassMapping.h>

Inheritance diagram for sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >:

Detailed Description

template<class TIn, class TOut>
class sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >

mapping computing the center of mass of an object. the output of the mapping has to be a single dof. Its position is then set from the input DOFs, proportionally to their mass. This allow to control an object by setting forces on its center of mass.

Protected Attributes

sofa::core::behavior::BaseMassmasses
 pointer on the input DOFs mass More...
 
double totalMass
 the total mass of the input object More...
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE2(CenterOfMassMapping, TIn, TOut), SOFA_TEMPLATE2(LinearMapping, TIn, TOut))
 
void init () override
 
void apply (const sofa::core::MechanicalParams *mparams, OutDataVecCoord &out, const InDataVecCoord &in) override
 
void applyJ (const sofa::core::MechanicalParams *mparams, OutDataVecDeriv &out, const InDataVecDeriv &in) override
 
void applyJT (const sofa::core::MechanicalParams *mparams, InDataVecDeriv &out, const OutDataVecDeriv &in) override
 
void applyJT (const sofa::core::ConstraintParams *, InDataMatrixDeriv &, const OutDataMatrixDeriv &) override
 
void draw (const core::visual::VisualParams *vparams) override
 
- Public Member Functions inherited from sofa::component::mapping::linear::crtp::CRTPLinearMapping< TMapping >
 SOFA_CLASS (SOFA_TEMPLATE(CRTPLinearMapping, TMapping), TMapping)
 
virtual bool isLinear () const override
 

Protected Member Functions

 CenterOfMassMapping ()
 
virtual ~CenterOfMassMapping ()
 

Attribute details

◆ masses

template<class TIn , class TOut >
sofa::core::behavior::BaseMass* sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::masses
protected

pointer on the input DOFs mass

◆ totalMass

template<class TIn , class TOut >
double sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::totalMass
protected

the total mass of the input object

Constructor details

◆ CenterOfMassMapping()

template<class TIn , class TOut >
sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::CenterOfMassMapping ( )
inlineprotected

◆ ~CenterOfMassMapping()

template<class TIn , class TOut >
virtual sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::~CenterOfMassMapping ( )
inlineprotectedvirtual

Function details

◆ apply()

template<class TIn , class TOut >
void sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::apply ( const sofa::core::MechanicalParams mparams,
OutDataVecCoord out,
const InDataVecCoord in 
)
override

◆ applyJ()

template<class TIn , class TOut >
void sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::applyJ ( const sofa::core::MechanicalParams mparams,
OutDataVecDeriv out,
const InDataVecDeriv in 
)
override

◆ applyJT() [1/2]

template<class TIn , class TOut >
void sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::applyJT ( const sofa::core::ConstraintParams ,
InDataMatrixDeriv ,
const OutDataMatrixDeriv  
)
inlineoverride

◆ applyJT() [2/2]

template<class TIn , class TOut >
void sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::applyJT ( const sofa::core::MechanicalParams mparams,
InDataVecDeriv out,
const OutDataVecDeriv in 
)
override

◆ draw()

template<class TIn , class TOut >
void sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::draw ( const core::visual::VisualParams vparams)
override

◆ init()

template<class TIn , class TOut >
void sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::init ( void  )
override

◆ SOFA_CLASS()

template<class TIn , class TOut >
sofa::component::mapping::linear::CenterOfMassMapping< TIn, TOut >::SOFA_CLASS ( SOFA_TEMPLATE2(CenterOfMassMapping< TIn, TOut >, TIn, TOut)  ,
SOFA_TEMPLATE2(LinearMapping, TIn, TOut)   
)