void dot_layout(Agraph_t * g) { dot_init_node_edge(g); dot_rank(g); dot_mincross(g); /* dumpRanks (g); */ dot_position(g); /* dumpRanks (g); */ dot_sameports(g); dot_splines(g); if (mapbool(agget(g, "compound"))) dot_compoundEdges(g); dotneato_postprocess(g); }
void dot_layout_intl(Agraph_t * g, struct _DotStats* stats) { aspect_t aspect; aspect_t* asp; setEdgeType (g, ET_SPLINE); asp = setAspect (g, &aspect); dot_init_node_edge(g); do { dot_rank(g, asp, stats); resetNodeCountOnRanks(g); if(stats->stopFunc && stats->stopFunc(PROGRESS_AFTER_RANK)) { return; } if (aspect.badGraph) { agerr(AGWARN, "dot does not support the aspect attribute for disconnected graphs or graphs with clusters\n"); asp = NULL; aspect.nextIter = 0; } dot_mincross(g, (asp != NULL), stats); if(stats->stopFunc && stats->stopFunc(PROGRESS_AFTER_MX)) { return; } dot_position(g, asp, stats); if(stats->stopFunc && stats->stopFunc(PROGRESS_AFTER_POSITION)) { return; } aspect.nPasses--; } while (aspect.nextIter && aspect.nPasses); dot_sameports(g); dot_splines(g); if (mapbool(agget(g, "compound"))) dot_compoundEdges(g); dotneato_postprocess(g); if(stats->stopFunc) { stats->stopFunc(PROGRESS_LAYOUT_FINISH); } }
static void dotLayout(Agraph_t * g) { aspect_t aspect; aspect_t* asp; int maxphase = late_int(g, agfindgraphattr(g,"phase"), -1, 1); setEdgeType (g, ET_SPLINE); asp = setAspect (g, &aspect); dot_init_subg(g,g); dot_init_node_edge(g); do { dot_rank(g, asp); if (maxphase == 1) { attach_phase_attrs (g, 1); return; } if (aspect.badGraph) { agerr(AGWARN, "dot does not support the aspect attribute for disconnected graphs or graphs with clusters\n"); asp = NULL; aspect.nextIter = 0; } dot_mincross(g, (asp != NULL)); if (maxphase == 2) { attach_phase_attrs (g, 2); return; } dot_position(g, asp); if (maxphase == 3) { attach_phase_attrs (g, 2); /* positions will be attached on output */ return; } aspect.nPasses--; } while (aspect.nextIter && aspect.nPasses); if (GD_flags(g) & NEW_RANK) removeFill (g); dot_sameports(g); dot_splines(g); if (mapbool(agget(g, "compound"))) dot_compoundEdges(g); }