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)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to