renderd7/external/tween-engine/src/paths/LinearPath.cpp
2021-07-23 13:58:16 +00:00

23 lines
605 B
C++

//
// Linear.cpp
//
// This code is derived from Universal Tween Engine
// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
//
#include <math.h>
#include <TweenEngine/paths/LinearPath.h>
namespace TweenEngine
{
float LinearPath::compute(float t, float *points, int pointsCnt)
{
int segment = (int) floor((pointsCnt-1) * t);
segment = segment > 0 ? segment : 0;
segment = segment < (pointsCnt-2) ? segment : pointsCnt-2;
t = t * (pointsCnt-1) - segment;
return points[segment] + t * (points[segment+1] - points[segment]);
}
}