diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2005-08-27 18:27:05 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2005-08-27 18:27:05 +0400 |
commit | 8f5bff6051025bbd4d5e0a127f7fef09ef226c1a (patch) | |
tree | 219aaf70466a360c7a5e80a983d0d130359fc873 /intern/iksolver | |
parent | ae9dcb3dc2f36f9ae6f2ca94dedc34c681b86045 (diff) |
Make IK DOF stiffness work in range 0.0-1.0, for consistency.
Diffstat (limited to 'intern/iksolver')
-rw-r--r-- | intern/iksolver/intern/IK_QTask.h | 1 | ||||
-rw-r--r-- | intern/iksolver/intern/IK_Solver.cpp | 7 |
2 files changed, 6 insertions, 2 deletions
diff --git a/intern/iksolver/intern/IK_QTask.h b/intern/iksolver/intern/IK_QTask.h index 4f162e183ff..0e00925d908 100644 --- a/intern/iksolver/intern/IK_QTask.h +++ b/intern/iksolver/intern/IK_QTask.h @@ -48,6 +48,7 @@ public: bool active, const IK_QSegment *segment ); + virtual ~IK_QTask() {}; int Id() const { return m_size; } diff --git a/intern/iksolver/intern/IK_Solver.cpp b/intern/iksolver/intern/IK_Solver.cpp index b1806a955b5..7e9d00f8655 100644 --- a/intern/iksolver/intern/IK_Solver.cpp +++ b/intern/iksolver/intern/IK_Solver.cpp @@ -144,11 +144,14 @@ void IK_SetLimit(IK_Segment *seg, IK_SegmentAxis axis, float lmin, float lmax) void IK_SetStiffness(IK_Segment *seg, IK_SegmentAxis axis, float stiffness) { - if (stiffness < 1.0) + if (stiffness < 0.0) return; + + if (stiffness > 0.99) + stiffness = 0.99; IK_QSegment *qseg = (IK_QSegment*)seg; - MT_Scalar weight = 1.0/stiffness; + MT_Scalar weight = 1.0-stiffness; if (axis == IK_X) qseg->SetWeight(0, weight); |