]> granicus.if.org Git - graphviz/commitdiff
Added a do_shrinking parameter for remove_overlap.
authorYifan Hu <yifanhu@yahoo.com>
Wed, 9 Oct 2013 19:40:44 +0000 (15:40 -0400)
committerYifan Hu <yifanhu@yahoo.com>
Wed, 9 Oct 2013 19:40:44 +0000 (15:40 -0400)
cmd/gvmap/gvmap.c
lib/neatogen/adjust.c
lib/neatogen/overlap.c
lib/sfdpgen/spring_electrical.c

index 3f07ac7c394940d0f90ff44875a1e6720550c6d9..9025a075501b08024ea1e3275562bdab676f2fd5 100644 (file)
@@ -583,7 +583,7 @@ makeMap (SparseMatrix graph, int n, real* x, real* width, int* grouping,
       SparseMatrix D;
       D = SparseMatrix_get_real_adjacency_matrix_symmetrized(graph);
       remove_overlap(dim, D, x, width, 1000, 5000.,
-                    ELSCHEME_NONE, 0, NULL, NULL, &flag);
+                    ELSCHEME_NONE, 0, NULL, NULL, TRUE, &flag);
       
       nart = nart0;
       nrandom = nr0;
index b7463c3255ff8bab5ba1b4990ce4ce2518737b9d..eddff310a35ade11a6506fcd3f39b55c5be71073 100644 (file)
@@ -814,7 +814,7 @@ fdpAdjust (graph_t* g, adjust_data* am)
     }
 
     remove_overlap(Ndim, A, pos, sizes, am->value, am->scaling, 
-       ELSCHEME_NONE, 0, NULL, NULL, &flag);
+                  ELSCHEME_NONE, 0, NULL, NULL, TRUE, &flag);
 
     for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
        real *npos = pos + (Ndim * ND_id(n));
index 77670695a2ef3047cbd96836796553e9157e62f6..a33a0da01b3ef0b506f4fb3356d010eb301faf8b 100644 (file)
@@ -552,7 +552,7 @@ static int check_convergence(real max_overlap, real res, int has_penalty_terms,
 }
 
 void remove_overlap(int dim, SparseMatrix A, real *x, real *label_sizes, int ntry, real initial_scaling, 
-                   int edge_labeling_scheme, int n_constr_nodes, int *constr_nodes, SparseMatrix A_constr, int *flag){
+                   int edge_labeling_scheme, int n_constr_nodes, int *constr_nodes, SparseMatrix A_constr, int do_shrinking, int *flag){
   /* 
      edge_labeling_scheme: if ELSCHEME_NONE, n_constr_nodes/constr_nodes/A_constr are not used
 
@@ -630,7 +630,7 @@ void remove_overlap(int dim, SparseMatrix A, real *x, real *label_sizes, int ntr
        break;
       } else {
        res = LARGE;
-       neighborhood_only = FALSE; shrink = 1;
+       neighborhood_only = FALSE; if (do_shrinking) shrink = 1;
        continue;
       }
     }
@@ -654,7 +654,7 @@ void remove_overlap(int dim, SparseMatrix A, real *x, real *label_sizes, int ntr
   if (has_penalty_terms){
     /* now do without penalty */
     remove_overlap(dim, A, x, label_sizes, ntry, 0.,
-                  ELSCHEME_NONE, 0, NULL, NULL, flag);
+                  ELSCHEME_NONE, 0, NULL, NULL, TRUE, flag);
   }
 
 #ifdef DEBUG
@@ -685,7 +685,7 @@ void remove_overlap(int dim, SparseMatrix A, real *x, real *label_sizes, int ntr
 #else
 #include "types.h"
 #include "SparseMatrix.h"
-void remove_overlap(int dim, SparseMatrix A, int m, real *x, real *label_sizes, int ntry, real initial_scaling, int *flag)
+void remove_overlap(int dim, SparseMatrix A, int m, real *x, real *label_sizes, int ntry, real initial_scaling, int do_shrinking, int *flag)
 {
     agerr(AGERR, "remove_overlap: Graphviz not built with triangulation library\n");
 }
index bd56b7e1256943b7d844c36d34676437c3deed38..2c8ebd96ca7faa3f4605cd9a3d4f340a285cb866 100644 (file)
@@ -2041,7 +2041,7 @@ static void multilevel_spring_electrical_embedding_core(int dim, SparseMatrix A0
     assert(!(*flag));
     attach_edge_label_coordinates(dim, A, n_edge_label_nodes, edge_label_nodes, x, x2);
     remove_overlap(dim, A, x, label_sizes, ctrl->overlap, ctrl->initial_scaling,
-                  ctrl->edge_labeling_scheme, n_edge_label_nodes, edge_label_nodes, A, flag);
+                  ctrl->edge_labeling_scheme, n_edge_label_nodes, edge_label_nodes, A, TRUE, flag);
     SparseMatrix_delete(A2);
     FREE(x2);
     if (A != A0) SparseMatrix_delete(A);
@@ -2159,7 +2159,7 @@ static void multilevel_spring_electrical_embedding_core(int dim, SparseMatrix A0
   if (Verbose) fprintf(stderr, "ctrl->overlap=%d\n",ctrl->overlap);
 
   remove_overlap(dim, A, x, label_sizes, ctrl->overlap, ctrl->initial_scaling,
-                ctrl->edge_labeling_scheme, n_edge_label_nodes, edge_label_nodes, A, flag);
+                ctrl->edge_labeling_scheme, n_edge_label_nodes, edge_label_nodes, A, TRUE, flag);
 
  RETURN:
   *ctrl = ctrl0;