public bool containsWithinRange(ColoredPoint point) { foreach (ColoredPoint coloredPoint in this.vertices) { if(point.withinRoot(coloredPoint)) { return true; } } return false; }
public bool AddVertexFromMouseClick(ColoredPoint vertex) { Triangulation triangulation = new Triangulation(); if (this.closed == true) return false; if (!containsWithinRange(vertex)) { if (this.vertices.Count == 0 || triangulation.noIntersection(this.vertices[0].point.X, this.vertices[0].point.Y, vertex.point.X, vertex.point.Y, this)) { vertex.index = this.vertices.Count; this.vertices.Add(vertex); OnPropertyChanged("vertices"); return true; } else { return false; } } else { //if we click on the first point, then we are closing the polygon if (vertex.withinRoot(this.vertices[0])) { this.closed = true; OnPropertyChanged("vertices"); return true; } else { return false; } } }