namespace Encompass { internal struct TimeDilationData { public double elapsedTime; public double easeInTime; public System.Func easeInFunction; public double activeTime; public double easeOutTime; public System.Func easeOutFunction; public double factor; public double Factor { get { if (elapsedTime < easeInTime) { return easeInFunction(elapsedTime, 1, factor - 1, easeInTime); } else if (elapsedTime < easeInTime + activeTime) { return factor; } else if (elapsedTime < easeInTime + activeTime + easeOutTime) { var elapsedOutTime = elapsedTime - easeInTime - activeTime; return easeOutFunction(elapsedOutTime, factor, 1 - factor, easeOutTime); } return 1; } } } }