]> granicus.if.org Git - graphviz/commitdiff
Fix neato so that neato -n forces -s72
authorerg <devnull@localhost>
Thu, 19 Jan 2006 22:31:10 +0000 (22:31 +0000)
committererg <devnull@localhost>
Thu, 19 Jan 2006 22:31:10 +0000 (22:31 +0000)
lib/common/args.c
lib/neatogen/neatoinit.c
plugin/neato_layout/gvlayout_neato_layout.c

index 78c6c13c1c32de3ec0f42f77bccec0a2f4997cc6..88572e7bf80903db39df0e137fd65c57b84e74a4 100644 (file)
@@ -61,7 +61,6 @@ neato_extra_args(GVC_t *gvc, int argc, char** argv)
           }
         }
         else Nop = 1;
-       if (PSinputscale == 0) PSinputscale = POINTS_PER_INCH;
         break;
       default :
         cnt++;
index ccc787f36ff692b1bef36e561f81bc05c8adda30..a949f1b5407a2365afdf323e4d3b9bb1facf74cb 100644 (file)
@@ -528,11 +528,8 @@ static void translate(Agraph_t * g, pos_edge posEdges)
 }
 
 /* init_nop:
- * This assumes all nodes have been positioned, and the
- * root graph has a bb defined, as name/value pairs. 
- * (We could possible weaken the latter and perform a 
- * recomputation of all bb.) It also assumes none of the 
- * relevant fields in A*info_t have set.
+ * This assumes all nodes have been positioned.
+ * It also assumes none of the * relevant fields in A*info_t have been set.
  * The input may provide additional position information for
  * clusters, edges and labels. If certain position information
  * is missing, init_nop will use a standard neato technique to
@@ -546,6 +543,10 @@ int init_nop(Agraph_t * g, int adjust)
     attrsym_t *G_lp = agfindattr(g, "lp");
     attrsym_t *G_bb = agfindattr(g, "bb");
 
+    /* If G_bb not defined, define it */
+    if (!G_bb)
+       G_bb = agraphattr(g, "bb", "");
+
     scan_graph(g);             /* mainly to set up GD_neato_nlist */
     for (i = 0; (np = GD_neato_nlist(g)[i]); i++) {
        if (!hasPos(np) && strncmp(np->name, "cluster", 7)) {
@@ -560,10 +561,6 @@ int init_nop(Agraph_t * g, int adjust)
     if (adjust && Nop == 1)
        adjustNodes(g);
 
-    /* If G_bb not defined, define it */
-    if (!G_bb)
-       G_bb = agraphattr(g, "bb", "");
-
     /* If g does not have a good "bb" attribute, compute it. */
     if (!chkBB(g, G_bb))
        compute_bb(g);
@@ -1157,18 +1154,27 @@ addZ (Agraph_t* g)
  */
 void neato_layout(Agraph_t * g)
 {
+    int layoutMode;
+    int model;
+    pack_mode mode;
 
-    neato_init_graph(g);
     if (Nop) {
+       int save = PSinputscale;
+       int ret;
+       PSinputscale = POINTS_PER_INCH;
+       neato_init_graph(g);
        addZ (g);
-       if (init_nop(g, 1)) {
+       ret = init_nop(g, 1);
+       PSinputscale = save;
+       if (ret) {
            agerr(AGPREV, "as required by the -n flag\n");
            exit(1);
        }
     } else {
-       int layoutMode = neatoMode(g);
-       int model = neatoModel(g);
-       pack_mode mode = getPackMode(g, l_undef);
+       neato_init_graph(g);
+       layoutMode = neatoMode(g);
+       model = neatoModel(g);
+       mode = getPackMode(g, l_undef);
        Pack = getPack(g, -1, CL_OFFSET);
        /* pack if just packmode defined. */
        if (mode == l_undef) {
index bd7d1953f4a63474b85aaa70dc8cc31efbad7e30..79d68d74f0800686bb10634c1331bc65fe76dd3f 100644 (file)
@@ -53,14 +53,12 @@ extern void circo_cleanup(graph_t * g);
 static void nop1_layout(graph_t * g)
 {
     Nop = 1;
-    PSinputscale = POINTS_PER_INCH;
     neato_layout(g);
 }
 
 static void nop2_layout(graph_t * g)
 {
     Nop = 2;
-    PSinputscale = POINTS_PER_INCH;
     neato_layout(g);
 }