#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