[Bf-blender-cvs] [00ef77c] master: Fixes for SplineIK:

Joshua Leung noreply at git.blender.org
Tue Jan 13 07:31:57 CET 2015


Commit: 00ef77c1a241aaf3d7c6307411e97938b87c3096
Author: Joshua Leung
Date:   Tue Jan 13 19:30:31 2015 +1300
Branches: master
https://developer.blender.org/rB00ef77c1a241aaf3d7c6307411e97938b87c3096

Fixes for SplineIK:

* Ensure that when new constraints are created, the new settings have sensible
  default values.
  TODO: we need to version-patch old files

* Fix problem with variable shadowing (which wasn't causing problems AFAIK)

===================================================================

M	source/blender/blenkernel/intern/armature.c
M	source/blender/blenkernel/intern/constraint.c

===================================================================

diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 9232cd6..03372b9 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2192,7 +2192,7 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
 			case CONSTRAINT_SPLINEIK_XZS_VOLUMETRIC:
 			{
 				/* improved volume preservation based on the Stretch To constraint */
-				float scale;
+				float final_scale;
 				
 				/* as the basis for volume preservation, we use the inverse scale factor... */
 				if (fabsf(scaleFac) != 0.0f) {
@@ -2225,16 +2225,16 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
 					}
 					
 					/* compute scale factor for xz axes from this value */
-					scale = sqrt(bulge);
+					final_scale = sqrt(bulge);
 				}
 				else {
 					/* no scaling, so scale factor is simple */
-					scale = 1.0f;
+					final_scale = 1.0f;
 				}
 				
 				/* apply the scaling (assuming normalised scale) */
-				mul_v3_fl(poseMat[0], scale);
-				mul_v3_fl(poseMat[2], scale);
+				mul_v3_fl(poseMat[0], final_scale);
+				mul_v3_fl(poseMat[2], final_scale);
 				break;
 			}
 		}
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index 5f97abb..f591fe8 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -3698,6 +3698,9 @@ static void splineik_new_data(void *cdata)
 	bSplineIKConstraint *data = (bSplineIKConstraint *)cdata;
 
 	data->chainlen = 1;
+	data->bulge = 1.0;
+	data->bulge_max = 1.0f;
+	data->bulge_min = 1.0f;
 }
 
 static void splineik_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)




More information about the Bf-blender-cvs mailing list