@staticmethod def easyIn(t: float)-> float: return t*t @staticmethod def easyOut(t: float)-> float: return -(t * (t - 2)) @staticmethod def easyInOut(t: float)-> float: if t < 0.5: return 2*t*t else: return (-2*t*t) + (4*t) - 1 class EasingBase: def easing(self, t: float, function='linear') -> float: if function == 'easyIn': return easyIn(t) elif function == 'easyOut': return easyOut(t) elif function == 'easyInOut': return easyInOut(t) else: return t def ease(self, start, end, t) -> float: return end * t + start * (1 - t)