public override void setupGraphHierarchy() { base.setupGraphHierarchy(); CanvasRenderer pCanvasRenderer = NGraphUtils.AddCanvasRenderer(mMeshesContainer); Material pMat = new Material(AxisMaterial); pMat.SetColor("_TintColor", GridLinesColorMajor); pCanvasRenderer.Clear(); pCanvasRenderer.SetMaterial(pMat, null); NGraphUtils.DrawRect(new Rect(adjustPointX(-5) - (GridLinesThicknesMajor / 2f), adjustPointY(YRange.y), GridLinesThicknesMajor, adjustPointY(YRange.x) * 2), pCanvasRenderer); }
protected override void _drawAxes(Rect xAxis, Rect yAxis) { if (mAxisMeshRendererX == null) { NGraphUtils.AddMesh(mXAxesGo, out mAxisMeshRendererX, out mXAxisMesh); } if (mAxisMeshRendererY == null) { NGraphUtils.AddMesh(mYAxesGo, out mAxisMeshRendererY, out mYAxisMesh); } mAxisMeshRendererX.material = AxisMaterial; mAxisMeshRendererX.material.SetColor("_TintColor", AxisColor); mAxisMeshRendererY.material = AxisMaterial; mAxisMeshRendererY.material.SetColor("_TintColor", AxisColor); NGraphUtils.DrawRect(xAxis, mXAxisMesh); NGraphUtils.DrawRect(yAxis, mYAxisMesh); }
protected override void _drawAxisTick(Axis axis, int index, GameObject pTickGameObject) { Material pMat = new Material(AxisMaterial); pMat.SetColor("_TintColor", AxisColor); CanvasRenderer pCanvasRenderer = NGraphUtils.AddCanvasRenderer(pTickGameObject); pCanvasRenderer.SetMaterial(pMat, null); mXAxisTicks.Add(pCanvasRenderer); if (axis == Axis.X) { NGraphUtils.DrawRect(new Rect(-AxesThickness / 2, AxesThickness / 2 + 4, AxesThickness, -AxesThickness - 8), pCanvasRenderer); } else if (axis == Axis.Y) { NGraphUtils.DrawRect(new Rect((-AxesThickness / 2) - 4, AxesThickness / 2, AxesThickness + 8, -AxesThickness), pCanvasRenderer); } }
protected override void _drawMajorGridLine(Axis axis, int index, float r, GameObject pGridLineGameObject) { MeshRenderer pMeshRenderer; Mesh pMesh; NGraphUtils.AddMesh(pGridLineGameObject, out pMeshRenderer, out pMesh); mXAxisTicks.Add(pMeshRenderer); pMeshRenderer.material = AxisMaterial; pMeshRenderer.material.SetColor("_TintColor", GridLinesColorMajor); if (axis == Axis.X) { NGraphUtils.DrawRect(new Rect(adjustPointX(r) - (GridLinesThicknesMajor / 2f), adjustPointY(YRange.y), GridLinesThicknesMajor, adjustPointY(YRange.x) - adjustPointY(YRange.y)), pMesh); } else if (axis == Axis.Y) { NGraphUtils.DrawRect(new Rect(adjustPointX(XRange.x), adjustPointY(r) + (GridLinesThicknesMajor / 2f), adjustPointX(XRange.y) - adjustPointX(XRange.x), -GridLinesThicknesMajor), pMesh); } }
protected override void _drawMajorGridLine(Axis axis, int index, float r, GameObject pGridLineGameObject) { Material pMat = new Material(AxisMaterial); pMat.SetColor("_TintColor", GridLinesColorMajor); CanvasRenderer pCanvasRenderer = NGraphUtils.AddCanvasRenderer(pGridLineGameObject); pCanvasRenderer.Clear(); pCanvasRenderer.SetMaterial(pMat, null); mXAxisTicks.Add(pCanvasRenderer); if (axis == Axis.X) { NGraphUtils.DrawRect(new Rect(adjustPointX(r) - (GridLinesThicknesMajor / 2f), adjustPointY(YRange.y), GridLinesThicknesMajor, adjustPointY(YRange.x) - adjustPointY(YRange.y)), pCanvasRenderer); } else if (axis == Axis.Y) { NGraphUtils.DrawRect(new Rect(adjustPointX(XRange.x), adjustPointY(r) + (GridLinesThicknesMajor / 2f), adjustPointX(XRange.y) - adjustPointX(XRange.x), -GridLinesThicknesMajor), pCanvasRenderer); } }
protected override void _drawAxisTick(Axis axis, int index, GameObject pTickGameObject) { MeshRenderer pMeshRenderer; Mesh pMesh; NGraphUtils.AddMesh(pTickGameObject, out pMeshRenderer, out pMesh); mXAxisTicks.Add(pMeshRenderer); pMesh.Clear(); pMeshRenderer.material = AxisMaterial; pMeshRenderer.material.SetColor("_TintColor", AxisColor); if (axis == Axis.X) { NGraphUtils.DrawRect(new Rect(-AxesThickness / 2, AxesThickness / 2 + 4, AxesThickness, -AxesThickness - 8), pMesh); } else if (axis == Axis.Y) { NGraphUtils.DrawRect(new Rect(-AxesThickness / 2 - 4, -AxesThickness / 2, AxesThickness + 8, AxesThickness), pMesh); } }
protected override void _drawAxes(Rect xAxis, Rect yAxis) { if (mAxisCanvasRendererX == null) { mAxisCanvasRendererX = NGraphUtils.AddCanvasRenderer(mXAxesGo); } if (mAxisCanvasRendererY == null) { mAxisCanvasRendererY = NGraphUtils.AddCanvasRenderer(mYAxesGo); } Material pMat = new Material(AxisMaterial); mAxisCanvasRendererX.SetMaterial(pMat, null); pMat.SetColor("_TintColor", AxisColor); pMat = new Material(AxisMaterial); mAxisCanvasRendererY.SetMaterial(pMat, null); pMat.SetColor("_TintColor", AxisColor); NGraphUtils.DrawRect(xAxis, mAxisCanvasRendererX); NGraphUtils.DrawRect(yAxis, mAxisCanvasRendererY); }
public override void DrawSeries() { if (mGameObject == null || mData == null) { return; } base.DrawSeries(); clearMarkers(); int meshCount = mData.Count; if (mPlotStyle == Style.Line) { meshCount = 1; } clearMeshes(meshCount); clearCanvasRenderers(meshCount); List <Vector3> pVertices = new List <Vector3>(); List <Vector2> pUvs = new List <Vector2>(); List <int> pTriangles = new List <int>(); Mesh pMesh; CanvasRenderer pCanvasRenderer; if (!mGraph.UnityGui && mMeshes == null) { mMeshes = new List <KeyValuePair <GameObject, Mesh> >(); } else if (mGraph.UnityGui && mCanvasRenderers == null) { mCanvasRenderers = new List <KeyValuePair <GameObject, CanvasRenderer> >(); } Vector2 pZero = mGraph.adjustPoint(Vector2.zero); for (int i = 0; i < mData.Count; ++i) { Vector2 pDataPoint = mData[i]; pDataPoint = mGraph.adjustPoint(pDataPoint); if (MarkersStyle != MarkerStyle.None) { drawMarker(pDataPoint, i); } if (mPlotStyle == Style.Line && i == 0) { continue; } if (mPlotStyle == Style.Line) { Vector2 pPrevDataPoint = mData[i - 1]; NGraphUtils.addSegment(mGraph.adjustPoint(pPrevDataPoint), pDataPoint, PlotThickness, pVertices, pUvs, pTriangles, mGraph.UnityGui); } else if (mPlotStyle == Style.Bar) { if (mGraph.UnityGui) { if (i >= mCanvasRenderers.Count) { GameObject pChildBarGo = NGraphUtils.AddGameObject(mGameObject, 0, "Bar - " + i); pCanvasRenderer = NGraphUtils.AddCanvasRenderer(pChildBarGo); mCanvasRenderers.Add(new KeyValuePair <GameObject, CanvasRenderer>(pChildBarGo, pCanvasRenderer)); } else { pCanvasRenderer = mCanvasRenderers[i].Value; } Material pMat = new Material(PlotMaterial); pMat.SetColor("_TintColor", PlotColor); pMat.SetVector("_Clipping", new Vector4(mClipping.x, mClipping.y, mClipping.z, mClipping.w)); pCanvasRenderer.SetMaterial(pMat, null); float h = pDataPoint.y - pZero.y; float top = pZero.y; NGraphUtils.DrawRect(new Rect(-mPlotThickness / 2 + pDataPoint.x, top, mPlotThickness, h), pCanvasRenderer); } else { if (i >= mMeshes.Count) { GameObject pChildBarGo = NGraphUtils.AddGameObject(mGameObject, 0, "Bar - " + i); NGraphUtils.AddMesh(pChildBarGo, out mMeshRenderer, out pMesh); mMeshes.Add(new KeyValuePair <GameObject, Mesh>(pChildBarGo, pMesh)); mMeshRenderer.material = new Material(PlotMaterial); mMeshRenderer.material.SetColor("_TintColor", PlotColor); mMeshRenderer.material.SetVector("_Clipping", new Vector4(mClipping.x, mClipping.y, mClipping.z, mClipping.w)); } else { pMesh = mMeshes[i].Value; } pMesh.Clear(); NGraphUtils.DrawRect(new Rect(-mPlotThickness / 2 + pDataPoint.x, pZero.y, mPlotThickness, pDataPoint.y - pZero.y), pMesh); } } } if (mPlotStyle == Style.Line) { if (mGraph.UnityGui) { if (mCanvasRenderers.Count == 0) { GameObject pChildBarGo = NGraphUtils.AddGameObject(mGameObject, 0, "Line"); pCanvasRenderer = NGraphUtils.AddCanvasRenderer(pChildBarGo); mCanvasRenderers.Add(new KeyValuePair <GameObject, CanvasRenderer>(pChildBarGo, pCanvasRenderer)); } else { pCanvasRenderer = mCanvasRenderers[0].Value; } Vector3[] e = new Vector3[4]; mGraph.GetComponent <RectTransform>().GetWorldCorners(e); Material pMat = new Material(PlotMaterial); pMat.SetColor("_TintColor", PlotColor); pMat.SetVector("_Clipping", new Vector4(mClipping.x, mClipping.y, mClipping.z, mClipping.w)); pCanvasRenderer.SetMaterial(pMat, null); List <UIVertex> vertices = new List <UIVertex>(pVertices.Count); for (int i = 0; i < pVertices.Count; i++) { UIVertex pVertex = new UIVertex(); pVertex.position = pVertices[i]; pVertex.uv0 = pUvs[i]; vertices.Add(pVertex); } pCanvasRenderer.SetVertices(vertices); } else { if (mMeshes.Count == 0) { GameObject pChildBarGo = NGraphUtils.AddGameObject(mGameObject, 0, "Line"); NGraphUtils.AddMesh(pChildBarGo, out mMeshRenderer, out pMesh); mMeshes.Add(new KeyValuePair <GameObject, Mesh>(pChildBarGo, pMesh)); mMeshRenderer.material = new Material(PlotMaterial); mMeshRenderer.material.SetColor("_TintColor", PlotColor); mMeshRenderer.material.SetVector("_Clipping", new Vector4(mClipping.x, mClipping.y, mClipping.z, mClipping.w)); } else { pMesh = mMeshes[0].Value; } pMesh.Clear(); pMesh.vertices = pVertices.ToArray(); pMesh.uv = pUvs.ToArray(); pMesh.triangles = pTriangles.ToArray(); } } // Draw data labels if available foreach (dataLabelStruct labelInfo in mDataLabels) { drawDataLabel(labelInfo); } }