From: Yifan Hu Date: Wed, 9 Oct 2013 19:40:44 +0000 (-0400) Subject: Added a do_shrinking parameter for remove_overlap. X-Git-Tag: LAST_LIBGRAPH~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=792f444f809bc959b5847fe63a664881f1e1f6cd;p=graphviz Added a do_shrinking parameter for remove_overlap. --- diff --git a/cmd/gvmap/gvmap.c b/cmd/gvmap/gvmap.c index 3f07ac7c3..9025a0755 100644 --- a/cmd/gvmap/gvmap.c +++ b/cmd/gvmap/gvmap.c @@ -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; diff --git a/lib/neatogen/adjust.c b/lib/neatogen/adjust.c index b7463c325..eddff310a 100644 --- a/lib/neatogen/adjust.c +++ b/lib/neatogen/adjust.c @@ -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)); diff --git a/lib/neatogen/overlap.c b/lib/neatogen/overlap.c index 77670695a..a33a0da01 100644 --- a/lib/neatogen/overlap.c +++ b/lib/neatogen/overlap.c @@ -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"); } diff --git a/lib/sfdpgen/spring_electrical.c b/lib/sfdpgen/spring_electrical.c index bd56b7e12..2c8ebd96c 100644 --- a/lib/sfdpgen/spring_electrical.c +++ b/lib/sfdpgen/spring_electrical.c @@ -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;