00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GV_MACROS_H
00018 #define GV_MACROS_H
00019
00020 #ifndef NOTUSED
00021 #define NOTUSED(var) (void) var
00022 #endif
00023
00024 #define isPinned(n) (ND_pinned(n) == P_PIN)
00025 #define hasPos(n) (ND_pinned(n) > 0)
00026 #define isFixed(n) (ND_pinned(n) > P_SET)
00027
00028 #define SET_CLUST_NODE(n) (ND_clustnode(n) = TRUE)
00029 #define IS_CLUST_NODE(n) (ND_clustnode(n))
00030 #define HAS_CLUST_EDGE(g) (GD_flags(g) & 1)
00031 #define SET_CLUST_EDGE(g) (GD_flags(g) |= 1)
00032 #define EDGE_TYPE(g) (GD_flags(g) & (7 << 1))
00033
00034 #define SET_RANKDIR(g,rd) ((g)->u.rankdir = (rd))
00035
00036 #ifndef streq
00037 #define streq(a,b) (*(a)==*(b)&&!strcmp(a,b))
00038 #endif
00039
00040 #define XPAD(d) ((d).x += 4*GAP)
00041 #define YPAD(d) ((d).y += 2*GAP)
00042 #define PAD(d) {XPAD(d); YPAD(d);}
00043
00044 #define OTHERDIR(dir) ((dir == CCW) ? CW : CCW)
00045
00046 #define NEXTSIDE(side, dir) ((dir == CCW) ? \
00047 ((side & 0x8) ? BOTTOM : (side << 1)) : \
00048 ((side & 0x1) ? LEFT : (side >> 1)))
00049
00050 #endif