Tweeny 4.1.0
A Tweening library for modern C++
Loading...
Searching...
No Matches
easing.h
1/*
2This file is part of the Tweeny library.
3
4Copyright (c) 2016-2026 Leonardo Guilherme Lucena de Freitas
5Copyright (c) 2016 Guilherme R. Costa
6
7Permission is hereby granted, free of charge, to any person obtaining a copy of
8this software and associated documentation files (the "Software"), to deal in
9the Software without restriction, including without limitation the rights to
10use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11the Software, and to permit persons to whom the Software is furnished to do so,
12subject to the following conditions:
13
14The above copyright notice and this permission notice shall be included in all
15copies or substantial portions of the Software.
16
17THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23*/
24
31
32#ifndef TWEENY_EASING_H
33#define TWEENY_EASING_H
34
35#include "detail/easing/back.h"
36#include "detail/easing/bounce.h"
37#include "detail/easing/circular.h"
38#include "detail/easing/cubic.h"
39#include "detail/easing/def.h"
40#include "detail/easing/elastic.h"
41#include "detail/easing/exponential.h"
42#include "detail/easing/linear.h"
43#include "detail/easing/quadratic.h"
44#include "detail/easing/quartic.h"
45#include "detail/easing/quintic.h"
46#include "detail/easing/sinusoidal.h"
47#include "detail/easing/stepped.h"
48
56namespace tweeny::easing {
91 inline constexpr detail::backInEasing backIn{};
92
131 inline constexpr detail::backOutEasing backOut{};
132
171 inline constexpr detail::backInOutEasing backInOut{};
172
209 inline constexpr detail::bounceInEasing bounceIn{};
210
259 inline constexpr detail::bounceOutEasing bounceOut{};
260
298 inline constexpr detail::bounceInOutEasing bounceInOut{};
299
337 inline constexpr detail::circularInEasing circularIn{};
338
377 inline constexpr detail::circularOutEasing circularOut{};
378
416 inline constexpr detail::circularInOutEasing circularInOut{};
417
457 inline constexpr detail::cubicInEasing cubicIn{};
458
505 inline constexpr detail::cubicOutEasing cubicOut{};
506
546 inline constexpr detail::cubicInOutEasing cubicInOut{};
569 inline constexpr detail::defaultEasing def{};
570
618 inline constexpr detail::elasticInEasing elasticIn{};
619
678 inline constexpr detail::elasticOutEasing elasticOut{};
679
738 inline constexpr detail::elasticInOutEasing elasticInOut{};
739
791 inline constexpr detail::exponentialInEasing exponentialIn{};
792
843 inline constexpr detail::exponentialOutEasing exponentialOut{};
844
899 inline constexpr detail::exponentialInOutEasing exponentialInOut{};
956 inline constexpr detail::linearEasing linear{};
957
993 inline constexpr detail::quadraticInEasing quadraticIn{};
994
1033 inline constexpr detail::quadraticOutEasing quadraticOut{};
1034
1069 inline constexpr detail::quadraticInOutEasing quadraticInOut{};
1070
1106 inline constexpr detail::quarticInEasing quarticIn{};
1107
1146 inline constexpr detail::quarticOutEasing quarticOut{};
1147
1183 inline constexpr detail::quarticInOutEasing quarticInOut{};
1184
1220 inline constexpr detail::quinticInEasing quinticIn{};
1221
1261 inline constexpr detail::quinticOutEasing quinticOut{};
1262
1298 inline constexpr detail::quinticInOutEasing quinticInOut{};
1299
1335 inline constexpr detail::sinusoidalInEasing sinusoidalIn{};
1336
1374 inline constexpr detail::sinusoidalOutEasing sinusoidalOut{};
1375
1413 inline constexpr detail::sinusoidalInOutEasing sinusoidalInOut{};
1414
1465 inline constexpr detail::steppedEasing stepped{};
1466}
1467
1468#include "detail/easing/by-name.h"
1469
1470#endif //TWEENY_EASING_H
1471
constexpr detail::elasticInEasing elasticIn
Elastic easing with oscillating spring-like motion at the start.
Definition easing.h:618
constexpr detail::quadraticInEasing quadraticIn
Quadratic polynomial easing (t²) with gentle acceleration.
Definition easing.h:993
constexpr detail::quinticInEasing quinticIn
Quintic polynomial easing (t⁵) with very strong acceleration.
Definition easing.h:1220
constexpr detail::quadraticInOutEasing quadraticInOut
Quadratic polynomial easing with gentle acceleration and deceleration.
Definition easing.h:1069
constexpr detail::circularInEasing circularIn
Circular easing based on quarter-circle arc for smooth acceleration.
Definition easing.h:337
constexpr detail::sinusoidalInOutEasing sinusoidalInOut
Sinusoidal easing with smooth acceleration and deceleration.
Definition easing.h:1413
constexpr detail::quarticOutEasing quarticOut
Quartic polynomial easing (t⁴) with strong deceleration.
Definition easing.h:1146
constexpr detail::defaultEasing def
Default easing function, alias for linear easing.
Definition easing.h:569
constexpr detail::exponentialInOutEasing exponentialInOut
Exponential easing with extreme acceleration and deceleration.
Definition easing.h:899
constexpr detail::quinticOutEasing quinticOut
Quintic polynomial easing (t⁵) with very strong deceleration.
Definition easing.h:1261
constexpr detail::elasticInOutEasing elasticInOut
Elastic easing combining spring oscillation at both start and end.
Definition easing.h:738
constexpr detail::backInOutEasing backInOut
Easing function combining anticipation at the start and overshoot at the end.
Definition easing.h:171
constexpr detail::cubicInEasing cubicIn
Cubic polynomial easing (t³) with moderate acceleration.
Definition easing.h:457
constexpr detail::circularOutEasing circularOut
Circular easing based on quarter-circle arc for smooth deceleration.
Definition easing.h:377
constexpr detail::backInEasing backIn
Easing function that creates anticipation by pulling back before moving forward.
Definition easing.h:91
constexpr detail::sinusoidalOutEasing sinusoidalOut
Sinusoidal easing based on sine wave for smooth deceleration.
Definition easing.h:1374
constexpr detail::cubicInOutEasing cubicInOut
Cubic polynomial easing with balanced acceleration and deceleration.
Definition easing.h:546
constexpr detail::quarticInEasing quarticIn
Quartic polynomial easing (t⁴) with strong acceleration.
Definition easing.h:1106
constexpr detail::linearEasing linear
Linear easing function with constant velocity throughout the animation.
Definition easing.h:956
constexpr detail::exponentialInEasing exponentialIn
Exponential easing with very slow start and explosive acceleration.
Definition easing.h:791
constexpr detail::sinusoidalInEasing sinusoidalIn
Sinusoidal easing based on sine wave for smooth acceleration.
Definition easing.h:1335
constexpr detail::cubicOutEasing cubicOut
Cubic polynomial easing (t³) with moderate deceleration.
Definition easing.h:505
constexpr detail::backOutEasing backOut
Easing function that overshoots the target before settling back.
Definition easing.h:131
constexpr detail::steppedEasing stepped
Stepped easing that holds the start value until the keyframe completes.
Definition easing.h:1465
constexpr detail::bounceOutEasing bounceOut
Bounce easing simulating a ball dropping and bouncing to rest.
Definition easing.h:259
constexpr detail::quinticInOutEasing quinticInOut
Quintic polynomial easing with very strong acceleration and deceleration.
Definition easing.h:1298
constexpr detail::quadraticOutEasing quadraticOut
Quadratic polynomial easing (t²) with gentle deceleration.
Definition easing.h:1033
constexpr detail::quarticInOutEasing quarticInOut
Quartic polynomial easing with strong acceleration and deceleration.
Definition easing.h:1183
constexpr detail::elasticOutEasing elasticOut
Elastic easing with spring-like oscillation at the end.
Definition easing.h:678
constexpr detail::exponentialOutEasing exponentialOut
Exponential easing with explosive start and gradual slow-down.
Definition easing.h:843
constexpr detail::bounceInOutEasing bounceInOut
Bounce easing with bouncing at both start and end.
Definition easing.h:298
constexpr detail::bounceInEasing bounceIn
Bounce easing simulating a ball bouncing with increasing height at the start.
Definition easing.h:209
constexpr detail::circularInOutEasing circularInOut
Circular easing with smooth acceleration and deceleration.
Definition easing.h:416
Contains all built-in easing functions for controlling animation curves.
Definition by-name.h:32