/// <summary> /// Drawing code /// </summary> /// <param name="r"></param> public void Draw(Renderer r) { if (pointList.Count == 0) { UpdatePointList(); } if ((gestureName == "CIRCLE") || (gestureName == "SQUARE") || (gestureName == "TRIANGLE")) { //DrawToolOld.ResetRefPoints(); ctrPtWorld = r.ScreenToWorld(pointList.ElementAt(0)); GLUtility.DrawCircle(new GLPen(Color.Blue, 0.2f), ctrPtWorld, 0.3f); } else if (gestureName == "X") { //DrawToolOld.ResetRefPoints(); ctrPtWorld = r.ScreenToWorld(pointList.ElementAt(0)); GLUtility.DrawCross(new GLPen(Color.Red, 0.2f), new Vector2(ctrPtWorld.X, ctrPtWorld.Y), 0.5f); } else if ((gestureName == "ARROW") || (gestureName == "PATH") || (gestureName == "SENTENCE")) { //DrawToolOld.ResetRefPoints(); pthStartWorld = r.ScreenToWorld(pointList.ElementAt(0)); pthEndWorld = r.ScreenToWorld(pointList.ElementAt(1)); GLUtility.DrawCircle(new GLPen(Color.Blue, 0.2f), pthStartWorld, 0.3f); GLUtility.DrawCross(new GLPen(Color.Red, 0.2f), new Vector2(pthEndWorld.X, pthEndWorld.Y), 0.5f); } else { //DrawToolOld.ResetRefPoints(); } if ((gestureName == "PATH") || (gestureName == "SENTENCE")) { //DrawToolOld.ResetRefPoints(); ln1StartWorld = r.ScreenToWorld(pointList.ElementAt(2)); ln1EndWorld = r.ScreenToWorld(pointList.ElementAt(3)); ln2StartWorld = r.ScreenToWorld(pointList.ElementAt(4)); ln2EndWorld = r.ScreenToWorld(pointList.ElementAt(5)); ln3StartWorld = r.ScreenToWorld(pointList.ElementAt(6)); ln3EndWorld = r.ScreenToWorld(pointList.ElementAt(7)); GLUtility.DrawLine(new GLPen(Color.Black, 1.0f), ln1StartWorld, ln1EndWorld); GLUtility.DrawLine(new GLPen(Color.Black, 1.0f), ln2StartWorld, ln2EndWorld); GLUtility.DrawLine(new GLPen(Color.Black, 1.0f), ln3StartWorld, ln3EndWorld); } // draw pixels if (pixelList.Count > 0) { foreach (PointF v3 in drawPixelList) { drawPixel.X = ((float)v3.X - (w / 2)); drawPixel.Y = ((float)v3.Y - (h / 2)); drawPixel2.X = ((float)v3.X - (w / 4)); drawPixel2.Y = ((float)v3.Y - (h / 4)); float scale = r.Scale(); pixelRect = new RectangleF((float)drawPixel.X, (float)drawPixel.Y, w, h); RectangleF pixelRect2 = new RectangleF((float)drawPixel2.X, (float)drawPixel2.Y, w / 2, h / 2); GLUtility.DrawRectangle(new GLPen(Color.Black, 0.1f), pixelRect); GLUtility.DrawRectangle(new GLPen(Color.Black, 0.1f), pixelRect2); } } }