SOFA plugin: PersistentContact  master
Open source framework for multi-physics simuation
sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes > Class Template Reference

#include <PersistentUnilateralInteractionConstraint.h>

Inheritance diagram for sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >:

Protected Attributes

std::map< int, ContactStatecontactStates
 
std::map< int, DerivcontactForces
 
std::map< int, DerivinitForces
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE(PersistentUnilateralInteractionConstraint, DataTypes), SOFA_TEMPLATE(UnilateralInteractionConstraint, DataTypes))
 
 PersistentUnilateralInteractionConstraint (MechanicalState *object1, MechanicalState *object2)
 
 PersistentUnilateralInteractionConstraint (MechanicalState *object)
 
 PersistentUnilateralInteractionConstraint ()
 
virtual ~PersistentUnilateralInteractionConstraint ()
 
virtual void addContact (double mu, Deriv norm, Real contactDistance, int m1, int m2, long id=0, PersistentID localid=0)
 
void getConstraintResolution (std::vector< core::behavior::ConstraintResolution * > &resTab, unsigned int &offset)
 
Contact State API
bool isSticked (int id) const
 
bool isSliding (int id) const
 
void setContactState (int id, ContactState s)
 
void clearContactStates ()
 
void debugContactStates () const
 
LCP Hot Start API
void setContactForce (int id, Deriv f)
 
Deriv getContactForce (int id) const
 
void clearContactForces ()
 
void setInitForce (int id, Deriv f)
 
Deriv getInitForce (int id)
 
void clearInitForces ()
 
void draw (const core::visual::VisualParams *vparams)
 

Protected Member Functions

virtual void getPositionViolation (linearalgebra::BaseVector *v)
 
virtual void getVelocityViolation (linearalgebra::BaseVector *v)
 

Attribute details

◆ contactForces

template<class DataTypes >
std::map< int, Deriv > sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::contactForces
protected

◆ contactStates

template<class DataTypes >
std::map< int, ContactState > sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::contactStates
protected

◆ initForces

template<class DataTypes >
std::map< int, Deriv > sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::initForces
protected

Constructor details

◆ PersistentUnilateralInteractionConstraint() [1/3]

◆ PersistentUnilateralInteractionConstraint() [2/3]

◆ PersistentUnilateralInteractionConstraint() [3/3]

◆ ~PersistentUnilateralInteractionConstraint()

Function details

◆ addContact()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::addContact ( double  mu,
Deriv  norm,
Real  contactDistance,
int  m1,
int  m2,
long  id = 0,
PersistentID  localid = 0 
)
virtual

◆ clearContactForces()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::clearContactForces

◆ clearContactStates()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::clearContactStates

◆ clearInitForces()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::clearInitForces

◆ debugContactStates()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::debugContactStates

◆ draw()

◆ getConstraintResolution()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::getConstraintResolution ( std::vector< core::behavior::ConstraintResolution * > &  resTab,
unsigned int &  offset 
)

◆ getContactForce()

◆ getInitForce()

◆ getPositionViolation()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::getPositionViolation ( linearalgebra::BaseVector v)
protectedvirtual

Computes constraint violation in position and stores it into resolution global vector

Parameters
vGlobal resolution vector

◆ getVelocityViolation()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::getVelocityViolation ( linearalgebra::BaseVector v)
protectedvirtual

Computes constraint violation in velocity and stores it into resolution global vector

Parameters
vGlobal resolution vector

◆ isSliding()

template<class DataTypes >
bool sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::isSliding ( int  id) const

◆ isSticked()

template<class DataTypes >
bool sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::isSticked ( int  id) const

◆ setContactForce()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::setContactForce ( int  id,
Deriv  f 
)

◆ setContactState()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::setContactState ( int  id,
ContactState  s 
)

◆ setInitForce()

template<class DataTypes >
void sofa::component::constraintset::PersistentUnilateralInteractionConstraint< DataTypes >::setInitForce ( int  id,
Deriv  f 
)

◆ SOFA_CLASS()