Graphviz  2.41.20170921.2350
const.h
Go to the documentation of this file.
1 /* $Id$ $Revision$ */
2 /* vim:set shiftwidth=4 ts=8: */
3 
4 /*************************************************************************
5  * Copyright (c) 2011 AT&T Intellectual Property
6  * All rights reserved. This program and the accompanying materials
7  * are made available under the terms of the Eclipse Public License v1.0
8  * which accompanies this distribution, and is available at
9  * http://www.eclipse.org/legal/epl-v10.html
10  *
11  * Contributors: See CVS logs. Details at http://www.graphviz.org/
12  *************************************************************************/
13 
14 #ifndef GV_CONST_H
15 #define GV_CONST_H
16 
17 #define SMALLBUF 128
18 #define LPAREN '('
19 #define RPAREN ')'
20 #define LBRACE '{'
21 #define RBRACE '}'
22 
23 /* node,edge types */
24 #ifdef NORMAL
25 #undef NORMAL
26 #endif
27 #define NORMAL 0 /* an original input node */
28 #define VIRTUAL 1 /* virtual nodes in long edge chains */
29 #define SLACKNODE 2 /* encode edges in node position phase */
30 #define REVERSED 3 /* reverse of an original edge */
31 #define FLATORDER 4 /* for ordered edges */
32 #define CLUSTER_EDGE 5 /* for ranking clusters */
33 #define IGNORED 6 /* concentrated multi-edges */
34 
35 /* collapsed node classifications */
36 #define NOCMD 0 /* default */
37 #define SAMERANK 1 /* place on same rank */
38 #define MINRANK 2 /* place on "least" rank */
39 #define SOURCERANK 3 /* strict version of MINRANK */
40 #define MAXRANK 4 /* place on "greatest" rank */
41 #define SINKRANK 5 /* strict version of MAXRANK */
42 #define LEAFSET 6 /* set of collapsed leaf nodes */
43 #define CLUSTER 7 /* set of clustered nodes */
44 
45 /* type of cluster rank assignment */
46 #define LOCAL 100
47 #define GLOBAL 101
48 #define NOCLUST 102
49 
50 /* default attributes */
51 #define DEFAULT_COLOR "black"
52 #define DEFAULT_ACTIVEPENCOLOR "#808080"
53 #define DEFAULT_ACTIVEFILLCOLOR "#fcfcfc"
54 #define DEFAULT_ACTIVEFONTCOLOR "black"
55 #define DEFAULT_SELECTEDPENCOLOR "#303030"
56 #define DEFAULT_SELECTEDFILLCOLOR "#e8e8e8"
57 #define DEFAULT_SELECTEDFONTCOLOR "black"
58 #define DEFAULT_DELETEDPENCOLOR "#e0e0e0"
59 #define DEFAULT_DELETEDFILLCOLOR "#f0f0f0"
60 #define DEFAULT_DELETEDFONTCOLOR "darkgrey"
61 #define DEFAULT_VISITEDPENCOLOR "#101010"
62 #define DEFAULT_VISITEDFILLCOLOR "#f8f8f8"
63 #define DEFAULT_VISITEDFONTCOLOR "black"
64 #define DEFAULT_FONTSIZE 14.0
65 #define DEFAULT_LABEL_FONTSIZE 11.0 /* for head/taillabel */
66 #define MIN_FONTSIZE 1.0
67 #if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) || defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
68 #define DEFAULT_FONTNAME "TimesNewRomanPSMT"
69 #else
70 #define DEFAULT_FONTNAME "Times-Roman"
71 #endif
72 #define DEFAULT_FILL "lightgrey"
73 #define LINESPACING 1.20
74 
75 #define DEFAULT_NODEHEIGHT 0.5
76 #define MIN_NODEHEIGHT 0.02
77 #define DEFAULT_NODEWIDTH 0.75
78 #define MIN_NODEWIDTH 0.01
79 #define DEFAULT_NODESHAPE "ellipse"
80 
81 #define NODENAME_ESC "\\N"
82 
83 #define DEFAULT_LAYERSEP ":\t "
84 #define DEFAULT_LAYERLISTSEP ","
85 
86 #define DEFAULT_NODESEP 0.25
87 #define MIN_NODESEP 0.02
88 #define DEFAULT_RANKSEP 0.5
89 #define MIN_RANKSEP 0.02
90 
91 
92 /* default margin for paged formats such as PostScript - in points = 0.5in */
93 #define DEFAULT_PRINT_MARGIN 36
94 /* default margin for embedded formats such as PNG - in points */
95 #define DEFAULT_EMBED_MARGIN 0
96 /* default padding around graph - in points */
97 #define DEFAULT_GRAPH_PAD 4
98 
99 #define SELF_EDGE_SIZE 18
100 #define MC_SCALE 256 /* for mincross */
101 
102 #define PORT_LABEL_DISTANCE 10
103 #define PORT_LABEL_ANGLE -25 /* degrees; pos is CCW, neg is CW */
104 
105 /* default polygon sample size for overlap removal and maps */
106 #define DFLT_SAMPLE 20
107 
108 /* arrow types */
109 #define ARR_NONE 0
110 
111 /* sides (e.g. of cluster margins) */
112 #define BOTTOM_IX 0
113 #define RIGHT_IX 1
114 #define TOP_IX 2
115 #define LEFT_IX 3
116 
117 /* sides of boxes for SHAPE_path */
118 #define BOTTOM (1<<BOTTOM_IX)
119 #define RIGHT (1<<RIGHT_IX)
120 #define TOP (1<<TOP_IX)
121 #define LEFT (1<<LEFT_IX)
122 
123 #define CCW -1 /* counter clock-wise */
124 #define CW 1 /* clock-wise */
125 
126 /* Obj types for renderers */
127 #define NONE 0
128 #define NODE 1
129 #define EDGE 2
130 #define CLST 3
131 
132 /* output languages */
133 #define HPGL 2 /* HP Graphics Language */
134 #define PCL 3 /* Printer Control Language */
135 #define MIF 4 /* Adobe FrameMaker */
136 #define PIC_format 5 /* symbol PIC is used by compilers for
137  Position Independent Code */
138 #define TK 15 /* TK canvas */
139 
140 #define VTX 21 /* visual thought */
141 #define METAPOST 22
142 #define DIA 24 /* dia drawing tool */
143 
144 #define QPDF 30 /* Quartz paged PDF */
145 #define QEPDF 31 /* Quartz embedded PDF */
146 
147 #define QBM_FIRST 100 /* first Quartz bitmap format, inclusive */
148 #define QBM_LAST 200 /* last Quartz bitmap format, exclusive */
149 
150 #define GVRENDER_PLUGIN 300 /* a plugin supported language */
151 #define NO_SUPPORT 999 /* no support */
152 
153 /* for clusters */
154 #define CL_BACK 10 /* cost of backward pointing edge */
155 #define CL_OFFSET 8 /* margin of cluster box in PS points */
156 #ifndef _WIN32
157 #define CL_CROSS 1000 /* cost of cluster skeleton edge crossing */
158 #else
159 #define CL_CROSS 100 /* avoid 16 bit overflow */
160 #endif
161 
162 /* edge types */
163 #define REGULAREDGE 1
164 #define FLATEDGE 2
165 #define SELFWPEDGE 4
166 #define SELFNPEDGE 8
167 #define SELFEDGE 8
168 #define EDGETYPEMASK 15 /* the OR of the above */
169 
170 /* for graph server */
171 #define SERVER_NN 200
172 #define SERVER_NE 500
173 
174 /* for neato */
175 #define Spring_coeff 1.0
176 #define MYHUGE (1.0e+37)
177 #define MAXDIM 10
178 
179 /* drawing phases */
180 #define GVBEGIN 0
181 #define GVSPLINES 1
182 
183 /* existence of labels */
184 #define EDGE_LABEL (1 << 0)
185 #define HEAD_LABEL (1 << 1)
186 #define TAIL_LABEL (1 << 2)
187 #define GRAPH_LABEL (1 << 3)
188 #define NODE_XLABEL (1 << 4)
189 #define EDGE_XLABEL (1 << 5)
190 
191 /* type of graph label: GD_label_pos */
192 #define LABEL_AT_BOTTOM 0
193 #define LABEL_AT_TOP 1
194 #define LABEL_AT_LEFT 2
195 #define LABEL_AT_RIGHT 4
196 
197 /* values specifying rankdir */
198 #define RANKDIR_TB 0
199 #define RANKDIR_LR 1
200 #define RANKDIR_BT 2
201 #define RANKDIR_RL 3
202 
203 /* allowed charsets */
204 #define CHAR_UTF8 0
205 #define CHAR_LATIN1 1
206 #define CHAR_BIG5 2
207 
208 /* style flags (0-23)*/
209 #define FILLED (1 << 0)
210 #define RADIAL (1 << 1)
211 #define ROUNDED (1 << 2)
212 #define DIAGONALS (1 << 3)
213 #define AUXLABELS (1 << 4)
214 #define INVISIBLE (1 << 5)
215 #define STRIPED (1 << 6)
216 #define DOTTED (1 << 7)
217 #define DASHED (1 << 8)
218 #define WEDGED (1 << 9)
219 #define UNDERLINE (1 << 10)
220 #define FIXEDSHAPE (1 << 11)
221 
222 #define SHAPE_MASK (127 << 24)
223 
224 /* shape (1-127) */
225 #define DOGEAR (1 << 24)
226 #define TAB (2 << 24)
227 #define FOLDER (3 << 24)
228 #define BOX3D (4 << 24)
229 #define COMPONENT (5 << 24)
230 #define PROMOTER (6 << 24)
231 #define CDS (7 << 24)
232 #define TERMINATOR (8 << 24)
233 #define UTR (9 << 24)
234 #define PRIMERSITE (10 << 24)
235 #define RESTRICTIONSITE (11 << 24)
236 #define FIVEPOVERHANG (12 << 24)
237 #define THREEPOVERHANG (13 << 24)
238 #define NOVERHANG (14 << 24)
239 #define ASSEMBLY (15 << 24)
240 #define SIGNATURE (16 << 24)
241 #define INSULATOR (17 << 24)
242 #define RIBOSITE (18 << 24)
243 #define RNASTAB (19 << 24)
244 #define PROTEASESITE (20 << 24)
245 #define PROTEINSTAB (21 << 24)
246 #define RPROMOTER (22 << 24)
247 #define RARROW (23 << 24)
248 #define LARROW (24 << 24)
249 #define LPROMOTER (25 << 24)
250 #define CYLINDER (26 << 24)
251 
252 /* fill types */
253 #define FILL 1
254 #define GRADIENT 2
255 #define RGRADIENT 3
256 #define NO_POLY 4 /* bit flag: if set, do fill only */
257 
258 /* label types */
259 #define LT_NONE (0 << 1)
260 #define LT_HTML (1 << 1)
261 #define LT_RECD (2 << 1)
262 
263 /* Flags stored in GD_flags
264  * Bit(s): 0 unused
265  * 1-3 ET_
266  * 4 NEW_RANK
267  */
268 
269 /* edge types */
270 #define ET_NONE (0 << 1)
271 #define ET_LINE (1 << 1)
272 #define ET_CURVED (2 << 1)
273 #define ET_PLINE (3 << 1)
274 #define ET_ORTHO (4 << 1)
275 #define ET_SPLINE (5 << 1)
276 #define ET_COMPOUND (6 << 1)
277 
278 /* New ranking is used */
279 #define NEW_RANK (1 << 4)
280 /******/
281 
282 /* user-specified node position: ND_pinned */
283 #define P_SET 1 /* position supplied by user */
284 #define P_FIX 2 /* position fixed during topological layout */
285 #define P_PIN 3 /* position fixed */
286 
287 #define GAP 4 /* whitespace in POINTS around labels and between peripheries */
288 
289 /* fontsize at which text is omitted entirely */
290 #define FONTSIZE_MUCH_TOO_SMALL 0.15
291 /* fontsize at which text is rendered by a simple line */
292 #define FONTSIZE_TOO_SMALL 1.5
293 
294 #endif