using UnityEngine;

namespace KindRetargeting
{
    /// <summary>
    /// IK 타겟 위치를 시각적으로 표시하기 위한 Gizmo 클래스
    /// </summary>
    public class IKTargetGizmo : MonoBehaviour
    {
        [Header("Gizmo 설정")]
        public float gizmoSize = 0.05f;
        public Color gizmoColor = Color.yellow;

        private void OnDrawGizmos()
        {
            // 기존 매트릭스 저장
            Matrix4x4 originalMatrix = Gizmos.matrix;
            Color originalColor = Gizmos.color;

            // 현재 오브젝트의 위치와 회전 적용
            Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);

            // 기본 구체 그리기
            Gizmos.color = gizmoColor;
            Gizmos.DrawWireSphere(Vector3.zero, gizmoSize * 0.5f);

            float axisLength = gizmoSize * 1.5f;

            // X축 (Red)
            Gizmos.color = Color.red;
            Gizmos.DrawRay(Vector3.zero, Vector3.right * axisLength);

            // Y축 (Green)
            Gizmos.color = Color.green;
            Gizmos.DrawRay(Vector3.zero, Vector3.up * axisLength);

            // Z축 (Blue)
            Gizmos.color = Color.blue;
            Gizmos.DrawRay(Vector3.zero, Vector3.forward * axisLength);

            // 원래 상태로 복원
            Gizmos.matrix = originalMatrix;
            Gizmos.color = originalColor;
        }
    }
}
