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