//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 MoveObject() { var line = (SelectedObject as Line); var pointOnLine = Clicks[Clicks.Count - 2]; int diffOnX = Clicks.Last().X - pointOnLine.X; int diffOnY = Clicks.Last().Y - pointOnLine.Y; SelectedObject.Move(diffOnX, diffOnY); Redraw(); }
private void MoveVerticle() { if (SelectedObject?.GraphicObjectType != GraphicObjectType.Verticle) { return; } Verticle verticle = (SelectedObject as Verticle); verticle.Point = Clicks.Last(); SelectedObject = null; Redraw(); }
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(); }
private void SelectObject() { GraphicObject graphicObject = null; Guid mapGuid = GuidMapLogic.GuidMap[Clicks.Last().X + Clicks.Last().Y *Drawing.Width]; if (mapGuid == Guid.Empty) { //Clicks.Clear(); return; } if (mapGuid != Guid.Empty) { graphicObject = GraphicObjects[mapGuid]; SelectedObject = graphicObject; Redraw(); HighlightObject(); } //Clicks.Clear(); //return graphicObject; }
private void CreatePoint() { Drawing.SetPixel(Clicks.Last(), Width); Clicks.Clear(); }