Fix for baked FCurve subframe interpolation (bad abs use)
authorCampbell Barton <ideasman42@gmail.com>
Sat, 1 Mar 2014 03:12:11 +0000 (14:12 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 1 Mar 2014 03:12:56 +0000 (14:12 +1100)
source/blender/blenkernel/intern/fcurve.c

index 1d127a0eb3356d4bf9305b70a3a6522f9b5d9528..1df574b509cc6fd314fe8bf1fa436cf4eefa4a53 100644 (file)
@@ -2115,7 +2115,7 @@ static float fcurve_eval_samples(FCurve *fcu, FPoint *fpts, float evaltime)
                cvalue = lastfpt->vec[1];
        }
        else {
-               float t = (float)abs(evaltime - (int)evaltime);
+               float t = fabsf(evaltime - floorf(evaltime));
                
                /* find the one on the right frame (assume that these are spaced on 1-frame intervals) */
                fpt = prevfpt + (int)(evaltime - prevfpt->vec[0]);