Files
aee/source/utils/easing.cpp
2026-04-05 01:03:48 +02:00

25 lines
754 B
C++

#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<int>((b - a) * t);
}
} // namespace Easing