using System;
|
|
namespace HotelPms.Share.Windows.Animations
|
{
|
enum AnimationType
|
{
|
Linear,
|
EaseInOut,
|
EaseOut,
|
CustomQuadratic
|
}
|
|
static class AnimationLinear
|
{
|
public static double CalculateProgress(double progress)
|
{
|
return progress;
|
}
|
}
|
|
static class AnimationEaseInOut
|
{
|
public static double PI = Math.PI;
|
public static double PI_HALF = Math.PI / 2;
|
|
public static double CalculateProgress(double progress)
|
{
|
return EaseInOut(progress);
|
}
|
|
private static double EaseInOut(double s)
|
{
|
return s - Math.Sin(s * 2 * PI) / (2 * PI);
|
}
|
}
|
|
public static class AnimationEaseOut
|
{
|
public static double CalculateProgress(double progress)
|
{
|
return -1 * progress * (progress - 2);
|
}
|
}
|
|
public static class AnimationCustomQuadratic
|
{
|
public static double CalculateProgress(double progress)
|
{
|
var kickoff = 0.6;
|
return 1 - Math.Cos((Math.Max(progress, kickoff) - kickoff) * Math.PI / (2 - (2 * kickoff)));
|
}
|
}
|
}
|