Files

80 lines
1.7 KiB
C

/*
* Easings.h
*
* Created: Sun Jun 22 2025 15:51:51
* Author Chris
*/
#ifndef EASINGS_H_
#define EASINGS_H_
// ============================================================================================
// Includes
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <math.h>
// ============================================================================================
// Defines
// ============================================================================================
// Datatypes
typedef enum
{
LINEAR,
IN_SINE,
IN_QUAD,
IN_CUBIC,
IN_QUART,
IN_QUINT,
IN_EXPO,
IN_CIRC,
OUT_SINE,
OUT_QUAD,
OUT_CUBIC,
OUT_QUART,
OUT_QUINT,
OUT_EXPO,
OUT_CIRC,
INOUT_SINE,
INOUT_QUAD,
INOUT_CUBIC,
INOUT_QUART,
INOUT_QUINT,
INOUT_EXPO,
INOUT_CIRC
} Easing;
// ============================================================================================
// Function Declarations
float Linear(float x);
float Ease_In_Sine(float x);
float Ease_Out_Sine(float x);
float Ease_InOut_Sine(float x);
float Ease_In_Quad(float x);
float Ease_Out_Quad(float x);
float Ease_InOut_Quad(float x);
float Ease_In_Cubic(float x);
float Ease_Out_Cubic(float x);
float Ease_InOut_Cubic(float x);
float Ease_In_Quart(float x);
float Ease_Out_Quart(float x);
float Ease_InOut_Quart(float x);
float Ease_In_Quint(float x);
float Ease_Out_Quint(float x);
float Ease_InOut_Quint(float x);
float Ease_In_Expo(float x);
float Ease_Out_Expo(float x);
float Ease_InOut_Expo(float x);
float Ease_In_Circ(float x);
float Ease_Out_Circ(float x);
float Ease_InOut_Circ(float x);
float ApplyEasing2(float ratio, float value1, float value2, Easing easing);
float ApplyEasing1(float ratio, Easing easing);
#endif /* EASINGS_H_ */