diff options
-rw-r--r-- | source/blender/blenkernel/intern/fcurve.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 02b95c89be4..abf847274c4 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -2436,11 +2436,11 @@ static float fcurve_eval_samples(FCurve *fcu, FPoint *fpts, float 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]); + fpt = prevfpt + ((int)evaltime - (int)prevfpt->vec[0]); /* if not exactly on the frame, perform linear interpolation with the next one */ - if (t != 0.0f) - cvalue = interpf(fpt->vec[1], (fpt + 1)->vec[1], t); + if ((t != 0.0f) && (t < 1.0f)) + cvalue = interpf(fpt->vec[1], (fpt + 1)->vec[1], 1.0f - t); else cvalue = fpt->vec[1]; } |