/* * */ #include #include #include // #include #include #include #include using namespace ogdf; int main(int argc, char* argv[]) { string inputFile = argv[1]; Graph G; if (!GraphIO::read(G, inputFile, GraphIO::readGML)) { std::cerr << "Could not read input.gml" << std::endl; return 1; } NodeArray numbering(G); computeSTNumbering(G, numbering, nullptr, nullptr, true); OGDF_ASSERT(num == G.numberOfNodes()); // print after input // graphPrinter(G); // std::cout << "G Planarity: " << ogdf::isPlanar(G) << std::endl; // std::cout << "Original number of nodes: " << G.numberOfNodes() << std::endl; // std::cout << "Original number of edges: " << G.numberOfEdges() << std::endl; // separator for planarization // <--------------> // PQ implementation to make planar subgraph List *delEdges = new List; // empty list PlanarSubgraphFast psf; // comment out to use default options // psf.runs(1); ogdf::MaximalPlanarSubgraphSimple mps(psf); mps.call(G, *delEdges); // print edges removed std::cout << delEdges->size() << std::endl; // delete removed edges // for (edge e: *delEdges) { // // print removed edges // // std::cout << e->adjSource() << std::endl; // G.delEdge(e); // } // write processed graph to new gml file // GraphIO::write(G, "output.gml", GraphIO::writeGML); // std::cout << "G planarity: " << ogdf::isPlanar(G) << std::endl; // std::cout << "Original number of nodes: " << G.numberOfNodes() << std::endl; // std::cout << "Subgraph number of edges: " << G.numberOfEdges() << std::endl; return 0; }