put into common.
{
common_init_node(n);
- neato_nodesize(n, GD_flip(n->graph));
+ gv_nodesize(n, GD_flip(n->graph));
ND_pos(n) = N_NEW(GD_ndim(n->graph), double);
}
dotneato_postprocess(g);
}
-static void circular_cleanup_node(node_t * n)
-{
- free(ND_pos(n));
- if (ND_shape(n))
- ND_shape(n)->fns->freefn(n);
- free_label(ND_label(n));
- memset(&(n->u), 0, sizeof(Agnodeinfo_t));
-}
-
-static void circular_free_splines(edge_t * e)
-{
- int i;
- if (ED_spl(e)) {
- for (i = 0; i < ED_spl(e)->size; i++)
- free(ED_spl(e)->list[i].list);
- free(ED_spl(e)->list);
- free(ED_spl(e));
- }
- ED_spl(e) = NULL;
-}
-
-static void circular_cleanup_edge(edge_t * e)
-{
- circular_free_splines(e);
- free_label(ED_label(e));
- memset(&(e->u), 0, sizeof(Agedgeinfo_t));
-}
-
void circo_cleanup(graph_t * g)
{
node_t *n;
for (; n; n = agnxtnode(g, n)) {
for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
- circular_cleanup_edge(e);
+ gv_cleanup_edge(e);
}
- circular_cleanup_node(n);
+ gv_cleanup_node(n);
}
free(GD_neato_nlist(g));
if (g != g->root) memset(&(g->u), 0, sizeof(Agraphinfo_t));
extern void global_def(char *,
Agsym_t * (*fun) (Agraph_t *, char *, char *));
extern int gvRenderJobs (GVC_t * gvc, graph_t * g);
+ extern void gv_cleanup_edge(Agedge_t * e);
+ extern void gv_nodesize(Agnode_t * n, boolean flip);
+ extern void gv_cleanup_node(Agnode_t * n);
extern int initMapData (GVJ_t*, char*, char*, char*, char*, void*);
extern boolean isPolygon(node_t *);
extern char *strdup_and_subst_obj(char *str, void *obj);
}
#endif /* HAVE_STRNCASECMP */
+
+static void gv_free_splines(edge_t * e)
+{
+ int i;
+ if (ED_spl(e)) {
+ for (i = 0; i < ED_spl(e)->size; i++)
+ free(ED_spl(e)->list[i].list);
+ free(ED_spl(e)->list);
+ free(ED_spl(e));
+ }
+ ED_spl(e) = NULL;
+}
+
+void gv_cleanup_edge(edge_t * e)
+{
+ gv_free_splines(e);
+ free_label(ED_label(e));
+ memset(&(e->u), 0, sizeof(Agedgeinfo_t));
+}
+
+void gv_cleanup_node(node_t * n)
+{
+ if (ND_pos(n)) free(ND_pos(n));
+ if (ND_shape(n))
+ ND_shape(n)->fns->freefn(n);
+ free_label(ND_label(n));
+ memset(&(n->u), 0, sizeof(Agnodeinfo_t));
+}
+
+void gv_nodesize(node_t * n, boolean flip)
+{
+ int w;
+
+ w = ND_xsize(n) = POINTS(ND_width(n));
+ ND_lw_i(n) = ND_rw_i(n) = w / 2;
+ ND_ht_i(n) = ND_ysize(n) = POINTS(ND_height(n));
+}
+