//CEasing - [2020-04-13 11:57:46]
#ifndef _CEASING_H_
#define _CEASING_H_

#include "common.h"
#include "XMATH.h"

/*
0014BAF4  CEasing::MoveInFromTop(TRect,float,float,float,EasingFunc)
0014BB2C  CEasing::Ease(float,float,float,EasingFunc)
0014BB3E  CEasing::MoveFromPoint(TRect,float,float,float,float,float,EasingFunc)
0014BB9C  CEasing::InterpolateRect(TRect,float,float,float,TRect,EasingFunc)
0014BC08  CEasing::InterpolateFloat(float,float,float,float,float,EasingFunc)
0014BC3C  CEasing::ExpandFromMiddle(TRect,float,float,float,EasingFunc)
0014BC94  CEasing::ExpandFromTop(TRect,float,float,float,EasingFunc)
0014BCBE  CEasing::ExpandFromLeft(TRect,float,float,float,EasingFunc)
0014BCEA  CEasing::ExpandFromRight(TRect,float,float,float,EasingFunc)
0014BD28  CEasing::ContractToMiddle(TRect,float,float,float,float,EasingFunc)
0014BD92  CEasing::GetProgressPercent(float,float,float)
0014BDB8  CEasing::Ease(float,EasingFunc)
0014BDE8  CEasing::QuadOut(float)
0014BE0A  CEasing::QuadIn(float)
0014BE20  CEasing::QuadInOut(float)
0014BE6E  CEasing::CubicOut(float)
0014BE94  CEasing::CubicIn(float)
0014BEAE  CEasing::CubicInOut(float)
0014BF00  CEasing::ElasticOut(float)
0014BF54  CEasing::CubicOut(float,float,float)
*/

struct EasingFunc {
	int fun_index;
};

class CEasing {
public:
  static void MoveInFromTop(TRect, float, float, float, EasingFunc);                // 0014BAF4
  static void Ease(float, float, float, EasingFunc);                                // 0014BB2C
  static void MoveFromPoint(TRect, float, float, float, float, float, EasingFunc);  // 0014BB3E
  static void InterpolateRect(TRect, float, float, float, TRect, EasingFunc);       // 0014BB9C
  static void InterpolateFloat(float, float, float, float, float, EasingFunc);      // 0014BC08
  static void ExpandFromMiddle(TRect, float, float, float, EasingFunc);             // 0014BC3C
  static void ExpandFromTop(TRect, float, float, float, EasingFunc);                // 0014BC94
  static void ExpandFromLeft(TRect, float, float, float, EasingFunc);               // 0014BCBE
  static void ExpandFromRight(TRect, float, float, float, EasingFunc);              // 0014BCEA
  static void ContractToMiddle(TRect, float, float, float, float, EasingFunc);      // 0014BD28
  static float GetProgressPercent(float, float, float);                             // 0014BD92
  static float Ease(float, EasingFunc);                                             // 0014BDB8
  static float QuadOut(float);                                                      // 0014BDE8
  static float QuadIn(float);                                                       // 0014BE0A
  static float QuadInOut(float);                                                    // 0014BE20
  static float CubicOut(float);                                                     // 0014BE6E
  static float CubicIn(float);                                                      // 0014BE94
  static float CubicInOut(float);                                                   // 0014BEAE
  static float ElasticOut(float);                                                   // 0014BF00
  static void CubicOut(float, float, float);                                        // 0014BF54
};

#endif  //_CEASING_H_