using GTweens.Easings;
namespace GTweens.Interpolators
{
///
/// Represents an interpolator for working with transitions between two values of type .
///
/// The type of values to interpolate.
public interface IInterpolator
{
///
/// Evaluates the intermediate value between the initial and final values based on the specified time and easing function.
///
/// The initial value.
/// The final value.
/// The interpolation time (usually between 0 and 1).
/// The easing function to apply during interpolation.
/// The interpolated value between and .
T Evaluate(T initialValue, T finalValue, float time, EasingDelegate easingFunction);
///
/// Subtracts two values of type .
///
/// The initial value.
/// The final value.
/// The result of subtracting from .
T Subtract(T initialValue, T finalValue);
///
/// Adds two values of type .
///
/// The initial value.
/// The final value.
/// The result of adding to .
T Add(T initialValue, T finalValue);
}
}