private void StartDrawingPolygon(object sender, EventArgs e) { DetachInputHandlerEventsFromDrawingArea(); IPolygon polygonUnderCreation = new Polygon(new List <Vertice>(), new List <Edge>()); polygonUnderCreation.AddVertice(new Vertice(), null, null); polygons.Add(polygonUnderCreation); inputHandler = new InputHandlerForPolygonCreation { OnSuccessfullElementMove = drawingArea.Refresh, OnVerticeAdd = drawingArea.Refresh, OnFinishedDrawing = StopDrawingPolygon, PolygonUnderCreation = polygonUnderCreation }; AttachInputHandlerEventsToDrawingArea(); UpdateButtons(); foreach (var button in CreateGroupBox.FindAllChildrenByType <Button>()) { button.Enabled = false; } StopDrawingButton.Enabled = true; drawingArea.Refresh(); FakeButton.Focus(); }
private void DeleteSelectedPolygon(object sender, EventArgs e) { if (inputHandler.SelectedPolygon != null) { polygons.Remove(inputHandler.SelectedPolygon); inputHandler.ClearSelected(); FakeButton.Focus(); drawingArea.Refresh(); } }
private void SplitSelectedEdge(object sender, EventArgs e) { if (inputHandler.SelectedElement is Edge selectedEdge) { inputHandler.SelectedPolygon.SplitEdge(selectedEdge); inputHandler.ClearSelected(); drawingArea.Refresh(); } FakeButton.Focus(); }
private void ChangeCurrentPolygonToConvexHull(object sender, EventArgs e) { if (inputHandler.SelectedPolygon != null) { IPolygon polygonToChange = inputHandler.SelectedPolygon; IPolygon convexHull = ConvexHullOfPolygon.GetConvexHull(polygonToChange); if (convexHull != null) { polygons.Remove(polygonToChange); polygons.Add(convexHull); } inputHandler.ClearSelected(); drawingArea.Refresh(); } FakeButton.Focus(); }
private void DeleteSelectedVertice(object sender, EventArgs e) { if (inputHandler.SelectedElement is Vertice v) { if (inputHandler.SelectedPolygon.DeleteVertice(v)) { inputHandler.ClearSelected(); drawingArea.Refresh(); } else { InformationDialog.Show(ErrorMessages.CanNotDeleteVertice); } } FakeButton.Focus(); }
private void StopDrawingPolygon() { FakeButton.Focus(); IPolygon polygonUnderCreation = polygons.Last(); if (polygonUnderCreation.Vertices.Count <= 3) { InformationDialog.Show(ErrorMessages.PolygonMustHaveAtLeastThreeVertices); return; } DetachInputHandlerEventsFromDrawingArea(); polygonUnderCreation.DeleteVertice(polygonUnderCreation.Vertices.Last()); polygonUnderCreation.CreateEdgeBetweenVertices(polygonUnderCreation.Vertices.First(), polygonUnderCreation.Vertices.Last()); inputHandler = GetStandardInputHandler(); AttachInputHandlerEventsToDrawingArea(); UpdateButtons(); drawingArea.Refresh(); }
private void ChangeSelectedEdgeToVertical(object sender, EventArgs e) { HandleSimpleEdgeTypeChange(EdgeType.Vertical, -1, string.Format(ErrorMessages.CanNotChangeEdgeType, EdgeType.Vertical.Name)); FakeButton.Focus(); }
private void CreateCustomPolygon(object sender, EventArgs e) { polygons.Add(PolygonCreator.GetCustom()); FakeButton.Focus(); drawingArea.Refresh(); }
private void CreateRectangle(object sender, EventArgs e) { polygons.Add(PolygonCreator.GetSampleRectangle()); FakeButton.Focus(); drawingArea.Refresh(); }
private void ChangeSelectedEdgeLength(object sender, EventArgs e) { HandleChangingEdgeLengthOrTypeToFixedLenght(string.Format(ErrorMessages.CanNotChangeEdgeLenght, EdgeType.FixedLength.Name)); FakeButton.Focus(); }
private void RemoveConstraintsFromSelectedEdge(object sender, EventArgs e) { HandleSimpleEdgeTypeChange(EdgeType.Normal, -1, string.Format(ErrorMessages.CanNotChangeEdgeType, EdgeType.Normal.Name)); FakeButton.Focus(); }