// easing.hpp - Funciones de interpolació i easing // © 2026 JailDesigner #pragma once namespace Easing { // Ease-out quadratic: empieza rápido, desacelera suavemente // t = progreso normalizado [0.0 - 1.0] // retorna value interpolado [0.0 - 1.0] inline auto easeOutQuad(float t) -> float { return 1.0F - ((1.0F - t) * (1.0F - t)); } // Ease-in quadratic: empieza lento, acelera // t = progreso normalizado [0.0 - 1.0] // retorna value interpolado [0.0 - 1.0] inline auto easeInQuad(float t) -> float { return t * t; } // Ease-in-out quadratic: acelera al inicio, desacelera al final // t = progreso normalizado [0.0 - 1.0] // retorna value interpolado [0.0 - 1.0] inline auto easeInOutQuad(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); } // Ease-out cubic: desaceleración más suave que quadratic // t = progreso normalizado [0.0 - 1.0] // retorna value interpolado [0.0 - 1.0] inline auto easeOutCubic(float t) -> float { float t1 = 1.0F - t; return 1.0F - (t1 * t1 * t1); } // Interpolación lineal básica (para referencia) inline auto lerp(float start, float end, float t) -> float { return start + ((end - start) * t); } } // namespace Easing