ASW Lib
A.D.S. Games SDL Wrapper Library. A library targeted at Allegro4 users who want to switch to SDL3 and use modern c++.
Loading...
Searching...
No Matches
easing.h
Go to the documentation of this file.
1
8
9#ifndef ASW_EASING_H
10#define ASW_EASING_H
11
12#include <algorithm>
13#include <cmath>
14
15namespace asw::easing {
17 using EaseFunc = float (*)(float);
18
19 // --- Linear ---
20 float linear(float t);
21
22 // --- Quadratic ---
23 float easeInQuad(float t);
24 float easeOutQuad(float t);
25 float easeInOutQuad(float t);
26
27 // --- Cubic ---
28 float easeInCubic(float t);
29 float easeOutCubic(float t);
30 float easeInOutCubic(float t);
31
32 // --- Sine ---
33 float easeInSine(float t);
34 float easeOutSine(float t);
35 float easeInOutSine(float t);
36
37 // --- Exponential ---
38 float easeInExpo(float t);
39 float easeOutExpo(float t);
40 float easeInOutExpo(float t);
41
42 // --- Elastic ---
43 float easeInElastic(float t);
44 float easeOutElastic(float t);
45
46 // --- Bounce ---
47 float easeInBounce(float t);
48 float easeOutBounce(float t);
49
50 // --- Back (overshoot) ---
51 float easeInBack(float t);
52 float easeOutBack(float t);
53
54 // --- Convenience ---
55
61 template <typename T>
62 T ease(const T& a, const T& b, float t, EaseFunc func) {
63 return a + (b - a) * func(std::clamp(t, 0.0F, 1.0F));
64 }
65
66} // namespace asw::easing
67
68#endif // ASW_EASING_H
float easeOutElastic(float t)
Definition easing.cpp:84
float easeInOutCubic(float t)
Definition easing.cpp:31
float linear(float t)
Definition easing.cpp:4
float easeOutExpo(float t)
Definition easing.cpp:54
float easeInQuad(float t)
Definition easing.cpp:9
float easeInOutExpo(float t)
Definition easing.cpp:58
float easeOutQuad(float t)
Definition easing.cpp:13
float easeOutCubic(float t)
Definition easing.cpp:26
float easeInOutQuad(float t)
Definition easing.cpp:17
float easeInOutSine(float t)
Definition easing.cpp:45
float easeInElastic(float t)
Definition easing.cpp:75
float easeInCubic(float t)
Definition easing.cpp:22
float easeOutBounce(float t)
Definition easing.cpp:95
float easeInExpo(float t)
Definition easing.cpp:50
float easeOutBack(float t)
Definition easing.cpp:125
float(*)(float) EaseFunc
Type alias for easing functions.
Definition easing.h:17
float easeInBack(float t)
Definition easing.cpp:120
float easeInBounce(float t)
Definition easing.cpp:115
float easeInSine(float t)
Definition easing.cpp:37
float easeOutSine(float t)
Definition easing.cpp:41
T ease(const T &a, const T &b, float t, EaseFunc func)
Definition easing.h:62