Exemple #1
0
 public void RefreshLabel()
 {
     for (int i = 0; i < chart.series.Count; i++)
     {
         var serie = chart.series.GetSerie(i);
         if (serie.type != SerieType.Radar)
         {
             continue;
         }
         if (!serie.show && serie.radarType != RadarType.Single)
         {
             continue;
         }
         var radar = chart.GetRadar(serie.radarIndex);
         if (radar == null)
         {
             continue;
         }
         var center = radar.runtimeCenterPos;
         for (int n = 0; n < serie.dataCount; n++)
         {
             var serieData = serie.data[n];
             if (serieData.labelObject == null)
             {
                 continue;
             }
             var serieLabel = SerieHelper.GetSerieLabel(serie, serieData);
             var iconStyle  = SerieHelper.GetIconStyle(serie, serieData);
             var labelPos   = serieData.labelPosition;
             if (serieLabel.margin != 0)
             {
                 labelPos += serieLabel.margin * (labelPos - center).normalized;
             }
             serieData.labelObject.SetPosition(labelPos);
             serieData.labelObject.UpdateIcon(iconStyle);
             if (serie.show && serieLabel.show && serieData.canShowLabel)
             {
                 var value = serieData.GetCurrData(1);
                 var max   = radar.GetIndicatorMax(n);
                 SerieLabelHelper.ResetLabel(serieData.labelObject.label, serieLabel, chart.theme, i);
                 serieData.SetLabelActive(serieData.labelPosition != Vector3.zero);
                 serieData.labelObject.SetLabelPosition(serieLabel.offset);
                 var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, max,
                                                                    serieLabel, Color.clear);
                 if (serieData.labelObject.SetText(content))
                 {
                     chart.RefreshPainter(serie);
                 }
             }
             else
             {
                 serieData.SetLabelActive(false);
             }
         }
     }
 }