/******************************************/
/* */
/* Copyright (c) 2018 monitor1394 */
/* https://github.com/monitor1394 */
/* */
/******************************************/
using System.Collections.Generic;
using UnityEngine;
namespace XCharts
{
public partial class RadarChart
{
///
/// 雷达坐标系组件列表。
///
public List radars { get { return m_Radars; } }
///
/// 移除所有数据,包含雷达坐标系指示器数据。
///
public override void RemoveData()
{
base.RemoveData();
foreach (var radar in m_Radars)
{
radar.indicatorList.Clear();
}
m_CheckRadars.Clear();
}
///
/// 移除所有雷达坐标系组件。
///
public void RemoveRadar()
{
m_Radars.Clear();
}
///
/// 添加雷达坐标系组件。
///
public void AddRadar(Radar radar)
{
m_Radars.Add(radar);
}
///
/// 添加雷达坐标系组件。
///
/// 形状,圆形还是多边形
/// 中心点,0-1浮点数时表示百分比
/// 半径,0-1浮点数时表示百分比
/// 指示器轴的分割段数
/// 线条宽
/// 是否显示指示器名称
/// 是否显示分割区域
///
public Radar AddRadar(Radar.Shape shape, Vector2 center, float radius, int splitNumber = 5,
float lineWidth = 0.6f, bool showIndicator = true, bool showSplitArea = true)
{
var radar = new Radar();
radar.shape = shape;
radar.splitNumber = splitNumber;
radar.radius = radius;
radar.indicator = showIndicator;
radar.center[0] = center.x;
radar.center[1] = center.y;
radar.splitArea.show = showSplitArea;
radar.lineStyle.width = lineWidth;
m_Radars.Add(radar);
return radar;
}
///
/// 添加指示器。
///
/// 雷达坐标系组件索引,从0开始
/// 指示器名称
/// 指示器最小值
/// 指示器最大值
///
public Radar.Indicator AddIndicator(int radarIndex, string name, float min, float max)
{
var radar = GetRadar(radarIndex);
if (radar == null) return null;
return radar.AddIndicator(name, min, max);
}
///
/// 更新指示器。
///
/// 雷达坐标系组件的索引,从0开始
/// 指示器索引,从0开始
/// 指示器名称
/// 指示器最小值
/// 指示器最大值
///
public bool UpdateIndicator(int radarIndex, int indicatorIndex, string name, float min, float max)
{
var radar = GetRadar(radarIndex);
if (radar == null) return false;
return radar.UpdateIndicator(indicatorIndex, name, min, max);
}
///
/// 获得指定索引的雷达坐标系组件。
///
///
///
public Radar GetRadar(int radarIndex)
{
if (radarIndex < 0 || radarIndex > m_Radars.Count - 1) return null;
return m_Radars[radarIndex];
}
///
/// 获得指定雷达坐标系组件指定索引的指示器。
///
///
///
///
public Radar.Indicator GetIndicator(int radarIndex, int indicatorIndex)
{
var radar = GetRadar(radarIndex);
if (radar != null) return radar.GetIndicator(indicatorIndex);
else return null;
}
}
}