//private readonly Action _graphicObjectSelected; //private readonly Action _verticleSelected; //private readonly Func<int, bool> _lineSelected; //private readonly Action _nullSelected; //private readonly Action _circleSelected; private void DrawCircle() { var circle = new Circle(Clicks.Last(), Radius, Drawing, GuidMapLogic, Width); GraphicObjects.Add(circle.Guid, circle); circle.DrawItself(); circle.DrawOnGuidMap(); //GuidMapLogic.SetOnMap(circle); Clicks.Clear(); }
private void AddVerticle() { var line = (SelectedObject as Line); Point newVerticlePoint = Clicks.Last(); var newLine = (line.ParentGraphicObject as Poligon).InsertLine(line, newVerticlePoint); GraphicObjects.Add(newLine.Guid, newLine); GraphicObjects.Add(newLine.StartVerticle.Guid, newLine.StartVerticle); Redraw(); }
private void DrawLine() { if (Clicks.Count == 2) { var line = new Line(Clicks[0], Clicks[1], Width, Drawing, GuidMapLogic); line.DrawItself(); GraphicObjects.Add(line.Guid, line); GraphicObjects.Add(line.StartVerticle.Guid, line.StartVerticle); GraphicObjects.Add(line.EndVerticle.Guid, line.EndVerticle); line.DrawOnGuidMap(); Clicks.Clear(); } }
private void StartDrawingPolygon() { if (Clicks.Count == 1) { Poligon poligon = new Poligon(Drawing, GuidMapLogic); CurrentPolygon = poligon; GraphicObjects.Add(poligon.Guid, poligon); return; } var line = new Line(Clicks[Clicks.Count - 2], Clicks.Last(), Width, Drawing, GuidMapLogic, CurrentPolygon); CurrentPolygon.AddLine(line); line.DrawItself(); }
private void SetConcrentic() { Guid mapGuid = GuidMapLogic.GuidMap[Clicks.Last().X + Clicks.Last().Y *Drawing.Width]; GraphicObject graphicObject = null; //Guid mapGuiFirstCircle = GuidMapLogic.GuidMap[Clicks.First().X + Clicks.First().Y * Drawing.Width]; if (mapGuid != Guid.Empty) { ConnectedCircle connectedCircle; graphicObject = GraphicObjects[mapGuid]; if (GraphicObjects[mapGuid].GraphicObjectType == GraphicObjectType.Circle) { ConnectedCircles.Add(GraphicObjects[mapGuid] as Circle); } if (graphicObject.GraphicObjectType == GraphicObjectType.Circle) { var firstCircle = ConnectedCircles.FirstOrDefault(); var circle = ConnectedCircles.LastOrDefault(); if (ConnectedCircles.Count > 1) { if (firstCircle.ParentGraphicObject == null) { connectedCircle = new ConnectedCircle(firstCircle, circle, Drawing, GuidMapLogic); firstCircle.ParentGraphicObject = connectedCircle; circle.ParentGraphicObject = connectedCircle; circle.Center = firstCircle.Center; GraphicObjects.Add(connectedCircle.Guid, connectedCircle); } else { circle.Center = firstCircle.Center; (firstCircle.ParentGraphicObject as ConnectedCircle).AddCircle(circle); } } } } Redraw(); }
private void StopDrawPolygon() { if (Clicks.Count > 2) { var line = new Line(Clicks.Last(), Clicks.First(), Width, Drawing, GuidMapLogic, CurrentPolygon); CurrentPolygon.AddLastLine(line); line.DrawItself(); CurrentPolygon .Lines.ForEach(poligonLine => GraphicObjects.Add(poligonLine.Guid, poligonLine)); CurrentPolygon .Verticies.ForEach(poligonVerticle => GraphicObjects.Add(poligonVerticle.Guid, poligonVerticle)); CurrentPolygon.DrawOnGuidMap(); //GuidMapLogic.SetOnMap(CurrentPolygon); } _buttonControl.StopDrawingPoligon(); Clicks.Clear(); }