25#ifndef TWEENY_DETAIL_EASING_QUINTIC_H
26#define TWEENY_DETAIL_EASING_QUINTIC_H
28namespace tweeny::detail {
29 struct quinticInEasing {
31 static T run(
const float position, T start, T end) {
32 return static_cast<T
>((end - start) * position * position * position * position * position + start);
36 T operator()(
const float position, T start, T end)
const {
37 return run<T>(position, start, end);
41 struct quinticOutEasing {
43 static T run(
float position, T start, T end) {
45 return static_cast<T
>((end - start) * (position * position * position * position * position + 1) + start);
49 T operator()(
const float position, T start, T end)
const {
50 return run<T>(position, start, end);
54 struct quinticInOutEasing {
56 static T run(
float position, T start, T end) {
59 return static_cast<T
>((end - start) / 2 * (position * position * position * position * position) + start);
62 return static_cast<T
>((end - start) / 2 * (position * position * position * position * position + 2) + start);
66 T operator()(
const float position, T start, T end)
const {
67 return run<T>(position, start, end);