74#define NDATA(n) ((ndata*)(ND_alg(n)))
75#define DNODE(n) (NDATA(n)->dnode)
77#define EDGEDATA(e) ((edata*)(ED_alg(e)))
78#define EDGEORDER(e) (EDGEDATA(e)->order)
80#define DATA(n) ((cdata*)(ND_alg(n)))
81#define ORIGG(n) (DATA(n)->orig.g)
82#define ORIGN(n) (DATA(n)->orig.np)
83#define FLAGS(n) (DATA(n)->flags)
84#define PARENT(n) (DATA(n)->parent)
85#define BLOCK(n) (DATA(n)->block)
86#define NEXT(n) (DATA(n)->u.bc.next)
87#define VAL(n) (DATA(n)->u.bc.val)
88#define LOWVAL(n) (DATA(n)->u.bc.low_val)
89#define CLONE(n) (DATA(n)->u.clone)
90#define TPARENT(n) (DATA(n)->u.t.tparent)
91#define LEAFONE(n) (DATA(n)->u.t.first)
92#define LEAFTWO(n) (DATA(n)->u.t.second)
93#define DISTONE(n) (DATA(n)->u.t.fdist)
94#define DISTTWO(n) (DATA(n)->u.t.sdist)
95#define POSITION(n) (DATA(n)->u.f.pos)
96#define PSI(n) (DATA(n)->u.f.psi)
98#define VISITED_F (1 << 0)
99#define ONSTACK_F (1 << 2)
100#define PARENT_F (1 << 3)
101#define PATH_F (1 << 4)
102#define NEIGHBOR_F (1 << 5)
104#define VISITED(n) (FLAGS(n)&VISITED_F)
105#define ONSTACK(n) (FLAGS(n)&ONSTACK_F)
106#define ISPARENT(n) (FLAGS(n)&PARENT_F)
107#define ONPATH(n) (FLAGS(n)&PATH_F)
108#define NEIGHBOR(n) (FLAGS(n)&NEIGHBOR_F)
110#define SET_VISITED(n) (FLAGS(n) |= VISITED_F)
111#define SET_ONSTACK(n) (FLAGS(n) |= ONSTACK_F)
112#define SET_PARENT(n) (FLAGS(n) |= PARENT_F)
113#define SET_ONPATH(n) (FLAGS(n) |= PATH_F)
114#define SET_NEIGHBOR(n) (FLAGS(n) |= NEIGHBOR_F)
116#define UNSET_VISITED(n) (FLAGS(n) &= ~VISITED_F)
117#define UNSET_ONSTACK(n) (FLAGS(n) &= ~ONSTACK_F)
118#define UNSET_NEIGHBOR(n) (FLAGS(n) &= ~NEIGHBOR_F)
120#define DEGREE(n) (ND_order(n))
129 extern void prData(
Agnode_t * n,
int pass);
void circularLayout(Agraph_t *sg, Agraph_t *rg, int *blockCount)
int graphCopyCount
how many cloned graphs have we created?
int spanningTreeCount
how many spanning trees have we created?