/* delete the layout (but retain the underlying graph) */ void dot_cleanup(graph_t * g) { node_t *n; edge_t *e; free_virtual_node_list(GD_nlist(g)); for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) { gv_cleanup_edge(e); } dot_cleanup_node(n); } dot_cleanup_graph(g); }
/* removeFill: * This removes all of the fill nodes added in mincross. * It appears to be sufficient to remove them only from the * rank array and fast node list of the root graph. */ static void removeFill (Agraph_t * g) { Agnode_t* n; Agnode_t* nxt; Agraph_t* sg = agsubg (g, "_new_rank", 0); if (!sg) return; for (n = agfstnode(sg); n; n = nxt) { nxt = agnxtnode(sg, n); delete_fast_node (g, n); remove_from_rank (g, n); dot_cleanup_node (n); agdelnode(g, n); } agdelsubg (g, sg); }