增加Covert XY Axis互换XY轴配置

This commit is contained in:
monitor1394
2020-04-18 12:31:21 +08:00
parent d5fbce2e36
commit bc332ebebb
13 changed files with 254 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
# 更新日志
* (2020.04.18) 增加`Covert XY Axis`互换XY轴配置
* (2020.04.17) 增加`Axis`可通过`inverse`参数设置坐标轴反转
* (2020.04.16) 修复`Check warning``Unity2019.3`上的显示问题
* (2020.04.16) 修复`PieChart`在设置`Space`参数后动画绘制异常的问题

View File

@@ -91,13 +91,12 @@ namespace XCharts
protected virtual void OnEndInspectorGUI()
{
EditorGUILayout.Space();
EditorGUILayout.Space();
}
private void CheckWarning()
{
EditorGUILayout.Space();
EditorGUILayout.Space();
if (m_CheckWarning)
{
EditorGUILayout.BeginHorizontal();

View File

@@ -6,6 +6,7 @@
/******************************************/
using UnityEditor;
using UnityEngine;
namespace XCharts
{
@@ -52,5 +53,19 @@ namespace XCharts
EditorGUILayout.PropertyField(axis);
}
}
protected override void OnEndInspectorGUI()
{
base.OnEndInspectorGUI();
CovertXYAxis();
}
private void CovertXYAxis()
{
if (GUILayout.Button("Covert XY Axis"))
{
(m_Target as CoordinateChart).CovertXYAxis(0);
}
}
}
}

View File

@@ -212,6 +212,20 @@ namespace XCharts
return np;
}
}
/// <summary>
/// 转换X轴和Y轴的配置
/// </summary>
/// <param name="index">坐标轴索引0或1</param>
public void CovertXYAxis(int index)
{
if (index >= 0 && index <= 1)
{
var tempX = m_XAxises[index].Clone();
m_XAxises[index].Copy(m_YAxises[index]);
m_YAxises[index].Copy(tempX);
}
}
}
}

View File

@@ -358,6 +358,55 @@ namespace XCharts
private bool m_RuntimeMinValueFirstChanged = true;
private bool m_RuntimeMaxValueFirstChanged = true;
public Axis Clone()
{
var axis = new Axis();
axis.show = show;
axis.type = type;
axis.minMaxType = minMaxType;
axis.min = min;
axis.max = max;
axis.splitNumber = splitNumber;
axis.interval = interval;
axis.boundaryGap = boundaryGap;
axis.maxCache = maxCache;
axis.logBase = logBase;
axis.logBaseE = logBaseE;
axis.ceilRate = ceilRate;
axis.axisLine = axisLine.Clone();
axis.axisName = axisName.Clone();
axis.axisTick = axisTick.Clone();
axis.axisLabel = axisLabel.Clone();
axis.splitLine = splitLine.Clone();
axis.splitArea = splitArea.Clone();
axis.data = new List<string>();
ChartHelper.CopyList(axis.data, data);
return axis;
}
public void Copy(Axis axis)
{
show = axis.show;
type = axis.type;
minMaxType = axis.minMaxType;
min = axis.min;
max = axis.max;
splitNumber = axis.splitNumber;
interval = axis.interval;
boundaryGap = axis.boundaryGap;
maxCache = axis.maxCache;
logBase = axis.logBase;
logBaseE = axis.logBaseE;
ceilRate = axis.ceilRate;
axisLine.Copy(axis.axisLine);
axisName.Copy(axis.axisName);
axisTick.Copy(axis.axisTick);
axisLabel.Copy(axis.axisLabel);
splitLine.Copy(axis.splitLine);
splitArea.Copy(axis.splitArea);
ChartHelper.CopyList(data, axis.data);
}
/// <summary>
/// 清空类目数据
/// </summary>

View File

@@ -153,6 +153,36 @@ namespace XCharts
}
}
public AxisLabel Clone()
{
var axisLable = new AxisLabel();
axisLable.show = show;
axisLable.formatter = formatter;
axisLable.interval = interval;
axisLable.inside = inside;
axisLable.rotate = rotate;
axisLable.margin = margin;
axisLable.color = color;
axisLable.fontSize = fontSize;
axisLable.forceENotation = forceENotation;
axisLable.textLimit = textLimit.Clone();
return axisLable;
}
public void Copy(AxisLabel axisLable)
{
show = axisLable.show;
formatter = axisLable.formatter;
interval = axisLable.interval;
inside = axisLable.inside;
rotate = axisLable.rotate;
margin = axisLable.margin;
color = axisLable.color;
fontSize = axisLable.fontSize;
forceENotation = axisLable.forceENotation;
textLimit.Copy(axisLable.textLimit);
}
public void SetRelatedText(Text txt, float labelWidth)
{
m_TextLimit.SetRelatedText(txt, labelWidth);

View File

@@ -41,7 +41,7 @@ namespace XCharts
public bool onZero
{
get { return m_OnZero; }
set { if (PropertyUtility.SetStruct(ref m_Show, value)) SetVerticesDirty(); }
set { if (PropertyUtility.SetStruct(ref m_OnZero, value)) SetVerticesDirty(); }
}
/// <summary>
/// line style line width.
@@ -116,5 +116,31 @@ namespace XCharts
return axisLine;
}
}
public AxisLine Clone()
{
var axisLine = new AxisLine();
axisLine.show = show;
axisLine.onZero = onZero;
axisLine.width = width;
axisLine.symbol = symbol;
axisLine.symbolWidth = symbolWidth;
axisLine.symbolHeight = symbolHeight;
axisLine.symbolOffset = symbolOffset;
axisLine.symbolDent = symbolDent;
return axisLine;
}
public void Copy(AxisLine axisLine)
{
show = axisLine.show;
onZero = axisLine.onZero;
width = axisLine.width;
symbol = axisLine.symbol;
symbolWidth = axisLine.symbolWidth;
symbolHeight = axisLine.symbolHeight;
symbolOffset = axisLine.symbolOffset;
symbolDent = axisLine.symbolDent;
}
}
}

