Switching SceneItems to smarts
This commit is contained in:
66
archive/animation/easing.cpp
Normal file
66
archive/animation/easing.cpp
Normal file
@ -0,0 +1,66 @@
|
||||
// Copyright (c) 2023 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#include "easing.hpp"
|
||||
|
||||
float_t easeTimeToEase(
|
||||
const float_t start,
|
||||
const float_t current,
|
||||
const float_t duration
|
||||
) {
|
||||
return (current - start) / duration;
|
||||
}
|
||||
|
||||
float_t easeLinear(const float_t t) {
|
||||
return t;
|
||||
}
|
||||
|
||||
float_t easeInQuad(const float_t t) {
|
||||
return t * t;
|
||||
}
|
||||
|
||||
float_t easeOutQuad(const float_t t) {
|
||||
return t * (2 - t);
|
||||
}
|
||||
|
||||
float_t easeOutCubic(const float_t t) {
|
||||
return 1 - powf(1 - t, 3);
|
||||
}
|
||||
|
||||
float_t easeInOutQuad(const float_t t) {
|
||||
return t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
|
||||
}
|
||||
|
||||
float_t easeInCubic(const float_t t) {
|
||||
return t * t * t;
|
||||
}
|
||||
|
||||
float_t easeInOutCubic(const float_t t) {
|
||||
return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
|
||||
}
|
||||
|
||||
float_t easeInQuart(const float_t t) {
|
||||
return t * t * t * t;
|
||||
}
|
||||
|
||||
float_t easeOutQuart(const float_t t) {
|
||||
return 1 - (t-1)*(t-1)*(t-1)*(t-1);
|
||||
}
|
||||
|
||||
float_t easeInOutQuart(const float_t t) {
|
||||
return t < .5 ? 8*t*t*t*t : 1-8*(t-1)*(t-1)*(t-1)*(t-1);
|
||||
}
|
||||
|
||||
float_t easeInQuint(const float_t t) {
|
||||
return t*t*t*t*t;
|
||||
}
|
||||
|
||||
float_t easeOutQuint(const float_t t) {
|
||||
return 1 + (t-1)*(t-1)*(t-1)*(t-1)*(t-1);
|
||||
}
|
||||
|
||||
float_t easeInOutQuint(const float_t t) {
|
||||
return t<.5 ? 16*t*t*t*t*t : 1+16*(t-1)*(t-1)*(t-1)*(t-1)*(t-1);
|
||||
}
|
Reference in New Issue
Block a user