- float a3 = p3*0.5f - p2*1.5f + p1*1.5f - p0*0.5f;
- float a2 = p0 - p1*2.5f + p2*2.0f - p3*0.5f;
- float a1 = (p2-p0)*0.5f;
-
- result = static_cast<int>( a3*progress*progress*progress + a2*progress*progress + a1*progress + p1 + 0.5f );
-}
-
-inline void CubicInterpolate( unsigned int& result, unsigned int p0, unsigned int p1, unsigned int p2, unsigned int p3, float progress )
-{
- float a3 = p3*0.5f - p2*1.5f + p1*1.5f - p0*0.5f;
- float a2 = p0 - p1*2.5f + p2*2.0f - p3*0.5f;
- float a1 = (p2-p0)*0.5f;
+ float a3 = static_cast<float>( p3 ) * 0.5f - static_cast<float>( p2 ) * 1.5f + static_cast<float>( p1 ) * 1.5f - static_cast<float>( p0 ) * 0.5f;
+ float a2 = static_cast<float>( p0 ) - static_cast<float>( p1 ) * 2.5f + static_cast<float>( p2 ) * 2.0f - static_cast<float>( p3 ) * 0.5f;
+ float a1 = static_cast<float>( p2 - p0 ) * 0.5f;