Browse Source

Added getEaseFunc to return easing function from enum.

Branimir Karadžić 8 years ago
parent
commit
80f283270d
2 changed files with 64 additions and 0 deletions
  1. 3 0
      include/bx/easing.h
  2. 61 0
      src/easing.cpp

+ 3 - 0
include/bx/easing.h

@@ -68,6 +68,9 @@ namespace bx
 	///
 	///
 	typedef float (*EaseFn)(float _t);
 	typedef float (*EaseFn)(float _t);
 
 
+	///
+	EaseFn getEaseFunc(Easing::Enum _enum);
+
 	///
 	///
 	float easeLinear(float _t);
 	float easeLinear(float _t);
 
 

+ 61 - 0
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 <bx/easing.h>
+
+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