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