using Unity.Mathematics;
using UnityEngine;

namespace UVC.Util
{
    /// <summary>
    /// 수학 관련 유틸리티 메소드를 제공하는 클래스입니다.
    /// </summary>
    public static class MathUtil
    {
        /// <summary>
        /// 중심점(`center`)을 기준으로 반지름(`radius`) 거리에서 각도(`angle`)에 해당하는 위치를 계산합니다.
        /// </summary>
        /// <param name="center">회전의 중심점</param>
        /// <param name="radius">회전 반지름</param>
        /// <param name="angle">회전 각도 (0~360도)</param>
        /// <returns>계산된 위치를 나타내는 `Vector3`</returns>
        /// <example>
        /// 다음은 `GetCircleLocationXY` 메소드를 사용하는 예제입니다:
        /// <code>
        /// Vector3 center = new Vector3(0, 0, 0);
        /// float radius = 5f;
        /// float angle = 90f;
        /// Vector3 position = MathUtil.GetCircleLocationXY(center, radius, angle);
        /// Debug.Log(position); // 출력: (0.0, 5.0, 0.0)
        /// </code>
        /// </example>
        public static Vector3 GetCircleLocationXY(Vector3 center, float radius, float angle)
        {
            Vector3 pos = new Vector3(math.cos(angle * Mathf.Deg2Rad) * radius, math.sin(angle * Mathf.Deg2Rad) * radius, 0);
            return pos + center;
        }
    }
}
