#include "graph.h" bool Graph::vertex_present(int x, int y, int size) { int delta = size / 2; int x_min = x - delta; int x_max = x + delta; int y_min = y - delta; int y_max = y + delta; for (list::iterator cursor = vertices.begin(); cursor != vertices.end(); cursor++) { Vertex v = *cursor; if (((x_min >= v.x_min && x_min <= x_max) && ((y_min >= v.y_min && y_min <= y_max) || (y_max >= v.y_min && y_max <= y_max))) || ((x_max >= v.x_min && x_max <= x_max) && ((y_min >= v.y_min && y_min <= y_max) || (y_max >= v.y_min && y_max <= y_max)))) return true; } return false; } void Graph::add_vertex(Vertex v) { if (vertex_present(v.x, v.y)) return; vertices.push_back(v); edges.push_back(Edge(last_vertex, v)); last_vertex = v; }