33 #ifndef DART_CONSTRAINT_CONSTRAINTBASE_HPP_ 34 #define DART_CONSTRAINT_CONSTRAINTBASE_HPP_ 38 #include "dart/dynamics/SmartPointer.hpp" 78 virtual const std::string& getType()
const;
81 std::size_t getDimension()
const;
84 virtual void update() = 0;
90 virtual void applyUnitImpulse(std::size_t index) = 0;
93 virtual void getVelocityChange(
double* vel,
bool withCfm) = 0;
96 virtual void excite() = 0;
99 virtual void unexcite() = 0;
102 virtual void applyImpulse(
double* lambda) = 0;
105 virtual bool isActive()
const = 0;
108 virtual dynamics::SkeletonPtr getRootSkeleton()
const = 0;
111 virtual void uniteSkeletons();
114 static dynamics::SkeletonPtr compressPath(dynamics::SkeletonPtr skeleton);
117 static dynamics::SkeletonPtr getRootSkeleton(dynamics::SkeletonPtr skeleton);
141 #endif // DART_CONSTRAINT_CONSTRAINTBASE_HPP_ ConstrainedGroup is a group of skeletons that interact each other with constraints.
Definition: ConstrainedGroup.hpp:57
Constraint is a base class of concrete constraints classes.
Definition: ConstraintBase.hpp:74
ConstraintInfo.
Definition: ConstraintBase.hpp:49
ConstraintSolver manages constraints and computes constraint impulses.
Definition: ConstraintSolver.hpp:56
Definition: Aspect.cpp:40
double invTimeStep
Inverse of time step.
Definition: ConstraintBase.hpp:70
double * x
Impulse.
Definition: ConstraintBase.hpp:52
int * findex
Friction index.
Definition: ConstraintBase.hpp:67
std::size_t mDim
Dimension of constraint.
Definition: ConstraintBase.hpp:135
double * hi
Upper bound of x.
Definition: ConstraintBase.hpp:58
double * b
Bias term.
Definition: ConstraintBase.hpp:61
double * w
Slack variable.
Definition: ConstraintBase.hpp:64
double * lo
Lower bound of x.
Definition: ConstraintBase.hpp:55