Commit: f651a470bfbb8293665b5e40f578090548dbe42e
Author: Campbell Barton
Date: Thu Oct 23 16:29:40 2014 +0200
Branches: master
https://developer.blender.org/rBf651a470bfbb8293665b5e40f578090548dbe42e
Fix T42367: Spline-ik offset evaluating curve
===================================================================
M source/blender/blenkernel/intern/anim.c
M source/blender/blenkernel/intern/armature.c
===================================================================
diff --git a/source/blender/blenkernel/intern/anim.c
b/source/blender/blenkernel/intern/anim.c
index aff99d3..b878dbe 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -627,6 +627,9 @@ int where_on_path(Object *ob, float ctime, float vec[4],
float dir[3], float qua
if (!bl->nr) return 0;
if (bl->poly > -1) cycl = 1;
+ /* values below zero for non-cyclic curves give strange results */
+ BLI_assert(cycl || ctime >= 0.0f);
+
ctime *= (path->len - 1);
s1 = (int)floor(ctime);
diff --git a/source/blender/blenkernel/intern/armature.c
b/source/blender/blenkernel/intern/armature.c
index a668136..875815d 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -1940,6 +1940,9 @@ static void splineik_init_tree_from_pchan(Scene *scene,
Object *UNUSED(ob), bPos
}
}
+ /* disallow negative values (happens with float precision) */
+ CLAMP_MIN(ikData->points[segcount], 0.0f);
+
/* spline has now been bound */
ikData->flag |= CONSTRAINT_SPLINEIK_BOUND;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs