[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49313] trunk/blender: defines to make it easier to manage ik stretch constants ( these may need to be tweaked to fix [#32174])
Campbell Barton
ideasman42 at gmail.com
Sat Jul 28 01:16:33 CEST 2012
Revision: 49313
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49313
Author: campbellbarton
Date: 2012-07-27 23:16:33 +0000 (Fri, 27 Jul 2012)
Log Message:
-----------
defines to make it easier to manage ik stretch constants (these may need to be tweaked to fix [#32174])
Modified Paths:
--------------
trunk/blender/intern/iksolver/extern/IK_solver.h
trunk/blender/intern/iksolver/intern/IK_Solver.cpp
trunk/blender/source/blender/ikplugin/intern/iksolver_plugin.c
Modified: trunk/blender/intern/iksolver/extern/IK_solver.h
===================================================================
--- trunk/blender/intern/iksolver/extern/IK_solver.h 2012-07-27 22:35:27 UTC (rev 49312)
+++ trunk/blender/intern/iksolver/extern/IK_solver.h 2012-07-27 23:16:33 UTC (rev 49313)
@@ -163,6 +163,9 @@
int IK_Solve(IK_Solver *solver, float tolerance, int max_iterations);
+#define IK_STRETCH_STIFF_EPS 0.001f
+#define IK_STRETCH_STIFF_MIN 0.001f
+#define IK_STRETCH_STIFF_MAX 1e10
#ifdef __cplusplus
}
Modified: trunk/blender/intern/iksolver/intern/IK_Solver.cpp
===================================================================
--- trunk/blender/intern/iksolver/intern/IK_Solver.cpp 2012-07-27 22:35:27 UTC (rev 49312)
+++ trunk/blender/intern/iksolver/intern/IK_Solver.cpp 2012-07-27 23:16:33 UTC (rev 49313)
@@ -201,8 +201,8 @@
if (stiffness < 0.0f)
return;
- if (stiffness > 0.999f)
- stiffness = 0.999f;
+ if (stiffness > (1.0 - IK_STRETCH_STIFF_EPS))
+ stiffness = (1.0 - IK_STRETCH_STIFF_EPS);
IK_QSegment *qseg = (IK_QSegment *)seg;
MT_Scalar weight = 1.0f - stiffness;
Modified: trunk/blender/source/blender/ikplugin/intern/iksolver_plugin.c
===================================================================
--- trunk/blender/source/blender/ikplugin/intern/iksolver_plugin.c 2012-07-27 22:35:27 UTC (rev 49312)
+++ trunk/blender/source/blender/ikplugin/intern/iksolver_plugin.c 2012-07-27 23:16:33 UTC (rev 49313)
@@ -334,9 +334,9 @@
IK_SetStiffness(seg, IK_Z, pchan->stiffness[2]);
if (tree->stretch && (pchan->ikstretch > 0.0f)) {
- float ikstretch = pchan->ikstretch * pchan->ikstretch;
- IK_SetStiffness(seg, IK_TRANS_Y, MIN2(1.0f - ikstretch, 0.99f));
- IK_SetLimit(seg, IK_TRANS_Y, 0.001, 1e10);
+ double ikstretch = (double)pchan->ikstretch * (double)pchan->ikstretch;
+ IK_SetStiffness(seg, IK_TRANS_Y, 1.0f - ikstretch);
+ IK_SetLimit(seg, IK_TRANS_Y, IK_STRETCH_STIFF_MIN, IK_STRETCH_STIFF_MAX);
}
}
More information about the Bf-blender-cvs
mailing list