[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