// easing.hpp - Funcions d'interpolació i easing // © 2025 Orni Attack #pragma once namespace Easing { // Ease-out quadratic: empieza rápido, desacelera suavemente // t = progreso normalizado [0.0 - 1.0] // retorna valor interpolado [0.0 - 1.0] inline float ease_out_quad(float t) { return 1.0f - (1.0f - t) * (1.0f - t); } // Ease-in quadratic: empieza lento, acelera // t = progreso normalizado [0.0 - 1.0] // retorna valor interpolado [0.0 - 1.0] inline float ease_in_quad(float t) { return t * t; } // Ease-in-out quadratic: acelera al inicio, desacelera al final // t = progreso normalizado [0.0 - 1.0] // retorna valor interpolado [0.0 - 1.0] inline float ease_in_out_quad(float t) { return (t < 0.5f) ? 2.0f * t * t : 1.0f - (-2.0f * t + 2.0f) * (-2.0f * t + 2.0f) / 2.0f; } // Ease-out cubic: desaceleración más suave que quadratic // t = progreso normalizado [0.0 - 1.0] // retorna valor interpolado [0.0 - 1.0] inline float ease_out_cubic(float t) { float t1 = 1.0f - t; return 1.0f - t1 * t1 * t1; } // Interpolación lineal básica (para referencia) inline float lerp(float start, float end, float t) { return start + (end - start) * t; } } // namespace Easing