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

Reply via email to