Graphviz  2.29.20120523.0446
lib/neatogen/adjust.h
Go to the documentation of this file.
00001 /* $Id$ $Revision$ */
00002 /* vim:set shiftwidth=4 ts=8: */
00003 
00004 /*************************************************************************
00005  * Copyright (c) 2011 AT&T Intellectual Property 
00006  * All rights reserved. This program and the accompanying materials
00007  * are made available under the terms of the Eclipse Public License v1.0
00008  * which accompanies this distribution, and is available at
00009  * http://www.eclipse.org/legal/epl-v10.html
00010  *
00011  * Contributors: See CVS logs. Details at http://www.graphviz.org/
00012  *************************************************************************/
00013 
00014 
00015 
00016 #ifndef ADJUST_H
00017 #define ADJUST_H
00018 
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022 
00023 #include "geom.h"
00024 #include "SparseMatrix.h"
00025 
00026 #define DFLT_MARGIN     4   /* 4 points */
00027 
00028 typedef enum {
00029     AM_NONE, AM_VOR,
00030     AM_SCALE, AM_NSCALE, AM_SCALEXY, AM_PUSH, AM_PUSHPULL,
00031     AM_ORTHO, AM_ORTHO_YX, AM_ORTHOXY, AM_ORTHOYX,
00032     AM_PORTHO, AM_PORTHO_YX, AM_PORTHOXY, AM_PORTHOYX, AM_COMPRESS,
00033     AM_VPSC, AM_IPSEP, AM_PRISM
00034 } adjust_mode;
00035 
00036 typedef struct {
00037     adjust_mode mode;
00038     char *print;
00039     int value;
00040     double scaling;
00041 } adjust_data;
00042 
00043 typedef struct {
00044     float x, y;
00045     boolean doAdd;  /* if true, x and y are in points */
00046 } expand_t;
00047 
00048     extern expand_t sepFactor(graph_t * G);
00049     extern expand_t esepFactor(graph_t * G);
00050     extern int adjustNodes(graph_t * G);
00051     extern void normalize(graph_t * g);
00052     extern int removeOverlapAs(graph_t*, char*);
00053     extern int removeOverlapWith(graph_t*, adjust_data*);
00054     extern int cAdjust(graph_t *, int);
00055     extern int scAdjust(graph_t *, int);
00056     extern adjust_data *graphAdjustMode(graph_t *G, adjust_data*, char* dflt);
00057     extern double *getSizes(Agraph_t * g, pointf pad, int *n_elabels, int **elabels);
00058     extern SparseMatrix makeMatrix(Agraph_t* g, int dim, SparseMatrix *D);
00059 
00060 #ifdef __cplusplus
00061 }
00062 #endif
00063 #endif