sofa::core::componentmodel::behavior::Constraint< DataTypes > Class Template Reference

Component computing constraints within a simulated body. More...

#include <Constraint.h>

Inheritance diagram for sofa::core::componentmodel::behavior::Constraint< DataTypes >:

Inheritance graph
[legend]
Collaboration diagram for sofa::core::componentmodel::behavior::Constraint< DataTypes >:

Collaboration graph
[legend]

Public Types

typedef DataTypes::Real Real
typedef DataTypes::VecCoord VecCoord
typedef DataTypes::VecDeriv VecDeriv
typedef DataTypes::Coord Coord
typedef DataTypes::Deriv Deriv
typedef DataTypes::VecConst VecConst

Public Member Functions

 Constraint (MechanicalState< DataTypes > *mm=NULL)
virtual ~Constraint ()
virtual bool isActive () const
 if false, the constraint does nothing
virtual void init ()
 Initialization method called at graph modification, during bottom-up traversal.
MechanicalState< DataTypes > * getMState ()
 Retrieve the associated MechanicalState.
virtual void applyConstraint (unsigned int &contactId)
virtual void applyConstraint (VecConst &, unsigned int &)
virtual std::string getTemplateName () const
 Get the template type names (if any) used to instantiate this object.
Vector operations
virtual void projectResponse ()
 Project dx to constrained space (dx models an acceleration).
virtual void projectVelocity ()
 Project v to constrained space (v models a velocity).
virtual void projectPosition ()
 Project x to constrained space (x models a position).
virtual void projectFreeVelocity ()
 Project vFree to constrained space (vFree models a velocity).
virtual void projectFreePosition ()
 Project xFree to constrained space (xFree models a position).
virtual void projectResponse (VecDeriv &dx)=0
 Project dx to constrained space (dx models an acceleration).
virtual void projectVelocity (VecDeriv &v)=0
 Project v to constrained space (v models a velocity).
virtual void projectPosition (VecCoord &x)=0
 Project x to constrained space (x models a position).

Static Public Member Functions

template<class T >
static bool canCreate (T *&obj, objectmodel::BaseContext *context, objectmodel::BaseObjectDescription *arg)
 Pre-construction check method called by ObjectFactory.
static std::string templateName (const Constraint< DataTypes > *=NULL)

Data Fields

Data< Real > endTime
 Time when the constraint becomes inactive (-1 for infinitely active).

Protected Attributes

MechanicalState< DataTypes > * mstate

Detailed Description

template<class DataTypes>
class sofa::core::componentmodel::behavior::Constraint< DataTypes >

Component computing constraints within a simulated body.

This class define the abstract API common to constraints using a given type of DOFs. A Constraint computes constraints applied to one simulated body given its current position and velocity.

Definition at line 55 of file Constraint.h.


Member Typedef Documentation

template<class DataTypes >
typedef DataTypes::Coord sofa::core::componentmodel::behavior::Constraint< DataTypes >::Coord

template<class DataTypes >
typedef DataTypes::Deriv sofa::core::componentmodel::behavior::Constraint< DataTypes >::Deriv

template<class DataTypes >
typedef DataTypes::Real sofa::core::componentmodel::behavior::Constraint< DataTypes >::Real

template<class DataTypes >
typedef DataTypes::VecConst sofa::core::componentmodel::behavior::Constraint< DataTypes >::VecConst

Definition at line 63 of file Constraint.h.

template<class DataTypes >
typedef DataTypes::VecCoord sofa::core::componentmodel::behavior::Constraint< DataTypes >::VecCoord

template<class DataTypes >
typedef DataTypes::VecDeriv sofa::core::componentmodel::behavior::Constraint< DataTypes >::VecDeriv


Constructor & Destructor Documentation

template<class DataTypes >
sofa::core::componentmodel::behavior::Constraint< DataTypes >::Constraint ( MechanicalState< DataTypes > *  mm = NULL  )  [inline]

Definition at line 45 of file Constraint.inl.

template<class DataTypes >
sofa::core::componentmodel::behavior::Constraint< DataTypes >::~Constraint (  )  [inline, virtual]

Definition at line 52 of file Constraint.inl.


Member Function Documentation

template<class DataTypes >
virtual void sofa::core::componentmodel::behavior::Constraint< DataTypes >::applyConstraint ( VecConst &  ,
unsigned int &   
) [inline, virtual]

Definition at line 138 of file Constraint.h.

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::applyConstraint ( unsigned int &  contactId  )  [inline, virtual]

template<class DataTypes >
template<class T >
static bool sofa::core::componentmodel::behavior::Constraint< DataTypes >::canCreate ( T *&  obj,
objectmodel::BaseContext *  context,
objectmodel::BaseObjectDescription *  arg 
) [inline, static]

Pre-construction check method called by ObjectFactory.

Check that DataTypes matches the MechanicalState.

Reimplemented from sofa::core::objectmodel::BaseObject.

Definition at line 143 of file Constraint.h.

Referenced by sofa::core::componentmodel::behavior::Constraint< TDataTypes >::canCreate().

template<class DataTypes >
MechanicalState<DataTypes>* sofa::core::componentmodel::behavior::Constraint< DataTypes >::getMState (  )  [inline]

template<class DataTypes >
virtual std::string sofa::core::componentmodel::behavior::Constraint< DataTypes >::getTemplateName (  )  const [inline, virtual]

Get the template type names (if any) used to instantiate this object.

Reimplemented from sofa::core::objectmodel::Base.

Definition at line 150 of file Constraint.h.

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::init (  )  [inline, virtual]

template<class DataTypes >
bool sofa::core::componentmodel::behavior::Constraint< DataTypes >::isActive (  )  const [inline, virtual]

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectFreePosition (  )  [inline, virtual]

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectFreeVelocity (  )  [inline, virtual]

template<class DataTypes >
virtual void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectPosition ( VecCoord &  x  )  [pure virtual]

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectPosition (  )  [inline, virtual]

template<class DataTypes >
virtual void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectResponse ( VecDeriv &  dx  )  [pure virtual]

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectResponse (  )  [inline, virtual]

template<class DataTypes >
virtual void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectVelocity ( VecDeriv &  v  )  [pure virtual]

template<class DataTypes >
void sofa::core::componentmodel::behavior::Constraint< DataTypes >::projectVelocity (  )  [inline, virtual]

template<class DataTypes >
static std::string sofa::core::componentmodel::behavior::Constraint< DataTypes >::templateName ( const Constraint< DataTypes > *  = NULL  )  [inline, static]


Field Documentation

template<class DataTypes >
Data<Real> sofa::core::componentmodel::behavior::Constraint< DataTypes >::endTime

Time when the constraint becomes inactive (-1 for infinitely active).

Definition at line 69 of file Constraint.h.

Referenced by sofa::core::componentmodel::behavior::Constraint< DataTypes >::isActive().

template<class DataTypes >
MechanicalState<DataTypes>* sofa::core::componentmodel::behavior::Constraint< DataTypes >::mstate [protected]


The documentation for this class was generated from the following files:

Generated on Sun Nov 23 04:22:15 2008 for Sofa by  doxygen 1.5.7.1