1
/* $Id: adjust.c,v 1.12 2006/05/21 06:33:20 ellson Exp $ $Revision: 1.12 $ */
1
/* $Id: adjust.c,v 1.14 2008/02/05 04:37:16 erg Exp $ $Revision: 1.14 $ */
2
2
/* vim:set shiftwidth=4 ts=8: */
4
4
/**********************************************************
647
vpscAdjust(graph_t* G)
650
int nnodes = agnnodes(G);
652
pointf* nsize = N_GNEW(nnodes, pointf);
653
float** coords = N_GNEW(dim, float*);
654
float* f_storage = N_GNEW(dim * nnodes, float);
659
for (i = 0; i < dim; i++) {
660
coords[i] = f_storage + i * nnodes;
664
for (v = agfstnode(G); v; v = agnxtnode(G, v)) {
665
for (i = 0; i < dim; i++) {
666
coords[i][j] = (float) (ND_pos(v)[i]);
668
nsize[j].x = ND_width(v);
669
nsize[j].y = ND_height(v);
676
opt.clusters = NEW(cluster_data);
677
if ((str = agget(G, "sep")) &&
678
(i = sscanf(str, "%lf,%lf", &opt.gap.x, &opt.gap.y))) {
679
if (i == 1) opt.gap.y = opt.gap.x;
681
fprintf(stderr,"gap=%f,%f\n",opt.gap.x,opt.gap.y);
683
else opt.gap.x = opt.gap.y = PS2INCH(10);
686
removeoverlaps(nnodes, coords, &opt);
689
for (v = agfstnode(G); v; v = agnxtnode(G, v)) {
690
for (i = 0; i < dim; i++) {
691
ND_pos(v)[i] = coords[i][j];
641
705
* If normalize is set, move first node to origin, then
642
706
* rotate graph so that first edge is horizontal.
723
787
adjust_data *graphAdjustMode(graph_t *G)
725
return (getAdjustMode (agget(G, "overlap")));
789
char* am = agget(G, "overlap");
790
return (getAdjustMode (am ? am : ""));
728
793
/* removeOverlapAs: