public static Color32 GetLineColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight) { Color32 color = ChartConst.clearColor32; var lineStyle = GetLineStyle(serie, serieData); if (highlight) { var itemStyleEmphasis = GetItemStyleEmphasis(serie, null); if (itemStyleEmphasis != null && !ChartHelper.IsClearColor(itemStyleEmphasis.color)) { color = itemStyleEmphasis.color; ChartHelper.SetColorOpacity(ref color, itemStyleEmphasis.opacity); return(color); } } if (!ChartHelper.IsClearColor(lineStyle.color)) { color = lineStyle.color; } else if (!ChartHelper.IsClearColor(serie.itemStyle.color)) { color = serie.itemStyle.GetColor(); } if (ChartHelper.IsClearColor(color)) { color = theme.GetColor(index); } ChartHelper.SetColorOpacity(ref color, lineStyle.opacity); if (highlight) { color = ChartHelper.GetHighlightColor(color); } return(color); }
public static Color32 GetAreaToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight) { Color32 color = ChartConst.clearColor32; var areaStyle = GetAreaStyle(serie, serieData); if (areaStyle == null || !areaStyle.show) { return(color); } if (!ChartHelper.IsClearColor(areaStyle.toColor)) { color = areaStyle.toColor; } else if (!ChartHelper.IsClearColor(serie.itemStyle.toColor)) { color = serie.itemStyle.toColor; } else { color = theme.GetColor(index); } ChartHelper.SetColorOpacity(ref color, areaStyle.opacity); if (highlight) { if (!ChartHelper.IsClearColor(areaStyle.highlightToColor)) { color = areaStyle.highlightToColor; } else { color = ChartHelper.GetHighlightColor(color); } } return(color); }
public static Color32 GetItemColor0(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, Color32 defaultColor) { if (serie == null) { return(ChartConst.clearColor32); } ItemStyle itemStyle = null; if (highlight) { itemStyle = GetItemStyleEmphasis(serie, serieData); } if (itemStyle == null) { itemStyle = GetItemStyle(serie, serieData); } var color = ChartHelper.IsClearColor(itemStyle.color0) ? defaultColor : itemStyle.color0; if (highlight) { color = ChartHelper.GetHighlightColor(color); } ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); return(color); }
public static Color32 GetItemColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true) { if (serie == null) { return(ChartConst.clearColor32); } ItemStyle itemStyle = null; if (highlight) { itemStyle = GetItemStyleEmphasis(serie, serieData); } if (itemStyle == null) { itemStyle = GetItemStyle(serie, serieData); } var color = ChartHelper.IsClearColor(itemStyle.color) ? theme.GetColor(index) : itemStyle.color; if (highlight) { color = ChartHelper.GetHighlightColor(color); } if (opacity) { ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); } return(color); }
public static Color32 GetItemBackgroundColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool useDefault = true) { var color = ChartConst.clearColor32; if (highlight) { var itemStyleEmphasis = GetItemStyleEmphasis(serie, serieData); if (itemStyleEmphasis != null && !ChartHelper.IsClearColor(itemStyleEmphasis.backgroundColor)) { color = itemStyleEmphasis.backgroundColor; ChartHelper.SetColorOpacity(ref color, itemStyleEmphasis.opacity); return(color); } } var itemStyle = GetItemStyle(serie, serieData); if (!ChartHelper.IsClearColor(itemStyle.backgroundColor)) { color = itemStyle.backgroundColor; if (highlight) { color = ChartHelper.GetHighlightColor(color); } ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); return(color); } else if (useDefault) { color = theme.GetColor(index); if (highlight) { color = ChartHelper.GetHighlightColor(color); } color.a = 50; return(color); } return(color); }
private void DrawHeatmapSerie(VertexHelper vh, Heatmap serie) { if (serie.animation.HasFadeOut()) { return; } XAxis xAxis; YAxis yAxis; if (!chart.TryGetChartComponent <XAxis>(out xAxis, serie.xAxisIndex)) { return; } if (!chart.TryGetChartComponent <YAxis>(out yAxis, serie.yAxisIndex)) { return; } m_SerieGrid = chart.GetChartComponent <GridCoord>(xAxis.gridIndex); xAxis.boundaryGap = true; yAxis.boundaryGap = true; var visualMap = chart.GetVisualMapOfSerie(serie); var emphasisItemStyle = serie.emphasisItemStyle; var xCount = xAxis.data.Count; var yCount = yAxis.data.Count; var xWidth = m_SerieGrid.context.width / xCount; var yWidth = m_SerieGrid.context.height / yCount; var zeroX = m_SerieGrid.context.x; var zeroY = m_SerieGrid.context.y; var rangeMin = visualMap.rangeMin; var rangeMax = visualMap.rangeMax; var color = chart.theme.GetColor(serie.index); var borderWidth = serie.itemStyle.show ? serie.itemStyle.borderWidth : 0; var rectWid = xWidth - 2 * borderWidth; var rectHig = yWidth - 2 * borderWidth; var borderColor = serie.itemStyle.opacity > 0 ? serie.itemStyle.borderColor : ChartConst.clearColor32; borderColor.a = (byte)(borderColor.a * serie.itemStyle.opacity); var borderToColor = serie.itemStyle.opacity > 0 ? serie.itemStyle.borderToColor : ChartConst.clearColor32; borderToColor.a = (byte)(borderToColor.a * serie.itemStyle.opacity); serie.context.dataPoints.Clear(); serie.animation.InitProgress(0, xCount); var animationIndex = serie.animation.GetCurrIndex(); var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); var dataChanging = false; serie.containerIndex = m_SerieGrid.index; serie.containterInstanceId = m_SerieGrid.instanceId; for (int n = 0; n < serie.dataCount; n++) { var serieData = serie.data[n]; serieData.index = n; var i = (int)serieData.GetData(0); var j = (int)serieData.GetData(1); var dimension = VisualMapHelper.GetDimension(visualMap, serieData.data.Count); if (serie.IsIgnoreValue(serieData, dimension)) { serie.context.dataPoints.Add(Vector3.zero); continue; } var value = serieData.GetCurrData(dimension, dataChangeDuration, yAxis.inverse, yAxis.context.minValue, yAxis.context.maxValue); if (serieData.IsDataChanged()) { dataChanging = true; } var pos = new Vector3(zeroX + (i + (xAxis.boundaryGap ? 0.5f : 0)) * xWidth, zeroY + (j + (yAxis.boundaryGap ? 0.5f : 0)) * yWidth); serie.context.dataPoints.Add(pos); serieData.context.position = pos; serieData.context.canShowLabel = false; serieData.context.rect = new Rect(pos.x - rectWid / 2, pos.y - rectHig / 2, rectWid, rectHig); if (value == 0) { continue; } if ((value < rangeMin && rangeMin != visualMap.min) || (value > rangeMax && rangeMax != visualMap.max)) { continue; } if (!visualMap.IsInSelectedValue(value)) { continue; } if (animationIndex >= 0 && i > animationIndex) { continue; } color = visualMap.GetColor(value); if (serieData.context.highlight) { color = ChartHelper.GetHighlightColor(color); } serieData.context.canShowLabel = true; serieData.context.color = color; var highlight = (serieData.context.highlight) || visualMap.context.pointerIndex > 0; //UGL.DrawRectangle(vh, pos, rectWid / 2, rectHig / 2, color); UGL.DrawRectangle(vh, serieData.context.rect, color); if (borderWidth > 0 && !ChartHelper.IsClearColor(borderColor)) { UGL.DrawBorder(vh, pos, rectWid, rectHig, borderWidth, borderColor, borderToColor); } if (visualMap.hoverLink && highlight && emphasisItemStyle != null && emphasisItemStyle.borderWidth > 0) { var emphasisBorderWidth = emphasisItemStyle.borderWidth; var emphasisBorderColor = emphasisItemStyle.opacity > 0 ? emphasisItemStyle.borderColor : ChartConst.clearColor32; var emphasisBorderToColor = emphasisItemStyle.opacity > 0 ? emphasisItemStyle.borderToColor : ChartConst.clearColor32; UGL.DrawBorder(vh, pos, rectWid, rectHig, emphasisBorderWidth, emphasisBorderColor, emphasisBorderToColor); } } if (!serie.animation.IsFinish()) { serie.animation.CheckProgress(xCount); chart.RefreshPainter(serie); } if (dataChanging) { chart.RefreshPainter(serie); } }