sofa::component::constraint::ParabolicConstraint< DataTypes > Class Template Reference

Apply a parabolic trajectory to particles going through 3 points specified by the user. More...

#include <ParabolicConstraint.h>

Inheritance diagram for sofa::component::constraint::ParabolicConstraint< DataTypes >:

Inheritance graph
[legend]
Collaboration diagram for sofa::component::constraint::ParabolicConstraint< DataTypes >:

Collaboration graph
[legend]

Public Types

typedef DataTypes::VecCoord VecCoord
typedef DataTypes::VecDeriv VecDeriv
typedef DataTypes::Coord Coord
typedef DataTypes::Deriv Deriv
typedef DataTypes::Real Real
typedef topology::PointSubset SetIndex
typedef helper::vector
< unsigned int > 
SetIndexArray
typedef defaulttype::Vec< 3, Real > Vec3R
typedef helper::Quater< Real > QuatR

Public Member Functions

 ParabolicConstraint ()
 ParabolicConstraint (core::componentmodel::behavior::MechanicalState< DataTypes > *mstate)
 ~ParabolicConstraint ()
void addConstraint (unsigned index)
void setP1 (const Vec3R &p)
void setP2 (const Vec3R &p)
void setP3 (const Vec3R &p)
void setBeginTime (const Real &t)
void setEndTime (const Real &t)
Vec3R getP1 ()
Vec3R getP2 ()
Vec3R getP3 ()
Real getBeginTime ()
Real getEndTime ()
void init ()
 -- Constraint interface
void reinit ()
 Update method called when variables used in precomputation are modified.
void projectResponse (VecDeriv &dx)
 Project dx to constrained space (dx models an acceleration).
virtual void projectVelocity (VecDeriv &dx)
 project dx to constrained space (dx models a velocity)
virtual void projectPosition (VecCoord &x)
 project x to constrained space (x models a position)
void draw ()
 Render internal data of this object, for debugging purposes.
template<>
void projectPosition (VecCoord &x)
 Project x to constrained space (x models a position).
template<>
void projectVelocity (VecDeriv &dx)
 Project v to constrained space (v models a velocity).
template<>
void projectPosition (VecCoord &x)
 Project x to constrained space (x models a position).
template<>
void projectVelocity (VecDeriv &dx)
 Project v to constrained space (v models a velocity).

Protected Attributes

Data< SetIndex > m_indices
 indices of the DOFs constraints
Data< Vec3R > m_P1
 the three points defining the parabol
Data< Vec3R > m_P2
Data< Vec3R > m_P3
Data< Real > m_tBegin
 the time steps defining the velocity of the movement
Data< Real > m_tEnd
Vec3R m_locP1
 the 3 points projected in the parabol plan
Vec3R m_locP2
Vec3R m_locP3
QuatR m_projection
 the quaternion doing the projection

Detailed Description

template<class DataTypes>
class sofa::component::constraint::ParabolicConstraint< DataTypes >

Apply a parabolic trajectory to particles going through 3 points specified by the user.

The DOFs set in the "indices" list follow the computed parabol from "tBegin" to "tEnd".

Definition at line 51 of file ParabolicConstraint.h.


Member Typedef Documentation

template<class DataTypes >
typedef DataTypes::Coord sofa::component::constraint::ParabolicConstraint< DataTypes >::Coord

template<class DataTypes >
typedef DataTypes::Deriv sofa::component::constraint::ParabolicConstraint< DataTypes >::Deriv

template<class DataTypes >
typedef helper::Quater<Real> sofa::component::constraint::ParabolicConstraint< DataTypes >::QuatR

Definition at line 62 of file ParabolicConstraint.h.

template<class DataTypes >
typedef DataTypes::Real sofa::component::constraint::ParabolicConstraint< DataTypes >::Real

template<class DataTypes >
typedef topology::PointSubset sofa::component::constraint::ParabolicConstraint< DataTypes >::SetIndex

Definition at line 59 of file ParabolicConstraint.h.

template<class DataTypes >
typedef helper::vector<unsigned int> sofa::component::constraint::ParabolicConstraint< DataTypes >::SetIndexArray

Definition at line 60 of file ParabolicConstraint.h.

template<class DataTypes >
typedef defaulttype::Vec<3, Real> sofa::component::constraint::ParabolicConstraint< DataTypes >::Vec3R

Definition at line 61 of file ParabolicConstraint.h.

template<class DataTypes >
typedef DataTypes::VecCoord sofa::component::constraint::ParabolicConstraint< DataTypes >::VecCoord

template<class DataTypes >
typedef DataTypes::VecDeriv sofa::component::constraint::ParabolicConstraint< DataTypes >::VecDeriv


