From 8f5bff6051025bbd4d5e0a127f7fef09ef226c1a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 27 Aug 2005 14:27:05 +0000 Subject: Make IK DOF stiffness work in range 0.0-1.0, for consistency. --- intern/iksolver/intern/IK_QTask.h | 1 + intern/iksolver/intern/IK_Solver.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'intern/iksolver') 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); -- cgit v1.2.3