15 return t * t * (3.0F - (2.0F * t));
26 return t * (2.0F - t);
31 return t < 0.5F ? 2.0F * t * t : -1.0F + ((4.0F - (2.0F * t)) * t);
42 const float u = t - 1.0F;
43 return (u * u * u) + 1.0F;
48 return t < 0.5F ? 4.0F * t * t * t
49 : ((t - 1.0F) * (2.0F * t - 2.0F) * (2.0F * t - 2.0F)) + 1.0F;
55 return 1.0F - std::cos(t * std::numbers::pi_v<float> * 0.5F);
60 return std::sin(t * std::numbers::pi_v<float> * 0.5F);
65 return 0.5F * (1.0F - std::cos(std::numbers::pi_v<float> * t));
71 return t == 0.0F ? 0.0F : std::pow(2.0F, 10.0F * (t - 1.0F));
76 return t == 1.0F ? 1.0F : 1.0F - std::pow(2.0F, -10.0F * t);
90 return std::pow(2.0F, (20.0F * t) - 10.0F) * 0.5F;
93 return (2.0F - std::pow(2.0F, (-20.0F * t) + 10.0F)) * 0.5F;
99 if (t == 0.0F || t == 1.0F) {
103 return -std::pow(2.0F, 10.0F * (t - 1.0F))
104 * std::sin((t - 1.075F) * (2.0F * std::numbers::pi_v<float>) / 0.3F);
109 if (t == 0.0F || t == 1.0F) {
113 return (std::pow(2.0F, -10.0F * t)
114 * std::sin((t - 0.075F) * (2.0F * std::numbers::pi_v<float>) / 0.3F))
121 if (t < 1.0F / 2.75F) {
122 return 7.5625F * t * t;
125 if (t < 2.0F / 2.75F) {
127 return (7.5625F * t * t) + 0.75F;
130 if (t < 2.5F / 2.75F) {
132 return (7.5625F * t * t) + 0.9375F;
137 return (7.5625F * t * t) + 0.984375F;
148 constexpr float s = 1.70158F;
149 return t * t * ((s + 1.0F) * t - s);
154 constexpr float s = 1.70158F;
155 const float u = t - 1.0F;
156 return (u * u * ((s + 1.0F) * u + s)) + 1.0F;
Easing functions for animations.
float ease_out_cubic(float t)
float smoothstep(float t)
Soft at both ends, 3t^2 - 2t^3.
float ease_out_quad(float t)
float ease_in_out_expo(float t)
float ease_in_elastic(float t)
float ease_out_bounce(float t)
float ease_in_out_quad(float t)
float ease_out_back(float t)
float ease_in_out_cubic(float t)
float ease_in_back(float t)
float ease_out_sine(float t)
float ease_in_cubic(float t)
float ease_in_quad(float t)
float falloff(float t, asw::Falloff mode)
float ease_in_sine(float t)
float ease_in_out_sine(float t)
float ease_out_elastic(float t)
float ease_out_expo(float t)
float ease_in_expo(float t)
float ease_in_bounce(float t)
Falloff
How a gradient or light fades from its centre to its edge.
@ Linear
Even fade to the edge.
@ Quadratic
Bright core that drops off quickly, closer to a real light.
@ Smooth
Soft at the centre and at the edge.