80 lines
1.7 KiB
C
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_ */ |