/**
 * Copyright (c) 2021 Dominic Masters
 * 
 * This software is released under the MIT License.
 * https://opensource.org/licenses/MIT
 */
#pragma once

typedef float easefunction_t(float t);

/**
 * Returns the ease time for a given real time duration span.
 * @param start At what point in time the animation started
 * @param current The current point in time the animation is at.
 * @param duration The total duration on the animation.
 * @returns The easing time (0-1 time) that the animation is at.
 */
#define easeTimeToEase(start, current, duration) ((current-start)/duration)

float easeLinear(float t);
float easeInQuad(float t);
float easeOutQuad(float t);
float easeInOutQuad(float t);
float easeInCubic(float t);
float easeOutCubic(float t);
float easeInOutCubic(float t);
float easeInQuart(float t);
float easeOutQuart(float t);
float easeInOutQuart(float t);
float easeInQuint(float t);
float easeOutQuint(float t);
float easeInOutQuint(float t);