From 80f283270d2a7f1dafd595c1a9926eba5e377f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 10 Sep 2017 20:58:20 -0700 Subject: [PATCH] Added getEaseFunc to return easing function from enum. --- include/bx/easing.h | 3 +++ src/easing.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/easing.cpp diff --git a/include/bx/easing.h b/include/bx/easing.h index e0d7ce5..b39fd16 100644 --- a/include/bx/easing.h +++ b/include/bx/easing.h @@ -68,6 +68,9 @@ namespace bx /// typedef float (*EaseFn)(float _t); + /// + EaseFn getEaseFunc(Easing::Enum _enum); + /// float easeLinear(float _t); diff --git a/src/easing.cpp b/src/easing.cpp new file mode 100644 index 0000000..1f82fce --- /dev/null +++ b/src/easing.cpp @@ -0,0 +1,61 @@ +/* + * Copyright 2010-2017 Branimir Karadzic. All rights reserved. + * License: https://github.com/bkaradzic/bx#license-bsd-2-clause + */ + +#include + +namespace bx +{ + static const EaseFn s_easeFunc[] = + { + easeLinear, + easeInQuad, + easeOutQuad, + easeInOutQuad, + easeOutInQuad, + easeInCubic, + easeOutCubic, + easeInOutCubic, + easeOutInCubic, + easeInQuart, + easeOutQuart, + easeInOutQuart, + easeOutInQuart, + easeInQuint, + easeOutQuint, + easeInOutQuint, + easeOutInQuint, + easeInSine, + easeOutSine, + easeInOutSine, + easeOutInSine, + easeInExpo, + easeOutExpo, + easeInOutExpo, + easeOutInExpo, + easeInCirc, + easeOutCirc, + easeInOutCirc, + easeOutInCirc, + easeInElastic, + easeOutElastic, + easeInOutElastic, + easeOutInElastic, + easeInBack, + easeOutBack, + easeInOutBack, + easeOutInBack, + easeInBounce, + easeOutBounce, + easeInOutBounce, + easeOutInBounce, + }; + BX_STATIC_ASSERT(BX_COUNTOF(s_easeFunc) == Easing::Count); + + EaseFn getEaseFunc(Easing::Enum _enum) + { + return s_easeFunc[_enum]; + } + +} // namespace bx