浏览代码

self modifying variables made clang unhappy. retooled circular ease methods
basis: http://gizma.com/easing/#circ1

Azaezel 9 年之前
父节点
当前提交
d50762cbef
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      Engine/source/math/mEase.h

+ 6 - 4
Engine/source/math/mEase.h

@@ -289,13 +289,15 @@ inline F32 mEaseInOutExpo(F32 t, F32 b, F32 c, F32 d)
 // t: current time, b: beginning value, c: change in position, d: duration
 inline F32 mEaseInCirc (F32 t, F32 b, F32 c, F32 d) 
 {
-	return -c * (mSqrt(1 - (t/=d)*t) - 1) + b;
+    t/=d;
+	return -c * (mSqrt(1 - (t)*t) - 1) + b;
 };
 
 // circular easing out - decelerating to zero velocity
 inline F32 mEaseOutCirc (F32 t, F32 b, F32 c, F32 d) 
 {
-	return c * mSqrt(1 - (t=t/d-1)*t) + b;
+    t/=d;
+	return c * mSqrt(1 - (t-1)*t) + b;
 };
 
 // circular easing in/out - acceleration until halfway, then deceleration
@@ -303,8 +305,8 @@ inline F32 mEaseInOutCirc(F32 t, F32 b, F32 c, F32 d)
 {
 	if ((t/=d/2) < 1) 
       return -c/2 * (mSqrt(1 - t*t) - 1) + b;
-
-	return c/2 * (mSqrt(1 - (t-=2)*t) + 1) + b;
+    t-=2;
+	return c/2 * (mSqrt(1 - (t)*t) + 1) + b;
 };