37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
|
namespace Encompass
|
||
|
{
|
||
|
internal struct TimeDilationData
|
||
|
{
|
||
|
public double elapsedTime;
|
||
|
public double easeInTime;
|
||
|
public System.Func<double, double, double, double, double> easeInFunction;
|
||
|
public double activeTime;
|
||
|
public double easeOutTime;
|
||
|
public System.Func<double, double, double, double, double> easeOutFunction;
|
||
|
public double factor;
|
||
|
|
||
|
public double Factor
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
double calculatedFactor = 1;
|
||
|
|
||
|
if (elapsedTime < easeInTime)
|
||
|
{
|
||
|
calculatedFactor = easeInFunction(elapsedTime, 1, factor - 1, easeInTime);
|
||
|
}
|
||
|
else if (elapsedTime < easeInTime + activeTime)
|
||
|
{
|
||
|
calculatedFactor = factor;
|
||
|
}
|
||
|
else if (elapsedTime < easeInTime + activeTime + easeOutTime)
|
||
|
{
|
||
|
var elapsedOutTime = elapsedTime - easeInTime - activeTime;
|
||
|
calculatedFactor = easeOutFunction(elapsedOutTime, factor, 1 - factor, easeOutTime);
|
||
|
}
|
||
|
|
||
|
return calculatedFactor;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|