using UnityEngine;
namespace XCharts.Runtime
{
    [System.Serializable]
    [SerieConvert(typeof(Line), typeof(Bar))]
    [SerieHandler(typeof(PieHandler), true)]
    [DefaultAnimation(AnimationType.Clockwise)]
    [SerieComponent(typeof(LabelStyle), typeof(LabelLine), typeof(TitleStyle), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))]
    [SerieDataComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(LabelLine), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))]
    [SerieDataExtraField("m_Ignore", "m_Selected", "m_Radius")]
    public class Pie : Serie
    {
        [SerializeField][Since("v3.8.1")] private bool m_RadiusGradient = false;
        public override SerieColorBy defaultColorBy { get { return SerieColorBy.Data; } }
        public override bool titleJustForSerie { get { return true; } }
        /// 
        /// Whether to use gradient color in pie chart.
        /// || 是否开启半径方向的渐变效果。
        /// 
        public bool radiusGradient
        {
            get { return m_RadiusGradient; }
            set { if (PropertyUtil.SetStruct(ref m_RadiusGradient, value)) { SetVerticesDirty(); } }
        }
        public static Serie AddDefaultSerie(BaseChart chart, string serieName)
        {
            var serie = chart.AddSerie(serieName);
            chart.AddData(serie.index, Random.Range(10, 100), "pie1");
            chart.AddData(serie.index, Random.Range(10, 100), "pie2");
            chart.AddData(serie.index, Random.Range(10, 100), "pie3");
            return serie;
        }
        public static Pie ConvertSerie(Serie serie)
        {
            var newSerie = SerieHelper.CloneSerie(serie);
            return newSerie;
        }
    }
}