/* This software may only be used by you under license from AT&T Corp. ("AT&T"). A copy of AT&T's Source Code Agreement is available at AT&T's Internet website having the URL: If you received this software without first entering into a license with AT&T, you have an infringing copy of this software and cannot use it without violating AT&T's intellectual property rights. */ #ifndef PI #ifdef M_PI #define PI M_PI #else #define PI 3.14159265358979323846 #endif #endif #define SMALLBUF 128 #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_FONTSIZE 14.0 #define DEFAULT_LABEL_FONTSIZE 11.0 /* for head/taillabel */ #define MIN_FONTSIZE 1.0 #define DEFAULT_FONTNAME "Times-Roman" #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 NODENAME_ESC "\\N" #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 */ #define DEFAULT_MARGIN 36 /* default margin for embedded formats such as PNG */ #define DEFAULT_EMBED_MARGIN 5 #define DEFAULT_PAGEHT 792 #define DEFAULT_PAGEWD 612 #define SELF_EDGE_SIZE 18 #define MC_SCALE 256 /* for mincross */ #define ARROW_LENGTH 10 #define ARROW_WIDTH 5 /* added by vladimir */ #define ARROW_INV_LENGTH 8 #define ARROW_INV_WIDTH 6 #define ARROW_DOT_RADIUS 3 #define PORT_LABEL_DISTANCE 10 #define PORT_LABEL_ANGLE -25 /* degrees; pos is CCW, neg is CW */ /* added by vladimir */ /* arrow types */ #define ARR_NONE 0 #define ARR_NORM 1 #define ARR_INV 2 #define ARR_DOT 4 #define ARR_NOFILL 8 #define ARR_EMPTY (ARR_NORM|ARR_NOFILL) #define ARR_ODOT (ARR_DOT|ARR_NOFILL) #define ARR_INVDOT (ARR_INV|ARR_DOT) #define ARR_INVODOT (ARR_INV|ARR_ODOT) #define ARR_INVEMPTY (ARR_INV|ARR_NOFILL) #define ARR_TEE 16 #define ARR_OPEN 32 #define ARR_HALFOPEN 64 #define ARR_DIAMOND 128 #define ARR_ODIAMOND (ARR_DIAMOND|ARR_NOFILL) #define ARR_BOX 256 #define ARR_OBOX (ARR_BOX|ARR_NOFILL) #define ARR_CROW 512 /* 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<