From ec3d012f089a828783295ff0a64bb0e727835041 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Thu, 6 Feb 2025 21:23:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84`SerieSymbol`=E7=9A=84`sizeFu?= =?UTF-8?q?nction`=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Runtime/Component/Child/SerieSymbl.cs | 10 ++++------ Runtime/Internal/Misc/DelegateFunction.cs | 4 +--- Runtime/Serie/Bar/BarHandler.PolarCoord.cs | 2 +- Runtime/Serie/Heatmap/HeatmapHandler.PolarCoord.cs | 2 +- Runtime/Serie/Line/LineHandler.PolarCoord.cs | 2 +- Runtime/Serie/Line/SimplifiedLineHandler.cs | 2 +- Runtime/Serie/Radar/RadarHandler.cs | 2 +- Runtime/Serie/SerieHelper.cs | 4 ++-- 9 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 3e3ad024..2b4119c1 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -79,6 +79,7 @@ slug: /changelog ## master +* (2025.02.05) 重构`SerieSymbol`的`sizeFunction`参数 * (2025.01.23) 修复`Treemap`的`Label`不显示的问题 * (2025.01.15) 修复`Chart`在运行时动态添加`Component`异常的问题 (#339) * (2025.01.08) 修复`TextMeshPro`关闭时残留组件影响`Text`初始化的问题 diff --git a/Runtime/Component/Child/SerieSymbl.cs b/Runtime/Component/Child/SerieSymbl.cs index 20e76d20..f4fdb332 100644 --- a/Runtime/Component/Child/SerieSymbl.cs +++ b/Runtime/Component/Child/SerieSymbl.cs @@ -152,18 +152,16 @@ namespace XCharts.Runtime /// /// 根据指定的sizeType获得标记的大小 /// - /// - /// - public float GetSize(List data, float themeSize) + public float GetSize(SerieData serieData, float themeSize) { switch (m_SizeType) { case SymbolSizeType.Custom: return size == 0 ? themeSize : size; case SymbolSizeType.FromData: - if (data != null && dataIndex >= 0 && dataIndex < data.Count) + if (serieData != null && dataIndex >= 0 && dataIndex < serieData.data.Count) { - var value = (float) data[dataIndex] * m_DataScale; + var value = (float) serieData.data[dataIndex] * m_DataScale; if (m_MinSize != 0 && value < m_MinSize) value = m_MinSize; if (m_MaxSize != 0 && value > m_MaxSize) value = m_MaxSize; return value; @@ -173,7 +171,7 @@ namespace XCharts.Runtime return size == 0 ? themeSize : size; } case SymbolSizeType.Function: - if (data != null && sizeFunction != null) return sizeFunction(data); + if (sizeFunction != null) return sizeFunction(themeSize, serieData); else return size == 0 ? themeSize : size; default: return size == 0 ? themeSize : size; diff --git a/Runtime/Internal/Misc/DelegateFunction.cs b/Runtime/Internal/Misc/DelegateFunction.cs index e60bc2da..0ec6fd59 100644 --- a/Runtime/Internal/Misc/DelegateFunction.cs +++ b/Runtime/Internal/Misc/DelegateFunction.cs @@ -18,9 +18,7 @@ namespace XCharts.Runtime /// /// 获取标记大小的回调。 /// - /// - /// - public delegate float SymbolSizeFunction(List data); + public delegate float SymbolSizeFunction(float defaultSize, SerieData serieData); public delegate void CustomDrawGaugePointerFunction(VertexHelper vh, int serieIndex, int dataIndex, float currentAngle); /// /// DataZoom的start和end变更时的委托方法。 diff --git a/Runtime/Serie/Bar/BarHandler.PolarCoord.cs b/Runtime/Serie/Bar/BarHandler.PolarCoord.cs index 5cb75bc1..8a2ecfdb 100644 --- a/Runtime/Serie/Bar/BarHandler.PolarCoord.cs +++ b/Runtime/Serie/Bar/BarHandler.PolarCoord.cs @@ -31,7 +31,7 @@ namespace XCharts.Runtime foreach (var serieData in serie.data) { var symbol = SerieHelper.GetSerieSymbol(serie, serieData); - var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize); serieData.context.highlight = false; serieData.interact.SetValue(ref needAnimation1, symbolSize); } diff --git a/Runtime/Serie/Heatmap/HeatmapHandler.PolarCoord.cs b/Runtime/Serie/Heatmap/HeatmapHandler.PolarCoord.cs index 649267ea..bb2b608d 100644 --- a/Runtime/Serie/Heatmap/HeatmapHandler.PolarCoord.cs +++ b/Runtime/Serie/Heatmap/HeatmapHandler.PolarCoord.cs @@ -31,7 +31,7 @@ namespace XCharts.Runtime foreach (var serieData in serie.data) { var symbol = SerieHelper.GetSerieSymbol(serie, serieData); - var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize); serieData.context.highlight = false; serieData.interact.SetValue(ref needAnimation1, symbolSize); } diff --git a/Runtime/Serie/Line/LineHandler.PolarCoord.cs b/Runtime/Serie/Line/LineHandler.PolarCoord.cs index 5a014c06..74689e7c 100644 --- a/Runtime/Serie/Line/LineHandler.PolarCoord.cs +++ b/Runtime/Serie/Line/LineHandler.PolarCoord.cs @@ -31,7 +31,7 @@ namespace XCharts.Runtime foreach (var serieData in serie.data) { var symbol = SerieHelper.GetSerieSymbol(serie, serieData); - var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize); serieData.context.highlight = false; serieData.interact.SetValue(ref needAnimation1, symbolSize); } diff --git a/Runtime/Serie/Line/SimplifiedLineHandler.cs b/Runtime/Serie/Line/SimplifiedLineHandler.cs index aedd02a6..42f522b8 100644 --- a/Runtime/Serie/Line/SimplifiedLineHandler.cs +++ b/Runtime/Serie/Line/SimplifiedLineHandler.cs @@ -50,7 +50,7 @@ namespace XCharts.Runtime foreach (var serieData in serie.data) { var symbol = SerieHelper.GetSerieSymbol(serie, serieData); - var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize); serieData.context.highlight = false; serieData.interact.SetValue(ref needAnimation1, symbolSize); } diff --git a/Runtime/Serie/Radar/RadarHandler.cs b/Runtime/Serie/Radar/RadarHandler.cs index 9d97512b..034ada5f 100644 --- a/Runtime/Serie/Radar/RadarHandler.cs +++ b/Runtime/Serie/Radar/RadarHandler.cs @@ -123,7 +123,7 @@ namespace XCharts.Runtime { var serieData = serie.data[i]; var symbol = SerieHelper.GetSerieSymbol(serie, serieData); - var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize); if (m_LegendEnter) { serieData.context.highlight = true; diff --git a/Runtime/Serie/SerieHelper.cs b/Runtime/Serie/SerieHelper.cs index e64438a2..2ceb1137 100644 --- a/Runtime/Serie/SerieHelper.cs +++ b/Runtime/Serie/SerieHelper.cs @@ -705,7 +705,7 @@ namespace XCharts.Runtime if (stateStyle == null) { var symbol = GetSerieSymbol(serie, serieData, SerieState.Normal); - size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize); + size = symbol.GetSize(serieData, defaultSize); switch (state) { case SerieState.Emphasis: @@ -719,7 +719,7 @@ namespace XCharts.Runtime else { var symbol = stateStyle.symbol; - size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize); + size = symbol.GetSize(serieData, defaultSize); } if (serieData != null && checkAnimation) {