namespace LitMotion
{
///
/// Implement this interface to define animating values of a particular type.
///
/// The type of value to animate
/// The type of special parameters given to the motion entity
public interface IMotionAdapter
where TValue : unmanaged
where TOptions : unmanaged, IMotionOptions
{
///
/// Define the process to interpolate the values between two points.
///
/// Start value
/// End value
/// Option value to specify
/// Animation context
/// Current value
TValue Evaluate(ref TValue startValue, ref TValue endValue, ref TOptions options, in MotionEvaluationContext context);
}
}