void fdp_init_node_edge(graph_t * g) { attrsym_t *E_len; node_t *n; edge_t *e; int nn = agnnodes(g); int i; ndata* alg = N_NEW(nn, ndata); processClusterEdges(g); GD_neato_nlist(g) = N_NEW(nn + 1, node_t *); for (i = 0, n = agfstnode(g); n; n = agnxtnode(g, n)) { neato_init_node (n); ND_alg(n) = alg + i; GD_neato_nlist(g)[i] = n; ND_id(n) = i++; } E_len = agfindattr(g->proto->e, "len"); for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) { init_edge(e, E_len); } } initialPositions(g); }
/* init_node_edge: * initialize node and edge attributes */ static void init_node_edge(Agraph_t * g) { node_t *n; edge_t *e; int nG = agnnodes(g); attrsym_t *N_pos = agfindattr(g->proto->n, "pos"); attrsym_t *N_pin = agfindattr(g->proto->n, "pin"); for (n = agfstnode(g); n; n = agnxtnode(g, n)) { neato_init_node(n); user_pos(N_pos, N_pin, n, nG); /* set user position if given */ } for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) common_init_edge(e); } }
static void circular_init_node_edge(graph_t * g) { node_t *n; edge_t *e; int i = 0; ndata* alg = N_NEW(agnnodes(g), ndata); GD_neato_nlist(g) = N_NEW(agnnodes(g) + 1, node_t *); for (n = agfstnode(g); n; n = agnxtnode(g, n)) { neato_init_node(n); ND_alg(n) = alg + i; GD_neato_nlist(g)[i++] = n; } for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) { circular_init_edge(e); } } }
static void twopi_init_node_edge(graph_t * g) { node_t *n; edge_t *e; int i = 0; int n_nodes = agnnodes(g); rdata* alg; alg = N_NEW(n_nodes, rdata); GD_neato_nlist(g) = N_NEW(n_nodes + 1, node_t *); for (n = agfstnode(g); n; n = agnxtnode(g, n)) { neato_init_node(n); ND_alg(n) = alg + i; GD_neato_nlist(g)[i++] = n; } for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) { twopi_init_edge(e); } } }
static void sfdp_init_node_edge(graph_t * g) { node_t *n; edge_t *e; #if 0 int nnodes = agnnodes(g); attrsym_t *N_pos = agfindnodeattr(g, "pos"); #endif for (n = agfstnode(g); n; n = agnxtnode(g, n)) { neato_init_node(n); #if 0 FIX so that user positions works with multiscale user_pos(N_pos, NULL, n, nnodes); #endif } for (n = agfstnode(g); n; n = agnxtnode(g, n)) { for (e = agfstout(g, n); e; e = agnxtout(g, e)) sfdp_init_edge(e); } }