// easing.hpp - Funciones d'interpolació suaus (header-only)
// © 2026 JailDesigner
//
// Conjunt mínim de funcions easing per a animacions d'UI. Totes prenen un
// paràmetre normalitzat t ∈ [0,1] i retornen un valor ∈ [0,1].

#pragma once

namespace Utils::Easing {

    // outCubic: ràpid al principi, suau cap al final. Útil per a entrades de
    // notificacions (slide-in: arrenc d'impacte i frenada cuidada).
    constexpr auto outCubic(float t) -> float {
        const float INV = 1.0F - t;
        return 1.0F - (INV * INV * INV);
    }

    // inCubic: arranca suau, accelera cap al final. Útil per a sortides
    // (slide-out: comença discretament i desapareix ràpid).
    constexpr auto inCubic(float t) -> float {
        return t * t * t;
    }

}  // namespace Utils::Easing
