1 #include <stdint.h>
2 
3 #include "sgp/Debug.h"
4 
EaseInCubic(uint32_t uiStartTime,uint32_t uiEndTime,uint32_t uiCurrentTime)5 float EaseInCubic(uint32_t uiStartTime, uint32_t uiEndTime, uint32_t uiCurrentTime) {
6 	Assert(uiEndTime >= uiStartTime);
7 	Assert(uiCurrentTime <= uiEndTime);
8 
9 	float fProgress = (float)(uiCurrentTime - uiStartTime) / (float)(uiEndTime - uiStartTime);
10 
11 	if (fProgress < 0.5) {
12 		return 4.0f * fProgress * fProgress * fProgress;
13 	} else {
14 		return (fProgress - 1.0f) * (2.0f * fProgress - 2.0f) * (2.0f * fProgress - 2.0f) + 1.0f;
15 	}
16 }
17