增加AnimationInteraction交互动画配置支持

This commit is contained in:
monitor1394
2023-07-14 08:14:00 +08:00
parent ccd71710ce
commit 58d6d52747
20 changed files with 156 additions and 66 deletions

View File

@@ -61,7 +61,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.widthRate);
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -73,7 +73,7 @@ namespace XCharts.Runtime
else if (serie.context.isTriggerByAxis)
{
serie.context.pointerEnter = false;
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.widthRate);
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -116,7 +116,7 @@ namespace XCharts.Runtime
needInteract = true;
}
if (serie.context.pointerItemDataIndex >= 0)
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.widthRate);
else
serie.interact.SetValue(ref needInteract, lineWidth);
}
@@ -144,6 +144,7 @@ namespace XCharts.Runtime
var lineArrow = serie.lineArrow;
var visualMap = chart.GetVisualMapOfSerie(serie);
var isVisualMapGradient = VisualMapHelper.IsNeedLineGradient(visualMap);
var interactDuration = serie.animation.GetInteractionDuration();
Axis axis;
Axis relativedAxis;
@@ -176,7 +177,7 @@ namespace XCharts.Runtime
continue;
var symbolSize = 0f;
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting))
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration))
{
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, chart.theme.serie.lineSymbolSize, state);
serieData.interact.SetValue(ref interacting, symbolSize);

View File

@@ -53,7 +53,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.widthRate);
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];

View File

@@ -410,7 +410,7 @@ namespace XCharts.Runtime
public static float GetLineWidth(ref bool interacting, Serie serie, float defaultWidth)
{
var lineWidth = 0f;
if (!serie.interact.TryGetValue(ref lineWidth, ref interacting))
if (!serie.interact.TryGetValue(ref lineWidth, ref interacting, serie.animation.GetInteractionDuration()))
{
lineWidth = serie.lineStyle.GetWidth(defaultWidth);
serie.interact.SetValue(ref interacting, lineWidth);

View File

@@ -66,14 +66,13 @@ namespace XCharts.Runtime
}
m_LastCheckContextFlag = needCheck;
var themeSymbolSize = chart.theme.serie.lineSymbolSize;
var themeSymbolSelectedSize = chart.theme.serie.lineSymbolSelectedSize;
lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth);
var needInteract = false;
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.widthRate);
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -85,7 +84,7 @@ namespace XCharts.Runtime
else if (serie.context.isTriggerByAxis)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.widthRate);
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];