#include <BaseConstraint.h>


Public Member Functions | |
| virtual | ~BaseConstraint () |
| virtual void | applyConstraint (unsigned int &, double &) |
| virtual void | applyConstraint (defaulttype::BaseMatrix *, unsigned int &) |
| Project the global Mechanical Matrix to constrained space using offset parameter. | |
| virtual void | applyConstraint (defaulttype::BaseVector *, unsigned int &) |
| Project the global Mechanical Vector to constrained space using offset parameter. | |
| virtual void | getConstraintValue (defaulttype::BaseVector *) |
| virtual void | getConstraintValue (double *) |
| virtual void | getConstraintId (long *, unsigned int &) |
| virtual bool | isHolonomic () |
| says if the constraint is holonomic or not holonomic constraints can be processed using different methods such as : projection - reducing the degrees of freedom - simple lagrange multiplier process Non-holonomic constraints (like contact, friction. | |
Vector operations | |
| virtual void | projectResponse ()=0 |
| Project dx to constrained space (dx models an acceleration). | |
| virtual void | projectVelocity ()=0 |
| Project v to constrained space (v models a velocity). | |
| virtual void | projectPosition ()=0 |
| Project x to constrained space (x models a position). | |
| virtual void | projectFreeVelocity ()=0 |
| Project vFree to constrained space (vFree models a velocity). | |
| virtual void | projectFreePosition ()=0 |
| Project xFree to constrained space (xFree models a position). | |
Matrix operations | |
| virtual void | projectResponse (double **) |
| Project the compliance Matrix to constrained space. | |
Component computing constraints within a simulated body.
This class define the abstract API common to all constraints. A BaseConstraint computes constraints applied to one or more simulated body given its current position and velocity.
Constraints can be internal to a given body (attached to one MechanicalState, see the Constraint class), or link several bodies together (such as contacts, see the InteractionConstraint class).
Definition at line 63 of file BaseConstraint.h.
| virtual sofa::core::componentmodel::behavior::BaseConstraint::~BaseConstraint | ( | ) | [inline, virtual] |
Definition at line 66 of file BaseConstraint.h.
| void sofa::core::componentmodel::behavior::BaseConstraint::applyConstraint | ( | defaulttype::BaseVector * | , | |
| unsigned int & | ||||
| ) | [virtual] |
Project the global Mechanical Vector to constrained space using offset parameter.
Reimplemented in sofa::component::constraint::AttachConstraint< DataTypes >, and sofa::component::constraint::FixedConstraint< DataTypes >.
Definition at line 53 of file BaseConstraint.cpp.
| void sofa::core::componentmodel::behavior::BaseConstraint::applyConstraint | ( | defaulttype::BaseMatrix * | , | |
| unsigned int & | ||||
| ) | [virtual] |
Project the global Mechanical Matrix to constrained space using offset parameter.
Reimplemented in sofa::component::constraint::AttachConstraint< DataTypes >, and sofa::component::constraint::FixedConstraint< DataTypes >.
Definition at line 49 of file BaseConstraint.cpp.
| void sofa::core::componentmodel::behavior::BaseConstraint::applyConstraint | ( | unsigned int & | , | |
| double & | ||||
| ) | [virtual] |
Reimplemented in sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Definition at line 45 of file BaseConstraint.cpp.
Referenced by sofa::simulation::MechanicalAccumulateConstraint::fwdConstraint(), and sofa::simulation::MechanicalAddMBK_ToMatrixVisitor::fwdConstraint().
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::getConstraintId | ( | long * | , | |
| unsigned int & | ||||
| ) | [inline, virtual] |
Reimplemented in sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Definition at line 106 of file BaseConstraint.h.
Referenced by sofa::component::odesolver::MechanicalGetContactIDVisitor::fwdConstraint().
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::getConstraintValue | ( | double * | ) | [inline, virtual] |
Reimplemented in sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Definition at line 105 of file BaseConstraint.h.
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::getConstraintValue | ( | defaulttype::BaseVector * | ) | [inline, virtual] |
Reimplemented in sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Definition at line 104 of file BaseConstraint.h.
Referenced by sofa::component::odesolver::MechanicalGetConstraintValueVisitor::fwdConstraint().
| virtual bool sofa::core::componentmodel::behavior::BaseConstraint::isHolonomic | ( | ) | [inline, virtual] |
says if the constraint is holonomic or not holonomic constraints can be processed using different methods such as : projection - reducing the degrees of freedom - simple lagrange multiplier process Non-holonomic constraints (like contact, friction.
..) need more specific treatments
Reimplemented in sofa::component::constraint::AttachConstraint< DataTypes >, sofa::component::constraint::BoxConstraint< DataTypes >, sofa::component::constraint::FixedConstraint< DataTypes >, sofa::component::constraint::LinearMovementConstraint< DataTypes >, sofa::component::constraint::OscillatorConstraint< DataTypes >, sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Definition at line 113 of file BaseConstraint.h.
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::projectFreePosition | ( | ) | [pure virtual] |
Project xFree to constrained space (xFree models a position).
Implemented in sofa::core::componentmodel::behavior::Constraint< DataTypes >, sofa::core::componentmodel::behavior::MixedInteractionConstraint< TDataTypes1, TDataTypes2 >, sofa::core::componentmodel::behavior::PairInteractionConstraint< TDataTypes >, sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, sofa::core::componentmodel::behavior::Constraint< TDataTypes >, sofa::core::componentmodel::behavior::PairInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Referenced by sofa::simulation::MechanicalPropagateFreePositionVisitor::fwdConstraint().
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::projectFreeVelocity | ( | ) | [pure virtual] |
Project vFree to constrained space (vFree models a velocity).
Implemented in sofa::core::componentmodel::behavior::Constraint< DataTypes >, sofa::core::componentmodel::behavior::MixedInteractionConstraint< TDataTypes1, TDataTypes2 >, sofa::core::componentmodel::behavior::PairInteractionConstraint< TDataTypes >, sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, sofa::core::componentmodel::behavior::Constraint< TDataTypes >, sofa::core::componentmodel::behavior::PairInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Referenced by sofa::simulation::MechanicalPropagateFreePositionVisitor::fwdConstraint().
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::projectPosition | ( | ) | [pure virtual] |
Project x to constrained space (x models a position).
Implemented in sofa::core::componentmodel::behavior::Constraint< DataTypes >, sofa::core::componentmodel::behavior::MixedInteractionConstraint< TDataTypes1, TDataTypes2 >, sofa::core::componentmodel::behavior::PairInteractionConstraint< TDataTypes >, sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, sofa::core::componentmodel::behavior::Constraint< TDataTypes >, sofa::core::componentmodel::behavior::PairInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Referenced by sofa::simulation::MechanicalPropagatePositionAndVelocityVisitor::fwdConstraint().
| void sofa::core::componentmodel::behavior::BaseConstraint::projectResponse | ( | double ** | ) | [virtual] |
Project the compliance Matrix to constrained space.
Definition at line 41 of file BaseConstraint.cpp.
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::projectResponse | ( | ) | [pure virtual] |
Project dx to constrained space (dx models an acceleration).
Implemented in sofa::core::componentmodel::behavior::Constraint< DataTypes >, sofa::core::componentmodel::behavior::MixedInteractionConstraint< TDataTypes1, TDataTypes2 >, sofa::core::componentmodel::behavior::PairInteractionConstraint< TDataTypes >, sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, sofa::core::componentmodel::behavior::Constraint< TDataTypes >, sofa::core::componentmodel::behavior::PairInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Referenced by sofa::simulation::MechanicalApplyConstraintsVisitor::bwdConstraint().
| virtual void sofa::core::componentmodel::behavior::BaseConstraint::projectVelocity | ( | ) | [pure virtual] |
Project v to constrained space (v models a velocity).
Implemented in sofa::core::componentmodel::behavior::Constraint< DataTypes >, sofa::core::componentmodel::behavior::MixedInteractionConstraint< TDataTypes1, TDataTypes2 >, sofa::core::componentmodel::behavior::PairInteractionConstraint< TDataTypes >, sofa::component::constraint::UnilateralInteractionConstraint< DataTypes >, sofa::core::componentmodel::behavior::Constraint< TDataTypes >, sofa::core::componentmodel::behavior::PairInteractionConstraint< DataTypes >, and sofa::component::constraint::UnilateralInteractionConstraint< sofa::defaulttype::StdVectorTypes >.
Referenced by sofa::simulation::MechanicalPropagatePositionAndVelocityVisitor::fwdConstraint().
1.5.7.1