#include "utils/easing.hpp" namespace Easing { auto linear(float t) -> float { return t; } auto outQuad(float t) -> float { return 1.0F - (1.0F - t) * (1.0F - t); } auto inQuad(float t) -> float { return t * t; } auto inOutQuad(float t) -> float { return t < 0.5F ? 2.0F * t * t : 1.0F - (-2.0F * t + 2.0F) * (-2.0F * t + 2.0F) / 2.0F; } auto outCubic(float t) -> float { const float inv = 1.0F - t; return 1.0F - inv * inv * inv; } auto inCubic(float t) -> float { return t * t * t; } auto lerp(float a, float b, float t) -> float { return a + (b - a) * t; } auto lerpInt(int a, int b, float t) -> int { return a + static_cast((b - a) * t); } } // namespace Easing