Graphviz
2.41.20171026.1811
Main Page
Data Structures
Files
File List
Globals
lib
common
types.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_TYPES_H
15
#define GV_TYPES_H
16
17
/* Define if you want CGRAPH */
18
#define WITH_CGRAPH 1
19
20
#include <stdio.h>
21
#include <assert.h>
22
#include <signal.h>
23
24
typedef
unsigned
char
boolean
;
25
#ifndef NOT
26
#define NOT(v) (!(v))
27
#endif
28
#ifndef FALSE
29
#define FALSE 0
30
#endif
31
#ifndef TRUE
32
#define TRUE NOT(FALSE)
33
#endif
34
35
#include "
geom.h
"
36
#include "
gvcext.h
"
37
#include "
pathgeom.h
"
38
#include "
textspan.h
"
39
#include "
cgraph.h
"
40
41
#ifdef __cplusplus
42
extern
"C"
{
43
#endif
44
45
typedef
int
(*
qsort_cmpf
) (
const
void
*,
const
void
*);
46
typedef
int
(*
bsearch_cmpf
) (
const
void
*,
const
void
*);
47
typedef
struct
Agraph_s
graph_t
;
48
typedef
struct
Agnode_s
node_t
;
49
typedef
struct
Agedge_s
edge_t
;
50
typedef
struct
Agsym_s
attrsym_t
;
51
#define TAIL_ID "tailport"
52
#define HEAD_ID "headport"
53
54
typedef
struct
htmllabel_t
htmllabel_t
;
55
56
typedef
union
inside_t
{
57
struct
{
58
pointf
*
p
;
59
double
*
r
;
60
}
a
;
61
struct
{
62
node_t
*
n
;
63
boxf
*
bp
;
64
}
s
;
65
}
inside_t
;
66
67
typedef
struct
port
{
/* internal edge endpoint specification */
68
pointf
p
;
/* aiming point relative to node center */
69
double
theta
;
/* slope in radians */
70
boxf
*
bp
;
/* if not null, points to bbox of
71
* rectangular area that is port target
72
*/
73
boolean
defined
;
/* if true, edge has port info at this end */
74
boolean
constrained
;
/* if true, constraints such as theta are set */
75
boolean
clip
;
/* if true, clip end to node/port shape */
76
boolean
dyna
;
/* if true, assign compass point dynamically */
77
unsigned
char
order
;
/* for mincross */
78
unsigned
char
side
;
/* if port is on perimeter of node, this
79
* contains the bitwise OR of the sides (TOP,
80
* BOTTOM, etc.) it is on.
81
*/
82
char
*
name
;
/* port name, if it was explicitly given, otherwise NULL */
83
}
port
;
84
85
typedef
struct
{
86
boolean
(*swapEnds) (
edge_t
* e);
/* Should head and tail be swapped? */
87
boolean
(*splineMerge) (
node_t
* n);
/* Is n a node in the middle of an edge? */
88
boolean
ignoreSwap
;
/* Test for swapped edges if false */
89
boolean
isOrtho
;
/* Orthogonal routing used */
90
}
splineInfo
;
91
92
typedef
struct
pathend_t
{
93
boxf
nb
;
/* the node box */
94
pointf
np
;
/* node port */
95
int
sidemask
;
96
int
boxn
;
97
boxf
boxes
[20];
98
}
pathend_t
;
99
100
typedef
struct
path
{
/* internal specification for an edge spline */
101
port
start
;
102
port
end
;
103
int
nbox
;
/* number of subdivisions */
104
boxf
*
boxes
;
/* rectangular regions of subdivision */
105
void
*
data
;
106
}
path
;
107
108
typedef
struct
bezier
{
109
pointf
*
list
;
110
int
size
;
111
int
sflag
;
112
int
eflag
;
113
pointf
sp
;
114
pointf
ep
;
115
}
bezier
;
116
117
typedef
struct
splines
{
118
bezier
*
list
;
119
int
size
;
120
boxf
bb
;
121
}
splines
;
122
123
typedef
struct
textlabel_t
{
124
char
*
text
;
125
char
*
fontname
;
126
char
*
fontcolor
;
127
int
charset
;
128
double
fontsize
;
129
pointf
dimen
;
/* the diagonal size of the label (estimated by layout) */
130
pointf
space
;
/* the diagonal size of the space for the label */
131
/* the rendered label is aligned in this box */
132
/* space does not include pad or margin */
133
pointf
pos
;
/* the center of the space for the label */
134
union
{
135
struct
{
136
textspan_t
*
span
;
137
short
nspans
;
138
}
txt
;
139
htmllabel_t
*
html
;
140
}
u
;
141
char
valign
;
/* 't' 'c' 'b' */
142
boolean
set
;
/* true if position is set */
143
boolean
html
;
/* true if html label */
144
}
textlabel_t
;
145
146
typedef
struct
polygon_t
{
/* mutable shape information for a node */
147
int
regular
;
/* true for symmetric shapes */
148
int
peripheries
;
/* number of periphery lines */
149
int
sides
;
/* number of sides */
150
double
orientation
;
/* orientation of shape (+ve degrees) */
151
double
distortion
;
/* distortion factor - as in trapezium */
152
double
skew
;
/* skew factor - as in parallelogram */
153
int
option
;
/* ROUNDED, DIAGONAL corners, etc. */
154
pointf
*
vertices
;
/* array of vertex points */
155
}
polygon_t
;
156
157
typedef
struct
stroke_t
{
/* information about a single stroke */
158
/* we would have called it a path if that term wasn't already used */
159
int
nvertices
;
/* number of points in the stroke */
160
int
flags
;
/* stroke style flags */
161
pointf
*
vertices
;
/* array of vertex points */
162
}
stroke_t
;
163
164
/* flag definitions for stroke_t */
165
#define STROKE_CLOSED (1 << 0)
166
#define STROKE_FILLED (1 << 1)
167
#define STROKE_PENDOWN (1 << 2)
168
#define STROKE_VERTICES_ALLOCATED (1 << 3)
169
170
typedef
struct
shape_t
{
/* mutable shape information for a node */
171
int
nstrokes
;
/* number of strokes in array */
172
stroke_t
*
strokes
;
/* array of strokes */
173
/* The last stroke must always be closed, but can be pen_up.
174
* It is used as the clipping path */
175
}
shape_t
;
176
177
typedef
struct
shape_functions
{
/* read-only shape functions */
178
void (*
initfn
) (
node_t
*);
/* initializes shape from node u.shape_info structure */
179
void (*
freefn
) (
node_t
*);
/* frees shape from node u.shape_info structure */
180
port
(*
portfn
) (
node_t
*,
char
*,
char
*);
/* finds aiming point and slope of port */
181
boolean
(*
insidefn
) (
inside_t
* inside_context,
pointf
);
/* clips incident gvc->e spline on shape of gvc->n */
182
int
(*
pboxfn
)(
node_t
* n,
port
* p,
int
side,
boxf
rv[],
int
*kptr);
/* finds box path to reach port */
183
void (*
codefn
) (
GVJ_t
* job,
node_t
* n);
/* emits graphics code for node */
184
}
shape_functions
;
185
186
typedef
enum
{
SH_UNSET
,
SH_POLY
,
SH_RECORD
,
SH_POINT
,
SH_EPSF
}
shape_kind
;
187
188
typedef
struct
shape_desc
{
/* read-only shape descriptor */
189
char
*
name
;
/* as read from graph file */
190
shape_functions
*
fns
;
191
polygon_t
*
polygon
;
/* base polygon info */
192
boolean
usershape
;
193
}
shape_desc
;
194
195
#include "
usershape.h
"
/* usershapes needed by gvc */
196
197
typedef
struct
nodequeue
{
198
node_t
**
store
;
199
node_t
**
limit
;
200
node_t
**
head
;
201
node_t
**
tail
;
202
}
nodequeue
;
203
204
typedef
struct
adjmatrix_t
{
205
int
nrows
;
206
int
ncols
;
207
char
*
data
;
208
}
adjmatrix_t
;
209
210
typedef
struct
rank_t
{
211
int
n
;
/* number of nodes in this rank */
212
node_t
**
v
;
/* ordered list of nodes in rank */
213
int
an
;
/* globally allocated number of nodes */
214
node_t
**
av
;
/* allocated list of nodes in rank */
215
double
ht1
;
/* height below/above centerline */
216
double
ht2
;
/* height below/above centerline */
217
double
pht1
;
/* as above, but only primitive nodes */
218
double
pht2
;
/* as above, but only primitive nodes */
219
boolean
candidate
;
/* for transpose () */
220
boolean
valid
;
221
int
cache_nc
;
/* caches number of crossings */
222
adjmatrix_t
*
flat
;
223
}
rank_t
;
224
225
typedef
enum
{
R_NONE
=
226
0,
R_VALUE
,
R_FILL
,
R_COMPRESS
,
R_AUTO
,
R_EXPAND
}
ratio_t
;
227
228
typedef
struct
layout_t
{
229
double
quantum
;
230
double
scale
;
231
double
ratio
;
/* set only if ratio_kind == R_VALUE */
232
double
dpi
;
233
pointf
margin
;
234
pointf
page
;
235
pointf
size
;
236
boolean
filled
;
237
boolean
landscape
;
238
boolean
centered
;
239
ratio_t
ratio_kind
;
240
void
*
xdots
;
241
char
*
id
;
242
}
layout_t
;
243
244
/* for "record" shapes */
245
typedef
struct
field_t
{
246
pointf
size
;
/* its dimension */
247
boxf
b
;
/* its placement in node's coordinates */
248
int
n_flds
;
249
textlabel_t
*
lp
;
/* n_flds == 0 */
250
struct
field_t
**
fld
;
/* n_flds > 0 */
251
char
*
id
;
/* user's identifier */
252
unsigned
char
LR
;
/* if box list is horizontal (left to right) */
253
unsigned
char
sides
;
/* sides of node exposed to field */
254
}
field_t
;
255
256
typedef
struct
nlist_t
{
257
node_t
**
list
;
258
int
size
;
259
}
nlist_t
;
260
261
typedef
struct
elist
{
262
edge_t
**
list
;
263
int
size
;
264
}
elist
;
265
266
#define GUI_STATE_ACTIVE (1<<0)
267
#define GUI_STATE_SELECTED (1<<1)
268
#define GUI_STATE_VISITED (1<<2)
269
#define GUI_STATE_DELETED (1<<3)
270
271
#define elist_fastapp(item,L) do {L.list[L.size++] = item; L.list[L.size] = NULL;} while(0)
272
#define elist_append(item,L) do {L.list = ALLOC(L.size + 2,L.list,edge_t*); L.list[L.size++] = item; L.list[L.size] = NULL;} while(0)
273
#define alloc_elist(n,L) do {L.size = 0; L.list = N_NEW(n + 1,edge_t*); } while (0)
274
#define free_list(L) do {if (L.list) free(L.list);} while (0)
275
276
typedef
enum
{
NATIVEFONTS
,
PSFONTS
,
SVGFONTS
}
fontname_kind
;
277
278
typedef
struct
Agraphinfo_t
{
279
Agrec_t
hdr
;
280
/* to generate code */
281
layout_t
*
drawing
;
282
textlabel_t
*
label
;
/* if the cluster has a title */
283
boxf
bb
;
/* bounding box */
284
pointf
border
[4];
/* sizes of margins for graph labels */
285
unsigned
char
gui_state
;
/* Graph state for GUI ops */
286
unsigned
char
has_labels
;
287
boolean
has_images
;
288
unsigned
char
charset
;
/* input character set */
289
int
rankdir
;
290
double
ht1
;
/* below and above extremal ranks */
291
double
ht2
;
/* below and above extremal ranks */
292
unsigned
short
flags
;
293
void
*
alg
;
294
GVC_t
*
gvc
;
/* context for "globals" over multiple graphs */
295
void (*
cleanup
) (
graph_t
* g);
/* function to deallocate layout-specific data */
296
297
#ifndef DOT_ONLY
298
/* to place nodes */
299
node_t
**
neato_nlist
;
300
int
move
;
301
double
**
dist
;
302
double
**
spring
;
303
double
**
sum_t
;
304
double
***
t
;
305
unsigned
short
ndim
;
306
unsigned
short
odim
;
307
#endif
308
#ifndef NEATO_ONLY
309
/* to have subgraphs */
310
int
n_cluster
;
311
graph_t
**
clust
;
/* clusters are in clust[1..n_cluster] !!! */
312
graph_t
*
dotroot
;
313
node_t
*
nlist
;
314
rank_t
*
rank
;
315
graph_t
*
parent
;
/* containing cluster (not parent subgraph) */
316
int
level
;
/* cluster nesting level (not node level!) */
317
node_t
*
minrep
;
/* set leaders for min and max rank */
318
node_t
*
maxrep
;
/* set leaders for min and max rank */
319
320
/* fast graph node list */
321
nlist_t
comp
;
322
/* connected components */
323
node_t
*
minset
;
/* set leaders */
324
node_t
*
maxset
;
/* set leaders */
325
long
n_nodes
;
326
/* includes virtual */
327
short
minrank
;
328
short
maxrank
;
329
330
/* various flags */
331
boolean
has_flat_edges
;
332
boolean
has_sourcerank
;
333
boolean
has_sinkrank
;
334
unsigned
char
showboxes
;
335
fontname_kind
fontnames
;
/* to override mangling in SVG */
336
337
int
nodesep
;
338
int
ranksep
;
339
node_t
*
ln
;
/* left nodes of bounding box */
340
node_t
*
rn
;
/* right nodes of bounding box */
341
342
/* for clusters */
343
node_t
*
leader
;
344
node_t
**
rankleader
;
345
boolean
expanded
;
346
char
installed
;
347
char
set_type
;
348
char
label_pos
;
349
boolean
exact_ranksep
;
350
#endif
351
352
}
Agraphinfo_t
;
353
354
#define GD_parent(g) (((Agraphinfo_t*)AGDATA(g))->parent)
355
#define GD_level(g) (((Agraphinfo_t*)AGDATA(g))->level)
356
#define GD_drawing(g) (((Agraphinfo_t*)AGDATA(g))->drawing)
357
#define GD_bb(g) (((Agraphinfo_t*)AGDATA(g))->bb)
358
#define GD_gvc(g) (((Agraphinfo_t*)AGDATA(g))->gvc)
359
#define GD_cleanup(g) (((Agraphinfo_t*)AGDATA(g))->cleanup)
360
#define GD_dist(g) (((Agraphinfo_t*)AGDATA(g))->dist)
361
#define GD_alg(g) (((Agraphinfo_t*)AGDATA(g))->alg)
362
#define GD_border(g) (((Agraphinfo_t*)AGDATA(g))->border)
363
#define GD_cl_cnt(g) (((Agraphinfo_t*)AGDATA(g))->cl_nt)
364
#define GD_clust(g) (((Agraphinfo_t*)AGDATA(g))->clust)
365
#define GD_dotroot(g) (((Agraphinfo_t*)AGDATA(g))->dotroot)
366
#define GD_comp(g) (((Agraphinfo_t*)AGDATA(g))->comp)
367
#define GD_exact_ranksep(g) (((Agraphinfo_t*)AGDATA(g))->exact_ranksep)
368
#define GD_expanded(g) (((Agraphinfo_t*)AGDATA(g))->expanded)
369
#define GD_flags(g) (((Agraphinfo_t*)AGDATA(g))->flags)
370
#define GD_gui_state(g) (((Agraphinfo_t*)AGDATA(g))->gui_state)
371
#define GD_charset(g) (((Agraphinfo_t*)AGDATA(g))->charset)
372
#define GD_has_labels(g) (((Agraphinfo_t*)AGDATA(g))->has_labels)
373
#define GD_has_images(g) (((Agraphinfo_t*)AGDATA(g))->has_images)
374
#define GD_has_flat_edges(g) (((Agraphinfo_t*)AGDATA(g))->has_flat_edges)
375
#define GD_has_sourcerank(g) (((Agraphinfo_t*)AGDATA(g))->has_sourcerank)
376
#define GD_has_sinkrank(g) (((Agraphinfo_t*)AGDATA(g))->has_sinkrank)
377
#define GD_ht1(g) (((Agraphinfo_t*)AGDATA(g))->ht1)
378
#define GD_ht2(g) (((Agraphinfo_t*)AGDATA(g))->ht2)
379
#define GD_inleaf(g) (((Agraphinfo_t*)AGDATA(g))->inleaf)
380
#define GD_installed(g) (((Agraphinfo_t*)AGDATA(g))->installed)
381
#define GD_label(g) (((Agraphinfo_t*)AGDATA(g))->label)
382
#define GD_leader(g) (((Agraphinfo_t*)AGDATA(g))->leader)
383
#define GD_rankdir2(g) (((Agraphinfo_t*)AGDATA(g))->rankdir)
384
#define GD_rankdir(g) (((Agraphinfo_t*)AGDATA(g))->rankdir & 0x3)
385
#define GD_flip(g) (GD_rankdir(g) & 1)
386
#define GD_realrankdir(g) ((((Agraphinfo_t*)AGDATA(g))->rankdir) >> 2)
387
#define GD_realflip(g) (GD_realrankdir(g) & 1)
388
#define GD_ln(g) (((Agraphinfo_t*)AGDATA(g))->ln)
389
#define GD_maxrank(g) (((Agraphinfo_t*)AGDATA(g))->maxrank)
390
#define GD_maxset(g) (((Agraphinfo_t*)AGDATA(g))->maxset)
391
#define GD_minrank(g) (((Agraphinfo_t*)AGDATA(g))->minrank)
392
#define GD_minset(g) (((Agraphinfo_t*)AGDATA(g))->minset)
393
#define GD_minrep(g) (((Agraphinfo_t*)AGDATA(g))->minrep)
394
#define GD_maxrep(g) (((Agraphinfo_t*)AGDATA(g))->maxrep)
395
#define GD_move(g) (((Agraphinfo_t*)AGDATA(g))->move)
396
#define GD_n_cluster(g) (((Agraphinfo_t*)AGDATA(g))->n_cluster)
397
#define GD_n_nodes(g) (((Agraphinfo_t*)AGDATA(g))->n_nodes)
398
#define GD_ndim(g) (((Agraphinfo_t*)AGDATA(g))->ndim)
399
#define GD_odim(g) (((Agraphinfo_t*)AGDATA(g))->odim)
400
#define GD_neato_nlist(g) (((Agraphinfo_t*)AGDATA(g))->neato_nlist)
401
#define GD_nlist(g) (((Agraphinfo_t*)AGDATA(g))->nlist)
402
#define GD_nodesep(g) (((Agraphinfo_t*)AGDATA(g))->nodesep)
403
#define GD_outleaf(g) (((Agraphinfo_t*)AGDATA(g))->outleaf)
404
#define GD_rank(g) (((Agraphinfo_t*)AGDATA(g))->rank)
405
#define GD_rankleader(g) (((Agraphinfo_t*)AGDATA(g))->rankleader)
406
#define GD_ranksep(g) (((Agraphinfo_t*)AGDATA(g))->ranksep)
407
#define GD_rn(g) (((Agraphinfo_t*)AGDATA(g))->rn)
408
#define GD_set_type(g) (((Agraphinfo_t*)AGDATA(g))->set_type)
409
#define GD_label_pos(g) (((Agraphinfo_t*)AGDATA(g))->label_pos)
410
#define GD_showboxes(g) (((Agraphinfo_t*)AGDATA(g))->showboxes)
411
#define GD_fontnames(g) (((Agraphinfo_t*)AGDATA(g))->fontnames)
412
#define GD_spring(g) (((Agraphinfo_t*)AGDATA(g))->spring)
413
#define GD_sum_t(g) (((Agraphinfo_t*)AGDATA(g))->sum_t)
414
#define GD_t(g) (((Agraphinfo_t*)AGDATA(g))->t)
415
416
typedef
struct
Agnodeinfo_t
{
417
Agrec_t
hdr
;
418
shape_desc
*
shape
;
419
void
*
shape_info
;
420
pointf
coord
;
421
double
width
;
/* inches */
422
double
height
;
/* inches */
423
boxf
bb
;
424
double
ht
;
425
double
lw
;
426
double
rw
;
427
textlabel_t
*
label
;
428
textlabel_t
*
xlabel
;
429
void
*
alg
;
430
char
state
;
431
unsigned
char
gui_state
;
/* Node state for GUI ops */
432
boolean
clustnode
;
433
434
#ifndef DOT_ONLY
435
unsigned
char
pinned
;
436
int
id
;
437
int
heapindex
;
438
int
hops
;
439
double
*
pos
;
440
double
dist
;
441
#endif
442
#ifndef NEATO_ONLY
443
unsigned
char
showboxes
;
444
boolean
has_port
;
445
node_t
*
rep
;
446
node_t
*
set
;
447
448
/* fast graph */
449
char
node_type
;
450
char
mark
;
451
char
onstack
;
452
char
ranktype
;
453
char
weight_class
;
454
node_t
*
next
;
455
node_t
*
prev
;
456
elist
in
;
457
elist
out
;
458
elist
flat_out
;
459
elist
flat_in
;
460
elist
other
;
461
graph_t
*
clust
;
462
463
/* for union-find and collapsing nodes */
464
int
UF_size
;
465
node_t
*
UF_parent
;
466
node_t
*
inleaf
;
467
node_t
*
outleaf
;
468
469
/* for placing nodes */
470
int
rank
;
471
int
order
;
/* initially, order = 1 for ordered edges */
472
double
mval
;
473
elist
save_in
;
474
elist
save_out
;
475
476
/* for network-simplex */
477
elist
tree_in
;
478
elist
tree_out
;
479
edge_t
*
par
;
480
int
low
;
481
int
lim
;
482
int
priority
;
483
484
double
pad
[1];
485
#endif
486
487
}
Agnodeinfo_t
;
488
489
#define ND_id(n) (((Agnodeinfo_t*)AGDATA(n))->id)
490
#define ND_alg(n) (((Agnodeinfo_t*)AGDATA(n))->alg)
491
#define ND_UF_parent(n) (((Agnodeinfo_t*)AGDATA(n))->UF_parent)
492
#define ND_set(n) (((Agnodeinfo_t*)AGDATA(n))->set)
493
#define ND_UF_size(n) (((Agnodeinfo_t*)AGDATA(n))->UF_size)
494
#define ND_bb(n) (((Agnodeinfo_t*)AGDATA(n))->bb)
495
#define ND_clust(n) (((Agnodeinfo_t*)AGDATA(n))->clust)
496
#define ND_coord(n) (((Agnodeinfo_t*)AGDATA(n))->coord)
497
#define ND_dist(n) (((Agnodeinfo_t*)AGDATA(n))->dist)
498
#define ND_flat_in(n) (((Agnodeinfo_t*)AGDATA(n))->flat_in)
499
#define ND_flat_out(n) (((Agnodeinfo_t*)AGDATA(n))->flat_out)
500
#define ND_gui_state(n) (((Agnodeinfo_t*)AGDATA(n))->gui_state)
501
#define ND_has_port(n) (((Agnodeinfo_t*)AGDATA(n))->has_port)
502
#define ND_rep(n) (((Agnodeinfo_t*)AGDATA(n))->rep)
503
#define ND_heapindex(n) (((Agnodeinfo_t*)AGDATA(n))->heapindex)
504
#define ND_height(n) (((Agnodeinfo_t*)AGDATA(n))->height)
505
#define ND_hops(n) (((Agnodeinfo_t*)AGDATA(n))->hops)
506
#define ND_ht(n) (((Agnodeinfo_t*)AGDATA(n))->ht)
507
#define ND_in(n) (((Agnodeinfo_t*)AGDATA(n))->in)
508
#define ND_inleaf(n) (((Agnodeinfo_t*)AGDATA(n))->inleaf)
509
#define ND_label(n) (((Agnodeinfo_t*)AGDATA(n))->label)
510
#define ND_xlabel(n) (((Agnodeinfo_t*)AGDATA(n))->xlabel)
511
#define ND_lim(n) (((Agnodeinfo_t*)AGDATA(n))->lim)
512
#define ND_low(n) (((Agnodeinfo_t*)AGDATA(n))->low)
513
#define ND_lw(n) (((Agnodeinfo_t*)AGDATA(n))->lw)
514
#define ND_mark(n) (((Agnodeinfo_t*)AGDATA(n))->mark)
515
#define ND_mval(n) (((Agnodeinfo_t*)AGDATA(n))->mval)
516
#define ND_n_cluster(n) (((Agnodeinfo_t*)AGDATA(n))->n_cluster)
517
#define ND_next(n) (((Agnodeinfo_t*)AGDATA(n))->next)
518
#define ND_node_type(n) (((Agnodeinfo_t*)AGDATA(n))->node_type)
519
#define ND_onstack(n) (((Agnodeinfo_t*)AGDATA(n))->onstack)
520
#define ND_order(n) (((Agnodeinfo_t*)AGDATA(n))->order)
521
#define ND_other(n) (((Agnodeinfo_t*)AGDATA(n))->other)
522
#define ND_out(n) (((Agnodeinfo_t*)AGDATA(n))->out)
523
#define ND_outleaf(n) (((Agnodeinfo_t*)AGDATA(n))->outleaf)
524
#define ND_par(n) (((Agnodeinfo_t*)AGDATA(n))->par)
525
#define ND_pinned(n) (((Agnodeinfo_t*)AGDATA(n))->pinned)
526
#define ND_pos(n) (((Agnodeinfo_t*)AGDATA(n))->pos)
527
#define ND_prev(n) (((Agnodeinfo_t*)AGDATA(n))->prev)
528
#define ND_priority(n) (((Agnodeinfo_t*)AGDATA(n))->priority)
529
#define ND_rank(n) (((Agnodeinfo_t*)AGDATA(n))->rank)
530
#define ND_ranktype(n) (((Agnodeinfo_t*)AGDATA(n))->ranktype)
531
#define ND_rw(n) (((Agnodeinfo_t*)AGDATA(n))->rw)
532
#define ND_save_in(n) (((Agnodeinfo_t*)AGDATA(n))->save_in)
533
#define ND_save_out(n) (((Agnodeinfo_t*)AGDATA(n))->save_out)
534
#define ND_shape(n) (((Agnodeinfo_t*)AGDATA(n))->shape)
535
#define ND_shape_info(n) (((Agnodeinfo_t*)AGDATA(n))->shape_info)
536
#define ND_showboxes(n) (((Agnodeinfo_t*)AGDATA(n))->showboxes)
537
#define ND_state(n) (((Agnodeinfo_t*)AGDATA(n))->state)
538
#define ND_clustnode(n) (((Agnodeinfo_t*)AGDATA(n))->clustnode)
539
#define ND_tree_in(n) (((Agnodeinfo_t*)AGDATA(n))->tree_in)
540
#define ND_tree_out(n) (((Agnodeinfo_t*)AGDATA(n))->tree_out)
541
#define ND_weight_class(n) (((Agnodeinfo_t*)AGDATA(n))->weight_class)
542
#define ND_width(n) (((Agnodeinfo_t*)AGDATA(n))->width)
543
#define ND_xsize(n) (ND_lw(n)+ND_rw(n))
544
#define ND_ysize(n) (ND_ht(n))
545
546
typedef
struct
Agedgeinfo_t
{
547
Agrec_t
hdr
;
548
splines
*
spl
;
549
port
tail_port
;
550
port
head_port
;
551
textlabel_t
*
label
;
552
textlabel_t
*
head_label
;
553
textlabel_t
*
tail_label
;
554
textlabel_t
*
xlabel
;
555
char
edge_type
;
556
char
compound
;
557
char
adjacent
;
/* true for flat edge with adjacent nodes */
558
char
label_ontop
;
559
unsigned
char
gui_state
;
/* Edge state for GUI ops */
560
edge_t
*
to_orig
;
/* for dot's shapes.c */
561
void
*
alg
;
562
563
#ifndef DOT_ONLY
564
double
factor
;
565
double
dist
;
566
Ppolyline_t
path
;
567
#endif
568
#ifndef NEATO_ONLY
569
unsigned
char
showboxes
;
570
boolean
conc_opp_flag
;
571
short
xpenalty
;
572
int
weight
;
573
int
cutvalue
;
574
int
tree_index
;
575
short
count
;
576
unsigned
short
minlen
;
577
edge_t
*
to_virt
;
578
#endif
579
}
Agedgeinfo_t
;
580
581
#define ED_alg(e) (((Agedgeinfo_t*)AGDATA(e))->alg)
582
#define ED_conc_opp_flag(e) (((Agedgeinfo_t*)AGDATA(e))->conc_opp_flag)
583
#define ED_count(e) (((Agedgeinfo_t*)AGDATA(e))->count)
584
#define ED_cutvalue(e) (((Agedgeinfo_t*)AGDATA(e))->cutvalue)
585
#define ED_edge_type(e) (((Agedgeinfo_t*)AGDATA(e))->edge_type)
586
#define ED_compound(e) (((Agedgeinfo_t*)AGDATA(e))->compound)
587
#define ED_adjacent(e) (((Agedgeinfo_t*)AGDATA(e))->adjacent)
588
#define ED_factor(e) (((Agedgeinfo_t*)AGDATA(e))->factor)
589
#define ED_gui_state(e) (((Agedgeinfo_t*)AGDATA(e))->gui_state)
590
#define ED_head_label(e) (((Agedgeinfo_t*)AGDATA(e))->head_label)
591
#define ED_head_port(e) (((Agedgeinfo_t*)AGDATA(e))->head_port)
592
#define ED_label(e) (((Agedgeinfo_t*)AGDATA(e))->label)
593
#define ED_xlabel(e) (((Agedgeinfo_t*)AGDATA(e))->xlabel)
594
#define ED_label_ontop(e) (((Agedgeinfo_t*)AGDATA(e))->label_ontop)
595
#define ED_minlen(e) (((Agedgeinfo_t*)AGDATA(e))->minlen)
596
#define ED_path(e) (((Agedgeinfo_t*)AGDATA(e))->path)
597
#define ED_showboxes(e) (((Agedgeinfo_t*)AGDATA(e))->showboxes)
598
#define ED_spl(e) (((Agedgeinfo_t*)AGDATA(e))->spl)
599
#define ED_tail_label(e) (((Agedgeinfo_t*)AGDATA(e))->tail_label)
600
#define ED_tail_port(e) (((Agedgeinfo_t*)AGDATA(e))->tail_port)
601
#define ED_to_orig(e) (((Agedgeinfo_t*)AGDATA(e))->to_orig)
602
#define ED_to_virt(e) (((Agedgeinfo_t*)AGDATA(e))->to_virt)
603
#define ED_tree_index(e) (((Agedgeinfo_t*)AGDATA(e))->tree_index)
604
#define ED_xpenalty(e) (((Agedgeinfo_t*)AGDATA(e))->xpenalty)
605
#define ED_dist(e) (((Agedgeinfo_t*)AGDATA(e))->dist)
606
#define ED_weight(e) (((Agedgeinfo_t*)AGDATA(e))->weight)
607
608
#define ag_xget(x,a) agxget(x,a)
609
#define SET_RANKDIR(g,rd) (GD_rankdir2(g) = rd)
610
#define agfindedge(g,t,h) (agedge(g,t,h,NULL,0))
611
#define agfindnode(g,n) (agnode(g,n,0))
612
#define agfindgraphattr(g,a) (agattr(g,AGRAPH,a,NULL))
613
#define agfindnodeattr(g,a) (agattr(g,AGNODE,a,NULL))
614
#define agfindedgeattr(g,a) (agattr(g,AGEDGE,a,NULL))
615
616
typedef
struct
{
617
int
flags
;
618
}
gvlayout_features_t
;
619
620
#ifdef __cplusplus
621
}
622
#endif
623
#endif
Agedgeinfo_t::tree_index
int tree_index
Definition:
types.h:574
path::data
void * data
Definition:
types.h:105
rank_t::pht1
double pht1
Definition:
types.h:217
Agedgeinfo_t::factor
double factor
Definition:
types.h:564
polygon_t::skew
double skew
Definition:
types.h:152
path::start
port start
Definition:
types.h:101
pathend_t::sidemask
int sidemask
Definition:
types.h:95
Agnodeinfo_t::gui_state
unsigned char gui_state
Definition:
types.h:431
Agedgeinfo_t::label
textlabel_t * label
Definition:
types.h:551
Agnodeinfo_t::save_out
elist save_out
Definition:
types.h:474
port
Definition:
types.h:67
geom.h
bezier::eflag
int eflag
Definition:
types.h:112
Agraphinfo_t::drawing
layout_t * drawing
Definition:
types.h:281
textlabel_t
Definition:
types.h:123
pathend_t::nb
boxf nb
Definition:
types.h:93
layout_t
struct layout_t layout_t
Agnodeinfo_t::prev
node_t * prev
Definition:
types.h:455
bezier::size
int size
Definition:
types.h:110
polygon_t::option
int option
Definition:
types.h:153
Agraphinfo_t::ht1
double ht1
Definition:
types.h:290
rank_t::ht1
double ht1
Definition:
types.h:215
Agedgeinfo_t::showboxes
unsigned char showboxes
Definition:
types.h:569
textlabel_t::html
htmllabel_t * html
Definition:
types.h:139
pathend_t::np
pointf np
Definition:
types.h:94
R_COMPRESS
Definition:
types.h:226
textlabel_t::set
boolean set
Definition:
types.h:142
port::clip
boolean clip
Definition:
types.h:75
Agnodeinfo_t::onstack
char onstack
Definition:
types.h:451
Agedgeinfo_t::conc_opp_flag
boolean conc_opp_flag
Definition:
types.h:570
Agraphinfo_t::sum_t
double ** sum_t
Definition:
types.h:303
shape_t::nstrokes
int nstrokes
Definition:
types.h:171
nodequeue::store
node_t ** store
Definition:
types.h:198
boolean
unsigned char boolean
Definition:
types.h:24
Agnodeinfo_t::showboxes
unsigned char showboxes
Definition:
types.h:443
field_t::size
pointf size
Definition:
types.h:246
field_t
Definition:
types.h:245
Agraphinfo_t::has_flat_edges
boolean has_flat_edges
Definition:
types.h:331
Agraphinfo_t::clust
graph_t ** clust
Definition:
types.h:311
polygon_t::distortion
double distortion
Definition:
types.h:151
Agnodeinfo_t::hops
int hops
Definition:
types.h:438
shape_desc::fns
shape_functions * fns
Definition:
types.h:190
Agedgeinfo_t::to_orig
edge_t * to_orig
Definition:
types.h:560
layout_t::id
char * id
Definition:
types.h:241
Agraphinfo_t::border
pointf border[4]
Definition:
types.h:284
shape_t::strokes
stroke_t * strokes
Definition:
types.h:172
Agraphinfo_t::ranksep
int ranksep
Definition:
types.h:338
field_t::LR
unsigned char LR
Definition:
types.h:252
Agraphinfo_t
Definition:
types.h:278
Agnodeinfo_t::has_port
boolean has_port
Definition:
types.h:444
splines
Definition:
types.h:117
Agraphinfo_t::exact_ranksep
boolean exact_ranksep
Definition:
types.h:349
Agedgeinfo_t::count
short count
Definition:
types.h:575
Agnodeinfo_t::width
double width
Definition:
types.h:421
Agraphinfo_t::n_nodes
long n_nodes
Definition:
types.h:325
Agedgeinfo_t::tail_label
textlabel_t * tail_label
Definition:
types.h:553
Agnodeinfo_t::ranktype
char ranktype
Definition:
types.h:452
Agraphinfo_t::has_images
boolean has_images
Definition:
types.h:287
splines::size
int size
Definition:
types.h:119
stroke_t
Definition:
types.h:157
Agnodeinfo_t::heapindex
int heapindex
Definition:
types.h:437
nodequeue
struct nodequeue nodequeue
nodequeue::head
node_t ** head
Definition:
types.h:200
pointf_s
Definition:
geom.h:28
textlabel_t::text
char * text
Definition:
types.h:124
Agnodeinfo_t::tree_in
elist tree_in
Definition:
types.h:477
rank_t::valid
boolean valid
Definition:
types.h:220
textlabel_t::fontcolor
char * fontcolor
Definition:
types.h:126
bsearch_cmpf
int(* bsearch_cmpf)(const void *, const void *)
Definition:
types.h:46
Agraphinfo_t::rankdir
int rankdir
Definition:
types.h:289
port::bp
boxf * bp
Definition:
types.h:70
field_t::fld
struct field_t ** fld
Definition:
types.h:250
gvlayout_features_t
Definition:
types.h:616
Agnodeinfo_t::hdr
Agrec_t hdr
Definition:
types.h:417
SVGFONTS
Definition:
types.h:276
Agnodeinfo_t::weight_class
char weight_class
Definition:
types.h:453
Agnodeinfo_t::lim
int lim
Definition:
types.h:481
Agnodeinfo_t::outleaf
node_t * outleaf
Definition:
types.h:467
textlabel_t::html
boolean html
Definition:
types.h:143
shape_desc::name
char * name
Definition:
types.h:189
Agnodeinfo_t::ht
double ht
Definition:
types.h:424
shape_functions::codefn
void(* codefn)(GVJ_t *job, node_t *n)
Definition:
types.h:183
Agnodeinfo_t::label
textlabel_t * label
Definition:
types.h:427
Agedgeinfo_t::alg
void * alg
Definition:
types.h:561
splines
struct splines splines
Agedgeinfo_t::to_virt
edge_t * to_virt
Definition:
types.h:577
Agraphinfo_t::installed
char installed
Definition:
types.h:346
nlist_t::list
node_t ** list
Definition:
types.h:257
rank_t::pht2
double pht2
Definition:
types.h:218
layout_t::ratio
double ratio
Definition:
types.h:231
shape_functions::insidefn
boolean(* insidefn)(inside_t *inside_context, pointf)
Definition:
types.h:181
port::side
unsigned char side
Definition:
types.h:78
R_VALUE
Definition:
types.h:226
shape_t
Definition:
types.h:170
Agraphinfo_t::minrep
node_t * minrep
Definition:
types.h:317
Agraph_s
Definition:
cgraph.h:239
Agraphinfo_t::label
textlabel_t * label
Definition:
types.h:282
textlabel_t::fontsize
double fontsize
Definition:
types.h:128
Agraphinfo_t::has_sinkrank
boolean has_sinkrank
Definition:
types.h:333
Agraphinfo_t::nodesep
int nodesep
Definition:
types.h:337
Agnodeinfo_t::next
node_t * next
Definition:
types.h:454
port::constrained
boolean constrained
Definition:
types.h:74
field_t::b
boxf b
Definition:
types.h:247
Agraphinfo_t::bb
boxf bb
Definition:
types.h:283
textlabel_t::span
textspan_t * span
Definition:
types.h:136
field_t
struct field_t field_t
Agnodeinfo_t::rw
double rw
Definition:
types.h:426
Agedgeinfo_t::xlabel
textlabel_t * xlabel
Definition:
types.h:554
GVJ_s
Definition:
gvcjob.h:271
Agedgeinfo_t::tail_port
port tail_port
Definition:
types.h:549
Agnodeinfo_t::bb
boxf bb
Definition:
types.h:423
splines::list
bezier * list
Definition:
types.h:118
layout_t::filled
boolean filled
Definition:
types.h:236
htmllabel_t
Definition:
htmltable.h:122
adjmatrix_t::ncols
int ncols
Definition:
types.h:206
polygon_t::orientation
double orientation
Definition:
types.h:150
layout_t::centered
boolean centered
Definition:
types.h:238
adjmatrix_t
struct adjmatrix_t adjmatrix_t
NATIVEFONTS
Definition:
types.h:276
inside_t::a
struct inside_t::@18 a
path::boxes
boxf * boxes
Definition:
types.h:104
Agnodeinfo_t::dist
double dist
Definition:
types.h:440
Agnodeinfo_t::inleaf
node_t * inleaf
Definition:
types.h:466
Agraphinfo_t::odim
unsigned short odim
Definition:
types.h:306
Agraphinfo_t::rn
node_t * rn
Definition:
types.h:340
stroke_t::vertices
pointf * vertices
Definition:
types.h:161
Agnodeinfo_t::tree_out
elist tree_out
Definition:
types.h:478
shape_kind
shape_kind
Definition:
types.h:186
Agnodeinfo_t::pos
double * pos
Definition:
types.h:439
Agraphinfo_t::move
int move
Definition:
types.h:300
Agraphinfo_t::expanded
boolean expanded
Definition:
types.h:345
path
struct path path
textlabel_t::txt
struct textlabel_t::@20::@21 txt
Agnodeinfo_t::out
elist out
Definition:
types.h:457
nlist_t
struct nlist_t nlist_t
splineInfo::ignoreSwap
boolean ignoreSwap
Definition:
types.h:88
Agedgeinfo_t::xpenalty
short xpenalty
Definition:
types.h:571
Agraphinfo_t::comp
nlist_t comp
Definition:
types.h:321
rank_t
struct rank_t rank_t
Agnodeinfo_t::order
int order
Definition:
types.h:471
rank_t::an
int an
Definition:
types.h:213
adjmatrix_t::data
char * data
Definition:
types.h:207
nodequeue
Definition:
types.h:197
Agraphinfo_t::level
int level
Definition:
types.h:316
Agnodeinfo_t::lw
double lw
Definition:
types.h:425
PSFONTS
Definition:
types.h:276
Agraphinfo_t::maxrank
short maxrank
Definition:
types.h:328
port::order
unsigned char order
Definition:
types.h:77
Agraphinfo_t::maxset
node_t * maxset
Definition:
types.h:324
Agraphinfo_t::rankleader
node_t ** rankleader
Definition:
types.h:344
textlabel_t::charset
int charset
Definition:
types.h:127
textlabel_t::pos
pointf pos
Definition:
types.h:133
elist
Definition:
types.h:261
int
int
Definition:
grammar.c:1264
Agedge_s
Definition:
cgraph.h:139
SH_RECORD
Definition:
types.h:186
Agedgeinfo_t::head_label
textlabel_t * head_label
Definition:
types.h:552
Agnodeinfo_t::set
node_t * set
Definition:
types.h:446
R_AUTO
Definition:
types.h:226
fontname_kind
fontname_kind
Definition:
types.h:276
Agnodeinfo_t::par
edge_t * par
Definition:
types.h:479
Agnodeinfo_t::flat_out
elist flat_out
Definition:
types.h:458
Agnodeinfo_t::other
elist other
Definition:
types.h:460
shape_desc
Definition:
types.h:188
bezier::sflag
int sflag
Definition:
types.h:111
Agnodeinfo_t::height
double height
Definition:
types.h:422
GVC_s
Definition:
gvcint.h:70
SH_EPSF
Definition:
types.h:186
rank_t::av
node_t ** av
Definition:
types.h:214
Agraphinfo_t::minrank
short minrank
Definition:
types.h:327
Agraphinfo_t::minset
node_t * minset
Definition:
types.h:323
rank_t::n
int n
Definition:
types.h:211
R_NONE
Definition:
types.h:225
splineInfo::isOrtho
boolean isOrtho
Definition:
types.h:89
textspan.h
Agraphinfo_t::nlist
node_t * nlist
Definition:
types.h:313
Agsym_s
Definition:
cgraph.h:324
Agraphinfo_t::gvc
GVC_t * gvc
Definition:
types.h:294
ratio_t
ratio_t
Definition:
types.h:225
polygon_t
struct polygon_t polygon_t
bezier::sp
pointf sp
Definition:
types.h:113
pathend_t::boxn
int boxn
Definition:
types.h:96
Agnodeinfo_t::shape_info
void * shape_info
Definition:
types.h:419
Agnodeinfo_t::id
int id
Definition:
types.h:436
Agnodeinfo_t::mark
char mark
Definition:
types.h:450
field_t::n_flds
int n_flds
Definition:
types.h:248
qsort_cmpf
int(* qsort_cmpf)(const void *, const void *)
Definition:
types.h:45
Agnode_s
Definition:
cgraph.h:133
Agnodeinfo_t::mval
double mval
Definition:
types.h:472
Agedgeinfo_t::adjacent
char adjacent
Definition:
types.h:557
elist
struct elist elist
textlabel_t::valign
char valign
Definition:
types.h:141
Agraphinfo_t::t
double *** t
Definition:
types.h:304
rank_t::cache_nc
int cache_nc
Definition:
types.h:221
layout_t::scale
double scale
Definition:
types.h:230
rank_t::ht2
double ht2
Definition:
types.h:216
Agedgeinfo_t::edge_type
char edge_type
Definition:
types.h:555
elist::list
edge_t ** list
Definition:
types.h:262
polygon_t::sides
int sides
Definition:
types.h:149
bezier::list
pointf * list
Definition:
types.h:109
Agedgeinfo_t::hdr
Agrec_t hdr
Definition:
types.h:547
field_t::lp
textlabel_t * lp
Definition:
types.h:249
Agedgeinfo_t::label_ontop
char label_ontop
Definition:
types.h:558
pointf
struct pointf_s pointf
textlabel_t::dimen
pointf dimen
Definition:
types.h:129
Agraphinfo_t::spring
double ** spring
Definition:
types.h:302
Agraphinfo_t::rank
rank_t * rank
Definition:
types.h:314
pathend_t::boxes
boxf boxes[20]
Definition:
types.h:97
Agrec_s
Definition:
cgraph.h:83
layout_t::xdots
void * xdots
Definition:
types.h:240
port::theta
double theta
Definition:
types.h:69
Agraphinfo_t::showboxes
unsigned char showboxes
Definition:
types.h:334
stroke_t::flags
int flags
Definition:
types.h:160
stroke_t::nvertices
int nvertices
Definition:
types.h:159
Agnodeinfo_t::shape
shape_desc * shape
Definition:
types.h:418
Agraphinfo_t::parent
graph_t * parent
Definition:
types.h:315
textspan_t
Definition:
textspan.h:58
Agraphinfo_t::maxrep
node_t * maxrep
Definition:
types.h:318
shape_functions::pboxfn
int(* pboxfn)(node_t *n, port *p, int side, boxf rv[], int *kptr)
Definition:
types.h:182
Agraphinfo_t::n_cluster
int n_cluster
Definition:
types.h:310
Agraphinfo_t::leader
node_t * leader
Definition:
types.h:343
rank_t::flat
adjmatrix_t * flat
Definition:
types.h:222
bezier::ep
pointf ep
Definition:
types.h:114
rank_t::candidate
boolean candidate
Definition:
types.h:219
Agraphinfo_t::dist
double ** dist
Definition:
types.h:301
R_FILL
Definition:
types.h:226
Agnodeinfo_t::rank
int rank
Definition:
types.h:470
Agedgeinfo_t::path
Ppolyline_t path
Definition:
types.h:566
bezier
struct bezier bezier
nodequeue::limit
node_t ** limit
Definition:
types.h:199
inside_t
union inside_t inside_t
usershape.h
Agraphinfo_t::ln
node_t * ln
Definition:
types.h:339
layout_t
Definition:
types.h:228
Agnodeinfo_t::priority
int priority
Definition:
types.h:482
Agnodeinfo_t::low
int low
Definition:
types.h:480
Agedgeinfo_t::compound
char compound
Definition:
types.h:556
Agraphinfo_t::label_pos
char label_pos
Definition:
types.h:348
rank_t::v
node_t ** v
Definition:
types.h:212
shape_functions
struct shape_functions shape_functions
Agedgeinfo_t::spl
splines * spl
Definition:
types.h:548
Agraphinfo_t::has_sourcerank
boolean has_sourcerank
Definition:
types.h:332
Agraphinfo_t::neato_nlist
node_t ** neato_nlist
Definition:
types.h:299
inside_t::p
pointf * p
Definition:
types.h:58
Agnodeinfo_t::save_in
elist save_in
Definition:
types.h:473
splines::bb
boxf bb
Definition:
types.h:120
Agedgeinfo_t::minlen
unsigned short minlen
Definition:
types.h:576
gvlayout_features_t::flags
int flags
Definition:
types.h:617
Agnodeinfo_t::coord
pointf coord
Definition:
types.h:420
cgraph.h
SH_POLY
Definition:
types.h:186
inside_t::bp
boxf * bp
Definition:
types.h:63
layout_t::quantum
double quantum
Definition:
types.h:229
port::p
pointf p
Definition:
types.h:68
bezier
Definition:
types.h:108
inside_t::n
node_t * n
Definition:
types.h:62
port::name
char * name
Definition:
types.h:82
shape_functions::initfn
void(* initfn)(node_t *)
Definition:
types.h:178
adjmatrix_t::nrows
int nrows
Definition:
types.h:205
inside_t::s
struct inside_t::@19 s
Agraphinfo_t::flags
unsigned short flags
Definition:
types.h:292
pathgeom.h
polygon_t::regular
int regular
Definition:
types.h:147
shape_functions::freefn
void(* freefn)(node_t *)
Definition:
types.h:179
Agraphinfo_t::charset
unsigned char charset
Definition:
types.h:288
layout_t::dpi
double dpi
Definition:
types.h:232
Agraphinfo_t::ndim
unsigned short ndim
Definition:
types.h:305
Agraphinfo_t::ht2
double ht2
Definition:
types.h:291
stroke_t
struct stroke_t stroke_t
Agedgeinfo_t
struct Agedgeinfo_t Agedgeinfo_t
Agedgeinfo_t::head_port
port head_port
Definition:
types.h:550
path
Definition:
types.h:100
nlist_t::size
int size
Definition:
types.h:258
elist::size
int size
Definition:
types.h:263
Agraphinfo_t::cleanup
void(* cleanup)(graph_t *g)
Definition:
types.h:295
Agnodeinfo_t::node_type
char node_type
Definition:
types.h:449
Agraphinfo_t
struct Agraphinfo_t Agraphinfo_t
nlist_t
Definition:
types.h:256
layout_t::size
pointf size
Definition:
types.h:235
Agraphinfo_t::hdr
Agrec_t hdr
Definition:
types.h:279
Agnodeinfo_t::rep
node_t * rep
Definition:
types.h:445
adjmatrix_t
Definition:
types.h:204
layout_t::ratio_kind
ratio_t ratio_kind
Definition:
types.h:239
inside_t
Definition:
types.h:56
field_t::id
char * id
Definition:
types.h:251
Agnodeinfo_t::flat_in
elist flat_in
Definition:
types.h:459
polygon_t::peripheries
int peripheries
Definition:
types.h:148
Agnodeinfo_t::UF_size
int UF_size
Definition:
types.h:464
R_EXPAND
Definition:
types.h:226
Agraphinfo_t::fontnames
fontname_kind fontnames
Definition:
types.h:335
inside_t::r
double * r
Definition:
types.h:59
Agedgeinfo_t::gui_state
unsigned char gui_state
Definition:
types.h:559
SH_UNSET
Definition:
types.h:186
Agnodeinfo_t
struct Agnodeinfo_t Agnodeinfo_t
Agnodeinfo_t::xlabel
textlabel_t * xlabel
Definition:
types.h:428
polygon_t::vertices
pointf * vertices
Definition:
types.h:154
Agraphinfo_t::gui_state
unsigned char gui_state
Definition:
types.h:285
Agnodeinfo_t::pad
double pad[1]
Definition:
types.h:484
gvcext.h
shape_desc
struct shape_desc shape_desc
Agnodeinfo_t::in
elist in
Definition:
types.h:456
Agnodeinfo_t::clust
graph_t * clust
Definition:
types.h:461
layout_t::margin
pointf margin
Definition:
types.h:233
Agedgeinfo_t::cutvalue
int cutvalue
Definition:
types.h:573
shape_desc::polygon
polygon_t * polygon
Definition:
types.h:191
shape_functions
Definition:
types.h:177
shape_t
struct shape_t shape_t
rank_t
Definition:
types.h:210
port
struct port port
Agedgeinfo_t::weight
int weight
Definition:
types.h:572
layout_t::landscape
boolean landscape
Definition:
types.h:237
Agedgeinfo_t::dist
double dist
Definition:
types.h:565
Agedgeinfo_t
Definition:
types.h:546
Agnodeinfo_t::alg
void * alg
Definition:
types.h:429
Agnodeinfo_t::state
char state
Definition:
types.h:430
Agraphinfo_t::dotroot
graph_t * dotroot
Definition:
types.h:312
polygon_t
Definition:
types.h:146
pathend_t
struct pathend_t pathend_t
Agraphinfo_t::set_type
char set_type
Definition:
types.h:347
Agnodeinfo_t::UF_parent
node_t * UF_parent
Definition:
types.h:465
path::nbox
int nbox
Definition:
types.h:103
nodequeue::tail
node_t ** tail
Definition:
types.h:201
textlabel_t::u
union textlabel_t::@20 u
textlabel_t::nspans
short nspans
Definition:
types.h:137
path::end
port end
Definition:
types.h:102
SH_POINT
Definition:
types.h:186
textlabel_t::space
pointf space
Definition:
types.h:130
shape_desc::usershape
boolean usershape
Definition:
types.h:192
boxf
Definition:
geom.h:35
textlabel_t
struct textlabel_t textlabel_t
Agnodeinfo_t::pinned
unsigned char pinned
Definition:
types.h:435
shape_functions::portfn
port(* portfn)(node_t *, char *, char *)
Definition:
types.h:180
field_t::sides
unsigned char sides
Definition:
types.h:253
Agnodeinfo_t::clustnode
boolean clustnode
Definition:
types.h:432
splineInfo
Definition:
types.h:85
Ppoly_t
Definition:
pathgeom.h:34
port::dyna
boolean dyna
Definition:
types.h:76
Agraphinfo_t::alg
void * alg
Definition:
types.h:293
Agnodeinfo_t
Definition:
types.h:416
port::defined
boolean defined
Definition:
types.h:73
Agraphinfo_t::has_labels
unsigned char has_labels
Definition:
types.h:286
pathend_t
Definition:
types.h:92
textlabel_t::fontname
char * fontname
Definition:
types.h:125
layout_t::page
pointf page
Definition:
types.h:234
Generated by
1.8.5