/misc/src/release/graphviz-2.18-1/src/graphviz-2.18/lib/common/const.h

Go to the documentation of this file.
00001 /* $Id: const.h,v 1.27 2008/03/02 15:22:47 ellson Exp $ $Revision: 1.27 $ */
00002 /* vim:set shiftwidth=4 ts=8: */
00003 
00004 /**********************************************************
00005 *      This software is part of the graphviz package      *
00006 *                http://www.graphviz.org/                 *
00007 *                                                         *
00008 *            Copyright (c) 1994-2004 AT&T Corp.           *
00009 *                and is licensed under the                *
00010 *            Common Public License, Version 1.0           *
00011 *                      by AT&T Corp.                      *
00012 *                                                         *
00013 *        Information and Software Systems Research        *
00014 *              AT&T Research, Florham Park NJ             *
00015 **********************************************************/
00016 
00017 #ifndef GV_CONST_H
00018 #define GV_CONST_H
00019 
00020 #define SMALLBUF        128
00021 #define LPAREN          '('
00022 #define RPAREN          ')'
00023 #define LBRACE          '{'
00024 #define RBRACE          '}'
00025 
00026 /*      node,edge types */
00027 #ifdef NORMAL
00028 #undef NORMAL
00029 #endif
00030 #define         NORMAL          0       /* an original input node */
00031 #define         VIRTUAL         1       /* virtual nodes in long edge chains */
00032 #define         SLACKNODE       2       /* encode edges in node position phase */
00033 #define         REVERSED        3       /* reverse of an original edge */
00034 #define         FLATORDER       4       /* for ordered edges */
00035 #define         CLUSTER_EDGE 5  /* for ranking clusters */
00036 #define         IGNORED         6       /* concentrated multi-edges */
00037 
00038 /* collapsed node classifications */
00039 #define         NOCMD           0       /* default */
00040 #define         SAMERANK        1       /* place on same rank */
00041 #define         MINRANK         2       /* place on "least" rank */
00042 #define         SOURCERANK      3       /* strict version of MINRANK */
00043 #define         MAXRANK         4       /* place on "greatest" rank */
00044 #define         SINKRANK        5       /* strict version of MAXRANK */
00045 #define         LEAFSET         6       /* set of collapsed leaf nodes */
00046 #define         CLUSTER         7       /* set of clustered nodes */
00047 
00048 /* type of cluster rank assignment */
00049 #define         LOCAL           100
00050 #define         GLOBAL          101
00051 #define         NOCLUST         102
00052 
00053 /* default attributes */
00054 #define         DEFAULT_COLOR           "black"
00055 #define         DEFAULT_ACTIVEPENCOLOR  "#808080"
00056 #define         DEFAULT_ACTIVEFILLCOLOR "#fcfcfc"
00057 #define         DEFAULT_ACTIVEFONTCOLOR "black"
00058 #define         DEFAULT_SELECTEDPENCOLOR "#303030"
00059 #define         DEFAULT_SELECTEDFILLCOLOR "#e8e8e8"
00060 #define         DEFAULT_SELECTEDFONTCOLOR "black"
00061 #define         DEFAULT_DELETEDPENCOLOR "#e0e0e0"
00062 #define         DEFAULT_DELETEDFILLCOLOR "#f0f0f0"
00063 #define         DEFAULT_DELETEDFONTCOLOR "darkgrey"
00064 #define         DEFAULT_VISITEDPENCOLOR "#101010"
00065 #define         DEFAULT_VISITEDFILLCOLOR "#f8f8f8"
00066 #define         DEFAULT_VISITEDFONTCOLOR "black"
00067 #define         DEFAULT_FONTSIZE        14.0
00068 #define         DEFAULT_LABEL_FONTSIZE  11.0    /* for head/taillabel */
00069 #define         MIN_FONTSIZE            1.0
00070 #define         DEFAULT_FONTNAME        "Times-Roman"
00071 #define         DEFAULT_FILL            "lightgrey"
00072 #define         LINESPACING             1.20
00073 
00074 #define         DEFAULT_NODEHEIGHT      0.5
00075 #define         MIN_NODEHEIGHT          0.02
00076 #define         DEFAULT_NODEWIDTH       0.75
00077 #define         MIN_NODEWIDTH           0.01
00078 #define         DEFAULT_NODESHAPE       "ellipse"
00079 
00080 #define         NODENAME_ESC            "\\N"
00081 
00082 #define         DEFAULT_LAYERSEP        ":\t "
00083 
00084 #define         DEFAULT_NODESEP 0.25
00085 #define         MIN_NODESEP             0.02
00086 #define         DEFAULT_RANKSEP 0.5
00087 #define         MIN_RANKSEP             0.02
00088 
00089 /* default margin for paged formats such as PostScript - in points  = 0.5in */
00090 #define         DEFAULT_PRINT_MARGIN 36
00091 /* default margin for embedded formats such as PNG - in points */
00092 #define         DEFAULT_EMBED_MARGIN 0
00093 /* default padding around graph - in points */
00094 #define         DEFAULT_GRAPH_PAD 4
00095 
00096 #define         SELF_EDGE_SIZE  18
00097 #define         MC_SCALE        256     /* for mincross */
00098 
00099 #define         PORT_LABEL_DISTANCE     10
00100 #define         PORT_LABEL_ANGLE        -25     /* degrees; pos is CCW, neg is CW */
00101 
00102 /* default polygon sample size for overlap removal and maps */
00103 #define DFLT_SAMPLE 20
00104 
00105 /* arrow types */
00106 #define         ARR_NONE         0
00107 
00108 /* sides (e.g. of cluster margins) */
00109 #define         BOTTOM_IX       0
00110 #define         RIGHT_IX        1
00111 #define         TOP_IX          2
00112 #define         LEFT_IX         3
00113 
00114 /* sides of boxes for SHAPE_path */
00115 #define         BOTTOM          (1<<BOTTOM_IX)
00116 #define         RIGHT           (1<<RIGHT_IX)
00117 #define         TOP             (1<<TOP_IX)
00118 #define         LEFT            (1<<LEFT_IX)
00119 
00120 #define CCW  -1                 /* counter clock-wise */
00121 #define CW    1                 /* clock-wise */
00122 
00123 /* Obj types  for renderers */
00124 #define         NONE    0
00125 #define         NODE    1
00126 #define         EDGE    2
00127 #define         CLST    3
00128 
00129 /* output languages */
00130 #define         HPGL            2       /* HP Graphics Language */
00131 #define         PCL             3       /* Printer Control Language */
00132 #define         MIF             4       /* Adobe FrameMaker */
00133 #define         PIC_format      5       /* symbol PIC is used by compilers for 
00134                                            Position Independent Code */
00135 #define         TK              15      /* TK canvas */
00136 
00137 #define         VTX             21      /* visual thought */
00138 #define         METAPOST        22
00139 #define         DIA             24      /* dia drawing tool */
00140 
00141 #define         QPDF            30      /* Quartz paged PDF */
00142 #define         QEPDF           31      /* Quartz embedded PDF */
00143 
00144 #define         QBM_FIRST 100   /* first Quartz bitmap format, inclusive */
00145 #define         QBM_LAST 200    /* last Quartz bitmap format, exclusive */
00146 
00147 #define         GVRENDER_PLUGIN 300     /* a plugin supported language */
00148 #define         NO_SUPPORT      999     /* no support */
00149 
00150 /* for clusters */
00151 #define         CL_BACK         10      /* cost of backward pointing edge */
00152 #define         CL_OFFSET       8       /* margin of cluster box in PS points */
00153 #ifndef MSWIN32
00154 #define         CL_CROSS        1000    /* cost of cluster skeleton edge crossing */
00155 #else
00156 #define         CL_CROSS        100     /* avoid 16 bit overflow */
00157 #endif
00158 
00159 /* edge types */
00160 #define REGULAREDGE 1
00161 #define FLATEDGE    2
00162 #define SELFWPEDGE  4
00163 #define SELFNPEDGE  8
00164 #define SELFEDGE    8
00165 #define EDGETYPEMASK     15     /* the OR of the above */
00166 
00167 /* for graph server */
00168 #define         SERVER_NN       200
00169 #define         SERVER_NE       500
00170 
00171 /* for neato */
00172 #define Spring_coeff    1.0
00173 #define MYHUGE          (1.0e+37)
00174 #define MAXDIM                  10
00175 #define SEPFACT         0.8  /* default esep/sep */
00176 
00177 /* drawing phases */
00178 #define GVBEGIN         0
00179 #define GVSPLINES       1
00180 
00181 /* existence of labels */
00182 #define EDGE_LABEL              1
00183 #define HEAD_LABEL              2
00184 #define TAIL_LABEL              4
00185 #define GRAPH_LABEL             8
00186 
00187 /* type of graph label: GD_label_pos */
00188 #define LABEL_AT_BOTTOM 0
00189 #define LABEL_AT_TOP    1
00190 #define LABEL_AT_LEFT   2
00191 #define LABEL_AT_RIGHT  4
00192 
00193 /* values specifying rankdir */
00194 #define RANKDIR_TB      0
00195 #define RANKDIR_LR      1
00196 #define RANKDIR_BT      2
00197 #define RANKDIR_RL      3
00198 
00199 /* allowed charsets */
00200 #define CHAR_UTF8       0
00201 #define CHAR_LATIN1     1
00202 #define CHAR_BIG5       2
00203 
00204 /* style flags */
00205 #define FILLED  (1 << 0)
00206 #define ROUNDED (1 << 1)
00207 #define DIAGONALS (1 << 2)
00208 #define AUXLABELS (1 << 3)
00209 #define INVISIBLE (1 << 4)
00210 #define DOGEAR (1 << 5)
00211 #define TAB (1 << 6)
00212 #define FOLDER (1 << 7)
00213 #define BOX3D (1 << 8)
00214 #define COMPONENT (1 << 9)
00215 
00216 /* label types */
00217 #define LT_NONE         (0 << 1)
00218 #define LT_HTML         (1 << 1)
00219 #define LT_RECD         (2 << 1)
00220 
00221 /* edge types */
00222 #define ET_NONE         (0 << 1)
00223 #define ET_LINE         (1 << 1)
00224 #define ET_PLINE        (2 << 1)
00225 #define ET_ORTHO        (3 << 1)
00226 #define ET_SPLINE       (4 << 1)
00227 #define ET_COMPOUND     (5 << 1)
00228 
00229 /* user-specified node position: ND_pinned */
00230 #define P_SET    1              /* position supplied by user */
00231 #define P_FIX    2              /* position fixed during topological layout */
00232 #define P_PIN    3              /* position fixed */
00233 
00234 #define GAP 4                   /* whitespace in POINTS around labels and between peripheries */
00235 
00236 /* fontsize at which text is omitted entirely */
00237 #define FONTSIZE_MUCH_TOO_SMALL 0.15
00238 /* fontsize at which text is rendered by a simple line */
00239 #define FONTSIZE_TOO_SMALL 1.5
00240 
00241 #endif

Generated on Mon Mar 31 19:03:24 2008 for Graphviz by  doxygen 1.5.1