00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef CIRCLE_H
00018 #define CIRCLE_H
00019
00020 #include "render.h"
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026 typedef struct {
00027 int nStepsToLeaf;
00028 int subtreeSize;
00029 int nChildren;
00030 int nStepsToCenter;
00031 node_t *parent;
00032 double span;
00033 double theta;
00034 } rdata;
00035
00036 #define RDATA(n) ((rdata*)((n)->u.alg))
00037 #define SLEAF(n) (RDATA(n)->nStepsToLeaf)
00038 #define STSIZE(n) (RDATA(n)->subtreeSize)
00039 #define NCHILD(n) (RDATA(n)->nChildren)
00040 #define SCENTER(n) (RDATA(n)->nStepsToCenter)
00041 #define SPARENT(n) (RDATA(n)->parent)
00042 #define SPAN(n) (RDATA(n)->span)
00043 #define THETA(n) (RDATA(n)->theta)
00044
00045 extern void circleLayout(Agraph_t * sg, Agnode_t * center);
00046 extern void twopi_layout(Agraph_t * g);
00047 extern void twopi_cleanup(Agraph_t * g);
00048 extern void twopi_nodesize(node_t * n, boolean flip);
00049 extern void twopi_init_graph(graph_t * g);
00050
00051 #ifdef __cplusplus
00052 }
00053 #endif
00054 #endif