Constructor & Destructor Documentation

template<class DataTypes >
sofa::component::constraint::ParabolicConstraint< DataTypes >::ParabolicConstraint (  )  [inline]

Definition at line 44 of file ParabolicConstraint.inl.

template<class DataTypes >
sofa::component::constraint::ParabolicConstraint< DataTypes >::ParabolicConstraint ( core::componentmodel::behavior::MechanicalState< DataTypes > *  mstate  )  [inline]

Definition at line 57 of file ParabolicConstraint.inl.

template<class DataTypes >
sofa::component::constraint::ParabolicConstraint< DataTypes >::~ParabolicConstraint (  )  [inline]

Definition at line 69 of file ParabolicConstraint.inl.


Member Function Documentation

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::addConstraint ( unsigned  index  )  [inline]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::draw (  )  [inline, virtual]

template<class DataTypes >
Real sofa::component::constraint::ParabolicConstraint< DataTypes >::getBeginTime (  )  [inline]

template<class DataTypes >
Real sofa::component::constraint::ParabolicConstraint< DataTypes >::getEndTime (  )  [inline]

template<class DataTypes >
Vec3R sofa::component::constraint::ParabolicConstraint< DataTypes >::getP1 (  )  [inline]

template<class DataTypes >
Vec3R sofa::component::constraint::ParabolicConstraint< DataTypes >::getP2 (  )  [inline]

template<class DataTypes >
Vec3R sofa::component::constraint::ParabolicConstraint< DataTypes >::getP3 (  )  [inline]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::init ( void   )  [inline, virtual]

template<>
void sofa::component::constraint::ParabolicConstraint< Rigid3fTypes >::projectPosition ( VecCoord &  x  )  [inline, virtual]

template<>
void sofa::component::constraint::ParabolicConstraint< Rigid3dTypes >::projectPosition ( VecCoord &  x  )  [inline, virtual]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::projectPosition ( VecCoord &  x  )  [inline, virtual]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::projectResponse ( VecDeriv &  dx  )  [inline, virtual]

template<>
void sofa::component::constraint::ParabolicConstraint< Rigid3fTypes >::projectVelocity ( VecDeriv &  v  )  [inline, virtual]

template<>
void sofa::component::constraint::ParabolicConstraint< Rigid3dTypes >::projectVelocity ( VecDeriv &  v  )  [inline, virtual]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::projectVelocity ( VecDeriv &  dx  )  [inline, virtual]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::reinit (  )  [inline, virtual]

Update method called when variables used in precomputation are modified.

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

Definition at line 118 of file ParabolicConstraint.inl.

References sofa::component::constraint::ParabolicConstraint< DataTypes >::init().

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::setBeginTime ( const Real &  t  )  [inline]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::setEndTime ( const Real &  t  )  [inline]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::setP1 ( const Vec3R &  p  )  [inline]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::setP2 ( const Vec3R &  p  )  [inline]

template<class DataTypes >
void sofa::component::constraint::ParabolicConstraint< DataTypes >::setP3 ( const Vec3R &  p  )  [inline]


Field Documentation

template<class DataTypes >
Data<SetIndex> sofa::component::constraint::ParabolicConstraint< DataTypes >::m_indices [protected]

template<class DataTypes >
Vec3R sofa::component::constraint::ParabolicConstraint< DataTypes >::m_locP1 [protected]

the 3 points projected in the parabol plan

Definition at line 78 of file ParabolicConstraint.h.

Referenced by sofa::component::constraint::ParabolicConstraint< DataTypes >::init().

template<class DataTypes >
Vec3R sofa::component::constraint::ParabolicConstraint< DataTypes >::m_locP2 [protected]

template<class DataTypes >
Vec3R sofa::component::constraint::ParabolicConstraint< DataTypes >::m_locP3 [protected]

template<class DataTypes >
Data<Vec3R> sofa::component::constraint::ParabolicConstraint< DataTypes >::m_P1 [protected]

template<class DataTypes >
Data<Vec3R> sofa::component::constraint::ParabolicConstraint< DataTypes >::m_P2 [protected]

template<class DataTypes >
Data<Vec3R> sofa::component::constraint::ParabolicConstraint< DataTypes >::m_P3 [protected]

template<class DataTypes >
QuatR sofa::component::constraint::ParabolicConstraint< DataTypes >::m_projection [protected]

template<class DataTypes >
Data<Real> sofa::component::constraint::ParabolicConstraint< DataTypes >::m_tBegin [protected]

template<class DataTypes >
Data<Real> sofa::component::constraint::ParabolicConstraint< DataTypes >::m_tEnd [protected]


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

Generated on Sun Nov 23 04:17:45 2008 for Sofa by  doxygen 1.5.7.1