private Vertex CreateVertex(Vector2 position) { var overlaps = _vertices.ContainedBy(new BoundingRectangle( new Vector2(position.X - 1, position.Y - 1), new Vector2(position.X + 1, position.Y + 1) )); if (overlaps.Any(a => a.Position == position)) { throw new InvalidOperationException(); } var vertex = new Vertex(position); _vertices.Insert( new BoundingRectangle( new Vector2(position.X, position.Y), new Vector2(position.X, position.Y) ), vertex ); return(vertex); }