using System;
using Unity.Jobs;
namespace UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Jobs
{
///
/// Interface representing a tween job's basic functions.
///
/// Struct type of tween output.
[Obsolete("The Affordance System namespace and all associated classes have been deprecated. The existing affordance system will be moved, replaced and updated with a new interaction feedback system in a future version of XRI.")]
public interface ITweenJob : IJob where T : struct
{
///
/// Typed job data used in tween job.
///
TweenJobData jobData { get; set; }
///
/// Function used to interpolate between a tween's start value and target value.
///
/// Tween start value.
/// Tween target value.
/// Value between 0-1 used to evaluate the output between the from and to values.
/// Returns the interpolation from to .
T Lerp(T from, T to, float t);
///
/// Function used to compare two values when evaluating a tween to determine if they're nearly equal in order
/// to short-circuit the tween.
///
/// First value in equality comparison.
/// Second value in equality comparison.
/// Returns if values are nearly equal.
bool IsNearlyEqual(T from, T to);
}
}