00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef DOTPROCS_H
00018 #define DOTPROCS_H
00019
00020 #ifdef _BEGIN_EXTERNS_
00021 _BEGIN_EXTERNS_
00022 #endif
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028 extern void acyclic(Agraph_t *);
00029 extern void add_to_component(Agnode_t *);
00030 extern void allocate_ranks(Agraph_t *);
00031 extern void basic_merge(Agedge_t *, Agedge_t *);
00032 extern void begin_component(void);
00033 extern void build_ranks(Agraph_t *, int);
00034 extern void build_skeleton(Agraph_t *, Agraph_t *);
00035 extern void class1(Agraph_t *);
00036 extern void class2(Agraph_t *);
00037 extern void cleanup1(Agraph_t *);
00038 extern Agnode_t *clone_vn(Agraph_t *, Agnode_t *);
00039 extern void cluster_leader(Agraph_t *);
00040 extern void collapse_cluster(Agraph_t *, Agraph_t *);
00041 extern void collapse_leaves(Agraph_t *);
00042 extern void collapse_rankset(Agraph_t *, Agraph_t *, int);
00043 extern void collapse_sets(Agraph_t *);
00044 extern void decompose(Agraph_t *, int);
00045 extern void delete_fast_edge(Agedge_t *);
00046 extern void delete_fast_node(Agraph_t *, Agnode_t *);
00047 extern void delete_flat_edge(Agedge_t *);
00048 extern void delete_other_edge(Agedge_t *);
00049 extern void dfs(Agnode_t *);
00050 extern void do_ordering(Agraph_t *, int);
00051 extern void dot_cleanup(graph_t * g);
00052 extern void dot_cleanup_edge(edge_t * e);
00053 extern void dot_cleanup_graph(graph_t * g);
00054 extern void dot_cleanup_node(node_t * n);
00055 extern void dot_free_splines(edge_t * e);
00056 extern void dot_init_node_edge(Agraph_t *);
00057 extern void dot_init_edge(Agedge_t *);
00058 extern void dot_init_node(Agnode_t *);
00059 extern void dot_layout(Agraph_t * g);
00060 extern void dot_init_graph(graph_t * g);
00061 extern void edgelabel_ranks(Agraph_t *);
00062 extern void end_component(void);
00063 extern void exchange(Agnode_t *, Agnode_t *);
00064 extern void expand_cluster(Agraph_t *);
00065 extern void expand_ranksets(Agraph_t *);
00066 extern Agedge_t *fast_edge(Agedge_t *);
00067 extern void fast_node(Agraph_t *, Agnode_t *);
00068 extern void fast_nodeapp(Agnode_t *, Agnode_t *);
00069 extern void find_clusters(Agraph_t *);
00070 extern Agedge_t *find_fast_edge(Agnode_t *, Agnode_t *);
00071 extern Agnode_t *find_fast_node(Agraph_t *, Agnode_t *);
00072 extern Agedge_t *find_flat_edge(Agnode_t *, Agnode_t *);
00073 extern void flat_edge(Agraph_t *, Agedge_t *);
00074 extern int flat_edges(Agraph_t *);
00075 extern int flat_mval(Agnode_t *);
00076 extern int in_cross(Agnode_t *, Agnode_t *);
00077 extern void incr_width(Agraph_t *, Agnode_t *);
00078 extern int inside_cluster(Agraph_t *, Agnode_t *);
00079 extern void install_cluster(Agraph_t *, Agnode_t *, int, queue *);
00080 extern void install_in_rank(Agraph_t *, Agnode_t *);
00081 extern void interclexp(Agraph_t *);
00082 extern void interclrep(Agraph_t *, Agedge_t *);
00083 extern void interclust1(Agraph_t *, Agnode_t *, Agnode_t *,
00084 Agedge_t *);
00085 extern int is_a_normal_node_of(Agraph_t *, Agnode_t *);
00086 extern int is_a_vnode_of_an_edge_of(Agraph_t *, Agnode_t *);
00087 extern int is_cluster(Agraph_t *);
00088 extern int is_cluster_edge(Agedge_t *);
00089 extern int is_fast_node(Agraph_t *, Agnode_t *);
00090 extern Agnode_t *label_vnode(Agraph_t *, Agedge_t *);
00091 extern Agnode_t *leader_of(Agraph_t *, Agnode_t *);
00092 extern int left2right(Agraph_t *, Agnode_t *, Agnode_t *);
00093 extern int local_cross(elist, int);
00094 extern void dot_compoundEdges(Agraph_t *);
00095 extern Agedge_t *make_aux_edge(Agnode_t *, Agnode_t *, int, int);
00096 extern void make_chain(Agraph_t *, Agnode_t *, Agnode_t *, Agedge_t *);
00097 extern void make_interclust_chain(Agraph_t *, Agnode_t *, Agnode_t *,
00098 Agedge_t *);
00099 extern int make_new_cluster(Agraph_t *, Agraph_t *);
00100 extern void make_slots(Agraph_t *, int, int, int);
00101 extern Agnode_t *map_interclust_node(Agnode_t *);
00102 extern void map_path(Agnode_t *, Agnode_t *, Agedge_t *, Agedge_t *,
00103 int);
00104 extern void mark_clusters(Agraph_t *);
00105 extern void mark_lowclusters(Agraph_t *);
00106 extern int mergeable(edge_t * e, edge_t * f);
00107 extern void merge_chain(Agraph_t *, Agedge_t *, Agedge_t *, int);
00108 extern void merge_components(Agraph_t *);
00109 extern Agnode_t *merge_leaves(Agraph_t *, Agnode_t *, Agnode_t *);
00110 extern void merge_oneway(Agedge_t *, Agedge_t *);
00111 extern void merge_ranks(Agraph_t *);
00112 extern void minmax_edges(Agraph_t *);
00113 extern int ncross(Agraph_t *);
00114 extern Agedge_t *new_virtual_edge(Agnode_t *, Agnode_t *, Agedge_t *);
00115 extern void node_induce(Agraph_t *, Agraph_t *);
00116 extern int nonconstraint_edge(Agedge_t *);
00117 extern int ordercmpf(int *, int *);
00118 extern void ordered_edges(Agraph_t *);
00119 extern void other_edge(Agedge_t *);
00120 extern int out_cross(Agnode_t *, Agnode_t *);
00121 extern Agnode_t *plain_vnode(Agraph_t *, Agedge_t *);
00122 extern int portcmp(port p0, port p1);
00123 extern void potential_leaf(Agraph_t *, Agedge_t *, Agnode_t *);
00124 extern int ports_eq(edge_t *, edge_t *);
00125 extern void rank1(Agraph_t *);
00126 extern void rank(Agraph_t *, int, int);
00127 extern int rank_set_class(Agraph_t *);
00128 extern int rcross(Agraph_t *, int);
00129 extern void rec_reset_vlists(Agraph_t *);
00130 extern void rec_save_vlists(Agraph_t *);
00131 extern void remove_rankleaders(Agraph_t *);
00132 extern void renewlist(elist *);
00133 extern void reorder(Agraph_t *, int, int, int);
00134 extern void reverse_edge(Agedge_t *);
00135 extern void safe_delete_fast_edge(Agedge_t *);
00136 extern void safe_list_append(Agedge_t *, elist *);
00137 extern void safe_other_edge(Agedge_t *);
00138 extern void save_vlist(Agraph_t *);
00139 extern void scan_ranks(Agraph_t *);
00140 extern void scan_result(void);
00141 extern void search_component(Agraph_t *, Agnode_t *);
00142 extern void set_minmax(Agraph_t *);
00143 extern void setup_page(Agraph_t *, point);
00144 extern int strccnt(char *, char);
00145 extern void transpose(Agraph_t *, int);
00146 extern int transpose_step(Agraph_t *, int, int);
00147 extern void unmerge_oneway(Agedge_t *);
00148 extern void update(Agedge_t *, Agedge_t *);
00149 extern void update_bb(Agraph_t *, point);
00150 extern Agedge_t *virtual_edge(Agnode_t *, Agnode_t *, Agedge_t *);
00151 extern Agnode_t *virtual_node(Agraph_t *);
00152 extern void virtual_weight(Agedge_t *);
00153 extern void zapinlist(elist *, Agedge_t *);
00154
00155 #if defined(_BLD_dot) && defined(_DLL)
00156 # define extern __EXPORT__
00157 #endif
00158 extern void dot_nodesize(Agnode_t *, boolean);
00159 extern void dot_concentrate(Agraph_t *);
00160 extern void dot_mincross(Agraph_t *);
00161 extern void dot_position(Agraph_t *);
00162 extern void dot_rank(Agraph_t *);
00163 extern void dot_sameports(Agraph_t *);
00164 extern void dot_splines(Agraph_t *);
00165 #undef extern
00166
00167 #ifdef _END_EXTERNS_
00168 _END_EXTERNS_
00169 #endif
00170 #ifdef __cplusplus
00171 }
00172 #endif
00173 #endif