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