View File

@@ -125,5 +125,31 @@ namespace XCharts
};
}
}
public AxisName Clone()
{
var axisName = new AxisName();
axisName.show = show;
axisName.name = name;
axisName.location = location;
axisName.offset = offset;
axisName.rotate = rotate;
axisName.color = color;
axisName.fontSize = fontSize;
axisName.fontStyle = fontStyle;
return axisName;
}
public void Copy(AxisName axisName)
{
show = axisName.show;
name = axisName.name;
location = axisName.location;
offset = axisName.offset;
rotate = axisName.rotate;
color = axisName.color;
fontSize = axisName.fontSize;
fontStyle = axisName.fontStyle;
}
}
}

View File

@@ -57,6 +57,22 @@ namespace XCharts
}
}
public AxisSplitArea Clone()
{
var axisSplitArea = new AxisSplitArea();
axisSplitArea.show = show;
axisSplitArea.color = new List<Color>();
ChartHelper.CopyList(axisSplitArea.color, color);
return axisSplitArea;
}
public void Copy(AxisSplitArea splitArea)
{
show = splitArea.show;
color.Clear();
ChartHelper.CopyList(color, splitArea.color);
}
public Color getColor(int index)
{
var i = index % color.Count;

View File

@@ -61,6 +61,22 @@ namespace XCharts
}
}
public AxisSplitLine Clone()
{
var axisSplitLine = new AxisSplitLine();
axisSplitLine.show = show;
axisSplitLine.interval = interval;
axisSplitLine.lineStyle = lineStyle.Clone();
return axisSplitLine;
}
public void Copy(AxisSplitLine splitLine)
{
show = splitLine.show;
interval = splitLine.interval;
lineStyle.Copy(splitLine.lineStyle);
}
internal Color GetColor(ThemeInfo theme)
{
if (lineStyle.color != Color.clear)

View File

@@ -84,5 +84,25 @@ namespace XCharts
return tick;
}
}
public AxisTick Clone()
{
var axisTick = new AxisTick();
axisTick.show = show;
axisTick.alignWithLabel = alignWithLabel;
axisTick.inside = inside;
axisTick.length = length;
axisTick.width = width;
return axisTick;
}
public void Copy(AxisTick axisTick)
{
show = axisTick.show;
alignWithLabel = axisTick.alignWithLabel;
inside = axisTick.inside;
length = axisTick.length;
width = axisTick.width;
}
}
}

View File

@@ -98,7 +98,6 @@ namespace XCharts
public LineStyle()
{
}
public LineStyle(float width)
@@ -112,6 +111,26 @@ namespace XCharts
this.width = width;
}
public LineStyle Clone()
{
var lineStyle = new LineStyle();
lineStyle.show = show;
lineStyle.type = type;
lineStyle.color = color;
lineStyle.width = width;
lineStyle.opacity = opacity;
return lineStyle;
}
public void Copy(LineStyle lineStyle)
{
show = lineStyle.show;
type = lineStyle.type;
color = lineStyle.color;
width = lineStyle.width;
opacity = lineStyle.opacity;
}
public Color GetColor()
{
var color = m_Color;

View File

@@ -60,6 +60,24 @@ namespace XCharts
private TextGenerationSettings m_RelatedTextSettings;
private float m_RelatedTextWidth = 0;
public TextLimit Clone()
{
var textLimit = new TextLimit();
textLimit.enable = enable;
textLimit.maxWidth = maxWidth;
textLimit.gap = gap;
textLimit.suffix = suffix;
return textLimit;
}
public void Copy(TextLimit textLimit)
{
enable = textLimit.enable;
maxWidth = textLimit.maxWidth;
gap = textLimit.gap;
suffix = textLimit.suffix;
}
public void SetRelatedText(Text txt, float labelWidth)
{
m_RelatedText = txt;