| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | using UnityEngine;using UnityEngine.UI;using XUGL;namespace XCharts.Runtime{    public partial class BaseChart    {        public void DrawClipPolygon(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4,            Color32 color, bool clip, GridCoord grid)        {            DrawClipPolygon(vh, p1, p2, p3, p4, color, color, clip, grid);        }        public void DrawClipPolygon(VertexHelper vh, Vector3 p, float radius, Color32 color,            bool clip, bool vertical, GridCoord grid)        {            if (!IsInChart(p)) return;            if (!clip || (clip && (grid.Contains(p))))                UGL.DrawSquare(vh, p, radius, color);        }        public void DrawClipPolygon(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4,            Color32 startColor, Color32 toColor, bool clip, GridCoord grid)        {            ClampInChart(ref p1);            ClampInChart(ref p2);            ClampInChart(ref p3);            ClampInChart(ref p4);            if (clip)            {                p1 = ClampInGrid(grid, p1);                p2 = ClampInGrid(grid, p2);                p3 = ClampInGrid(grid, p3);                p4 = ClampInGrid(grid, p4);            }            if (!clip || (clip && (grid.Contains(p1) && grid.Contains(p2) && grid.Contains(p3) &&                    grid.Contains(p4))))                UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, startColor, toColor);        }        public void DrawClipPolygon(VertexHelper vh, ref Vector3 p1, ref Vector3 p2, ref Vector3 p3, ref Vector3 p4,            Color32 startColor, Color32 toColor, bool clip, GridCoord grid)        {            ClampInChart(ref p1);            ClampInChart(ref p2);            ClampInChart(ref p3);            ClampInChart(ref p4);            if (clip)            {                p1 = ClampInGrid(grid, p1);                p2 = ClampInGrid(grid, p2);                p3 = ClampInGrid(grid, p3);                p4 = ClampInGrid(grid, p4);            }            if (!clip ||                (clip && (grid.Contains(p1) && grid.Contains(p2) && grid.Contains(p3) &&                    grid.Contains(p4))))                UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, startColor, toColor);        }        public void DrawClipTriangle(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Color32 color,            bool clip, GridCoord grid)        {            DrawClipTriangle(vh, p1, p2, p3, color, color, color, clip, grid);        }        public void DrawClipTriangle(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Color32 color,            Color32 color2, Color32 color3, bool clip, GridCoord grid)        {            if (!IsInChart(p1) || !IsInChart(p2) || !IsInChart(p3)) return;            if (!clip || (clip && (grid.Contains(p1) || grid.Contains(p2) || grid.Contains(p3))))                UGL.DrawTriangle(vh, p1, p2, p3, color, color2, color3);        }        public void DrawClipLine(VertexHelper vh, Vector3 p1, Vector3 p2, float size, Color32 color,            bool clip, GridCoord grid)        {            if (!IsInChart(p1) || !IsInChart(p2)) return;            if (!clip || (clip && (grid.Contains(p1) || grid.Contains(p2))))                UGL.DrawLine(vh, p1, p2, size, color);        }        public void DrawClipSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness,            Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, Color32 borderColor, float gap,            bool clip, float[] cornerRadius, GridCoord grid, Vector3 startPos)        {            if (!IsInChart(pos)) return;            if (!clip || (clip && (grid.Contains(pos))))                DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, emptyColor, borderColor,                    gap, cornerRadius, startPos);        }        public void DrawClipZebraLine(VertexHelper vh, Vector3 p1, Vector3 p2, float size, float zebraWidth,            float zebraGap, Color32 color, Color32 toColor, bool clip, GridCoord grid, float maxDistance)        {            ClampInChart(ref p1);            ClampInChart(ref p2);            UGL.DrawZebraLine(vh, p1, p2, size, zebraWidth, zebraGap, color, toColor, maxDistance);        }        public void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness,            Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, Color32 borderColor,            float gap, float[] cornerRadius)        {            DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, emptyColor, borderColor,                gap, cornerRadius, Vector3.zero);        }        public void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness,            Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, Color32 borderColor,            float gap, float[] cornerRadius, Vector3 startPos)        {            var backgroundColor = GetChartBackgroundColor();            if (ChartHelper.IsClearColor(emptyColor))                emptyColor = backgroundColor;            var smoothness = settings.cicleSmoothness;            ChartDrawer.DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, gap,                cornerRadius, emptyColor, backgroundColor, borderColor, smoothness, startPos);        }        public Color32 GetXLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid)        {            if (ChartHelper.IsValueEqualsColor(areaColor, areaToColor)) return areaColor;            return Color32.Lerp(areaToColor, areaColor, (pos.y - grid.context.y) / grid.context.height);        }        public Color32 GetYLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid)        {            if (ChartHelper.IsValueEqualsColor(areaColor, areaToColor)) return areaColor;            return Color32.Lerp(areaToColor, areaColor, (pos.x - grid.context.x) / grid.context.width);        }    }}
 |