static void dot_init_node(node_t * n) { common_init_node(n); dot_nodesize(n, GD_flip(n->graph)); alloc_elist(4, ND_in(n)); alloc_elist(4, ND_out(n)); alloc_elist(2, ND_flat_in(n)); alloc_elist(2, ND_flat_out(n)); alloc_elist(2, ND_other(n)); ND_UF_size(n) = 1; }
/* translate_drawing: * Translate and/or rotate nodes, spline points, and bbox info if * Offset is non-trivial. * Also, if Rankdir, reset ND_lw, ND_rw, and ND_ht to correct value. */ static void translate_drawing(graph_t * g) { node_t *v; edge_t *e; int shift = (Offset.x || Offset.y); if (!shift && !Rankdir) return; for (v = agfstnode(g); v; v = agnxtnode(g, v)) { if (Rankdir) dot_nodesize(v, FALSE); if (shift) { ND_coord_i(v) = map_point(ND_coord_i(v)); if (State == GVSPLINES) for (e = agfstout(g, v); e; e = agnxtout(g, e)) map_edge(e); } } if (shift) translate_bb(g, GD_rankdir(g)); }