namespace TVMediaHub.Tizen.Utils
{
+ /// <summary>
+ /// This class define custom easing function
+ /// </summary>
public class EasingFunction
{
public EasingFunction()
{
}
-
+ /// <summary>
+ /// CUBIC BEZIER P1=(0.33, 0.1), P2=(0.67, 1.0)
+ /// </summary>
public static Func<double, double> EasyEase = (x) =>
{
- return CubicBezierCalc(CubicBezierTGet(x, 0.33, 0.1), 0.67, 1.0);
+ return CubicBezierCalc(CubicBezierTGet(x, 0.33, 0.67), 0.1, 1.0);
};
+ /// <summary>
+ /// CUBIC BEZIER P1=(0.16, 0.02), P2=(0.0, 0.33)
+ /// </summary>
public static Func<double, double> EasyIn1 = (x) =>
{
- return CubicBezierCalc(CubicBezierTGet(x, 0.16, 0.02), 0.0, 0.33);
+ return CubicBezierCalc(CubicBezierTGet(x, 0.16, 0.0), 0.02, 0.33);
};
+ /// <summary>
+ /// CUBIC BEZIER P1=(0.33, 0.33), P2=(0.67, 0.16)
+ /// </summary>
public static Func<double, double> EasyIn2 = (x) =>
{
- return CubicBezierCalc(CubicBezierTGet(x, 0.33, 0.33), 0.67, 0.16);
+ return CubicBezierCalc(CubicBezierTGet(x, 0.33, 0.67), 0.33, 0.16);
};
+ /// <summary>
+ /// CUBIC BEZIER P1=(00.15, 0.0), P2=(0.30, 1.0)
+ /// </summary>
public static Func<double, double> GlideOut = (x) =>
{
- return CubicBezierCalc(CubicBezierTGet(x, 0.15, 0.0), 0.30, 1.0);
+ return CubicBezierCalc(CubicBezierTGet(x, 0.15, 0.3), 0.0, 1.0);
};
+ /// <summary>
+ /// Calculate Cubic Bezier curves
+ /// </summary>
private static double CubicBezierTGet(double a, double x1, double x2)
{
int limit = 100;
return guessT;
}
-
+ /// <summary>
+ /// Calculate Cubic Bezier curves
+ /// </summary>
private static double CubicBezierSlopeGet(double t, double a1, double a2)
{
return 3.0 * CubicBezierA(a1, a2) * t * t + 2.0 * CubicBezierB(a1, a2) * t + CubicBezierC(a1);
}
-
+ /// <summary>
+ /// Calculate Cubic Bezier curves
+ /// </summary>
private static double CubicBezierCalc(double t, double a1, double a2)
{
return ((CubicBezierA(a1, a2) * t + CubicBezierB(a1, a2)) * t + CubicBezierC(a1)) * t;
}
+ /// <summary>
+ /// Calculate Cubic Bezier curves
+ /// </summary>
private static double CubicBezierA(double a1, double a2)
{
return 1.0 - 3.0 * a2 + 3.0 * a1;
}
+ /// <summary>
+ /// Calculate Cubic Bezier curves
+ /// </summary>
private static double CubicBezierB(double a1, double a2)
{
return 3.0 * a2 - 6.0 * a1;
}
+ /// <summary>
+ /// Calculate Cubic Bezier curves
+ /// </summary>
private static double CubicBezierC(double a1)
{
return 3.0 * a1;