mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-18 14:30:10 +00:00
3.0 - unitypackage
This commit is contained in:
131
Runtime/Internal/BaseChart.Draw.cs
Normal file
131
Runtime/Internal/BaseChart.Draw.cs
Normal file
@@ -0,0 +1,131 @@
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XUGL;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
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, 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, 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)
|
||||
{
|
||||
ClampInChart(ref p1);
|
||||
ClampInChart(ref p2);
|
||||
UGL.DrawZebraLine(vh, p1, p2, size, zebraWidth, zebraGap, color, toColor);
|
||||
}
|
||||
|
||||
public void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize,
|
||||
float tickness, Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, float gap, float[] cornerRadius)
|
||||
{
|
||||
DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, emptyColor, gap, cornerRadius, Vector3.zero);
|
||||
}
|
||||
|
||||
public void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize,
|
||||
float tickness, Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, float gap, float[] cornerRadius, Vector3 startPos)
|
||||
{
|
||||
var backgroundColor = theme.GetBackgroundColor(GetChartComponent<Background>());
|
||||
if (ChartHelper.IsClearColor(emptyColor))
|
||||
emptyColor = backgroundColor;
|
||||
var smoothness = settings.cicleSmoothness;
|
||||
ChartDrawer.DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, gap,
|
||||
cornerRadius, emptyColor, backgroundColor, 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user