using UnityEngine;

namespace Shooter
{
    /// <summary>Набор статических функций-помощников для векторной математики.</summary>
    public class Helper : MonoBehaviour
    {
        public static Vector2 ToVector2(Vector3 v) => new Vector2(v.x, v.y);

        public static Vector3 ToVector3(Vector2 v) => new Vector3(v.x, v.y, 0);

        /// <summary>Расстояние между точками без учёта оси Z.</summary>
        public static float HorizentalDistance(Vector3 v1, Vector3 v2)
        {
            v1.z = 0;
            v2.z = 0;
            return Vector3.Distance(v1, v2);
        }

        /// <summary>Вектор длины lenght, повёрнутый на angle вокруг оси Y.</summary>
        public static Vector3 RotatedLenght(float angle, float lenght) => Quaternion.Euler(0, angle, 0) * (lenght * Vector3.forward);

        /// <summary>Вектор vector, повёрнутый на angle вокруг оси Y.</summary>
        public static Vector3 RotatedVector(float angle, Vector3 vector) => Quaternion.Euler(0, angle, 0) * vector;
    }
}
