static void undoCompound(edge_t * e, graph_t * clg) { node_t *t = agtail(e); node_t *h = aghead(e); node_t *ntail; node_t *nhead; edge_t* ce; if (!(IS_CLUST_NODE(t) || IS_CLUST_NODE(h))) return; ntail = mapN(t, clg); nhead = mapN(h, clg); ce = cloneEdge(e, ntail, nhead); /* transfer drawing information */ ED_spl(ce) = ED_spl(e); ED_spl(e) = NULL; ED_label(ce) = ED_label(e); ED_label(e) = NULL; ED_xlabel(ce) = ED_xlabel(e); ED_xlabel(e) = NULL; ED_head_label(ce) = ED_head_label(e); ED_head_label(e) = NULL; ED_tail_label(ce) = ED_tail_label(e); ED_tail_label(e) = NULL; gv_cleanup_edge(e); }
void sfdp_cleanup(graph_t * g) { node_t *n; edge_t *e; for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) { gv_cleanup_edge(e); } gv_cleanup_node(n); } sfdp_cleanup_graph(g); }
/* 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); }
void fdp_cleanup(graph_t * g) { node_t *n; edge_t *e; n = agfstnode(g); free(ND_alg(n)); for (; n; n = agnxtnode(g, n)) { for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) { gv_cleanup_edge(e); } gv_cleanup_node(n); } fdp_cleanup_graph(g); }
/* twopi_cleanup: * The ND_alg data used by twopi is freed in twopi_layout * before edge routing as edge routing may use this field. */ void twopi_cleanup(graph_t * g) { node_t *n; edge_t *e; n = agfstnode (g); if (!n) return; /* empty graph */ /* free (ND_alg(n)); */ for (; n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) { gv_cleanup_edge(e); } gv_cleanup_node(n); } twopi_cleanup_graph(g); }