#include using namespace std; #include "graph.h" void Graph::initializeVertices(int size, const void *&data, PosInit initfunc) { num_vertices = size; vertices.resize(size); for (int i=0; iconnected(vertices[j].pos)) { Edge *edge = new Edge(); edge->left = &vertices[i]; edge->right = &vertices[j]; edges.push_back(edge); edge->left->edges.push_back(edge); edge->right->edges.push_back(edge); } } void Graph::calculateEdgeCosts() { for (EdgeIterator e = edges.begin(); e!=edges.end(); e++) (*e)->calculateCost(); } void Graph::resetColors() { for (int i=0; icolor = 0; } void Graph::remapVertColor(int source, int dest) { for (int i=0; ishouldPrune()) e = --edges.erase(e); } ostream& operator<<(ostream& o, Vertex& v) { o << *v.pos << " " << v.color; return o; } ostream& operator<<(ostream& o, Edge& e) {\ o << "[" << *(e.left->pos) << "-" << *(e.right->pos); o << " " << e.cost << " " << e.color << "]"; return o; } ostream& operator<<(ostream& o, Graph& g) { o << "[" << g.vertices[0]; for (int i=1; i