// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Graphics.Transforms; namespace osu.Framework.Utils { /// /// An interface that defines the interpolation of a value. /// /// The type of value to be interpolated.. public interface IInterpolable { /// /// Interpolates between two s. /// /// /// This method MUST NOT modify the current object. /// /// The current time. /// The at = . /// The at = . /// The start time. /// The end time. /// The easing function to use. /// The interpolated value. TValue ValueAt(double time, TValue startValue, TValue endValue, double startTime, double endTime, in TEasing easing) where TEasing : IEasingFunction; } }