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