Extra2D/Extra2D/include/extra2d/action/ease.h

68 lines
1.3 KiB
C++

#pragma once
namespace extra2d {
// Easing function type
using EaseFunction = float (*)(float);
// Linear (no easing)
float easeLinear(float t);
// Quadratic
float easeInQuad(float t);
float easeOutQuad(float t);
float easeInOutQuad(float t);
// Cubic
float easeInCubic(float t);
float easeOutCubic(float t);
float easeInOutCubic(float t);
// Quartic
float easeInQuart(float t);
float easeOutQuart(float t);
float easeInOutQuart(float t);
// Quintic
float easeInQuint(float t);
float easeOutQuint(float t);
float easeInOutQuint(float t);
// Sine
float easeInSine(float t);
float easeOutSine(float t);
float easeInOutSine(float t);
// Exponential
float easeInExpo(float t);
float easeOutExpo(float t);
float easeInOutExpo(float t);
// Circular
float easeInCirc(float t);
float easeOutCirc(float t);
float easeInOutCirc(float t);
// Back
float easeInBack(float t);
float easeOutBack(float t);
float easeInOutBack(float t);
// Elastic
float easeInElastic(float t);
float easeOutElastic(float t);
float easeInOutElastic(float t);
// Bounce
float easeInBounce(float t);
float easeOutBounce(float t);
float easeInOutBounce(float t);
// Ease Action wrapper
class Action;
class EaseAction {
public:
static Action *create(Action *action, EaseFunction easeFunc);
};
} // namespace extra2d