protected override void _drawAxisBackground(List <UIVertex> pVertexList) { Material pMat = new Material(AxisMaterial); pMat.SetColor("_TintColor", MarginBackgroundColor); CanvasRenderer pCanvasRenderer = NGraphUtils.AddCanvasRenderer(mAxesBackgroundGo); pCanvasRenderer.Clear(); pCanvasRenderer.SetMaterial(pMat, null); pCanvasRenderer.SetVertices(pVertexList); }
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 _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) { 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 _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); }
protected void drawMarker(Vector2 pDataPoint, int dataPointIndex) { Mesh pMesh = null; GameObject pMarkerGo = NGraphUtils.AddGameObject(mGameObject, NGraph.LEVEL_STEP, "Marker - " + dataPointIndex); CanvasRenderer pCanvasRenderer = null; if (mGraph.UnityGui) { pCanvasRenderer = NGraphUtils.AddCanvasRenderer(pMarkerGo); Material pMat = new Material(PlotMaterial); pMat.SetColor("_TintColor", mMarkerColor); pMat.SetVector("_Clipping", new Vector4(mClipping.x, mClipping.y, mClipping.z, mClipping.w)); pCanvasRenderer.SetMaterial(pMat, null); } else { NGraphUtils.AddMesh(pMarkerGo, out mMeshRenderer, out pMesh); mMeshRenderer.material = PlotMaterial; mMeshRenderer.material.SetColor("_TintColor", mMarkerColor); mMeshRenderer.material.SetVector("_Clipping", new Vector4(mClipping.x, mClipping.y, mClipping.z, mClipping.w)); } mMarkerGos.Add(pMarkerGo); List <Vector3> pVertices = new List <Vector3>(); List <Vector2> pUvs = new List <Vector2>(); List <int> pTriangles = new List <int>(); switch (MarkersStyle) { case MarkerStyle.Box: { /* * c d * * * b a */ pVertices.Add(new Vector3(mMarkerWeight / 2 + pDataPoint.x, -mMarkerWeight / 2 + pDataPoint.y, 0)); pVertices.Add(new Vector3(-mMarkerWeight / 2 + pDataPoint.x, -mMarkerWeight / 2 + pDataPoint.y, 0)); pVertices.Add(new Vector3(-mMarkerWeight / 2 + pDataPoint.x, mMarkerWeight / 2 + pDataPoint.y, 0)); pVertices.Add(new Vector3(mMarkerWeight / 2 + pDataPoint.x, mMarkerWeight / 2 + pDataPoint.y, 0)); pUvs.Add(new Vector2(0, 0)); pUvs.Add(new Vector2(1, 0)); pUvs.Add(new Vector2(0, 1)); pUvs.Add(new Vector2(1, 1)); pTriangles.Add(0); pTriangles.Add(1); pTriangles.Add(2); pTriangles.Add(2); pTriangles.Add(3); pTriangles.Add(0); break; } case MarkerStyle.Triangle: { /* * c * * * a b */ pVertices.Add(new Vector3(pDataPoint.x, pDataPoint.y + mMarkerWeight / 2, 0)); pVertices.Add(new Vector3(mMarkerWeight / 2 + pDataPoint.x, -mMarkerWeight / 2 + pDataPoint.y, 0)); pVertices.Add(new Vector3(-mMarkerWeight / 2 + pDataPoint.x, -mMarkerWeight / 2 + pDataPoint.y, 0)); pUvs.Add(new Vector2(0, 0)); pUvs.Add(new Vector2(1, 0)); pUvs.Add(new Vector2(0.5f, 1)); if (mGraph.UnityGui) { pVertices.Add(new Vector3(-mMarkerWeight / 2 + pDataPoint.x, -mMarkerWeight / 2 + pDataPoint.y, 0)); pUvs.Add(new Vector2(0.5f, 1)); } pTriangles.Add(0); pTriangles.Add(1); pTriangles.Add(2); break; } } if (mGraph.UnityGui) { 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 { pMesh.vertices = pVertices.ToArray(); pMesh.uv = pUvs.ToArray(); pMesh.triangles = pTriangles.ToArray(); } }
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); } }
protected override void newDataSeriesGameObject(GameObject pGameObject) { pGameObject.AddComponent <RectTransform>(); NGraphUtils.AddCanvasRenderer(pGameObject); }
protected override void addedAxesLabelContainer() { mAxesLabelContainerGo.AddComponent <RectTransform>(); NGraphUtils.AddCanvasRenderer(mAxesLabelContainerGo); }
protected override void _addedYAxisGameObject(GameObject pAxisGameObject) { pAxisGameObject.AddComponent <RectTransform>(); NGraphUtils.AddCanvasRenderer(pAxisGameObject); }
protected override void _addedGridContainer(GameObject pGridContainer) { NGraphUtils.AddCanvasRenderer(pGridContainer); }
protected override void newDataSeriesGameObject(GameObject pGameObject) { NGraphUtils.AddCanvasRenderer(pGameObject); }
protected override void addedAxesLabelContainer() { NGraphUtils.AddCanvasRenderer(mAxesLabelContainerGo); }
protected override void _addedYAxisGameObject(GameObject pAxisGameObject) { NGraphUtils.AddCanvasRenderer(pAxisGameObject); }