using UnityEngine.Scripting.APIUpdating;
namespace UnityEngine.XR.Interaction.Toolkit.Gaze
{
///
/// An interface that allows for computing an altered projectile velocity to allow for assisted aiming.
/// This can be used to allow a user to throw a grab interactable to where they are looking.
///
[MovedFrom("UnityEngine.XR.Interaction.Toolkit")]
public interface IXRAimAssist
{
///
/// Takes a projectile's velocity and adjusts it to more closely hit a given target.
///
/// The starting position of the projectile.
/// The starting velocity of the projectile.
/// How much gravity the projectile is experiencing.
/// Returns a velocity based on the source, but adjusted to hit a given target.
Vector3 GetAssistedVelocity(in Vector3 source, in Vector3 velocity, float gravity);
///
/// Takes a projectile's velocity and adjusts it to more closely hit a given target.
///
/// The starting position of the projectile.
/// The starting velocity of the projectile.
/// How much gravity the projectile is experiencing.
/// If the angle between the initial velocity and adjusted velocity is greater than this value, no adjustment will occur.
/// Returns a velocity based on the source, but adjusted to hit a given target.
Vector3 GetAssistedVelocity(in Vector3 source, in Vector3 velocity, float gravity, float maxAngle);
}
}