/misc/src/release/graphviz-2.18-1/src/graphviz-2.18/lib/common/render.h

Go to the documentation of this file.
00001 /* $Id: render.h,v 1.50 2008/02/29 22:00:16 ellson Exp $ $Revision: 1.50 $ */
00002 /* vim:set shiftwidth=4 ts=8: */
00003 
00004 /**********************************************************
00005 *      This software is part of the graphviz package      *
00006 *                http://www.graphviz.org/                 *
00007 *                                                         *
00008 *            Copyright (c) 1994-2004 AT&T Corp.           *
00009 *                and is licensed under the                *
00010 *            Common Public License, Version 1.0           *
00011 *                      by AT&T Corp.                      *
00012 *                                                         *
00013 *        Information and Software Systems Research        *
00014 *              AT&T Research, Florham Park NJ             *
00015 **********************************************************/
00016 
00017 #ifndef GV_RENDER_H
00018 #define GV_RENDER_H
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024 #ifdef HAVE_CONFIG_H
00025 #include "config.h"
00026 #endif
00027 
00028 #ifdef HAVE_SYS_TYPES_H
00029 #include <sys/types.h>
00030 #endif
00031 #ifdef HAVE_STDLIB_H
00032 #include <stdlib.h>
00033 #endif
00034 #ifdef HAVE_STDDEF_H
00035 #include <stddef.h>
00036 #endif
00037 #ifdef HAVE_STRINGS_H
00038 #include <strings.h>
00039 #endif
00040 #ifdef HAVE_STRING_H
00041 #include <string.h>
00042 #endif
00043 
00044 #include "types.h"
00045 #include "macros.h"
00046 #include "const.h"
00047 #include "globals.h"
00048 #include "memory.h"
00049 #include "colorprocs.h"         /* must collow color.h (in types.h) */
00050 #include "geomprocs.h"          /* must follow geom.h (in types.h) */
00051 #include "agxbuf.h"
00052 #include "graph.h"              /* must follow types.h */
00053 #include "utils.h"              /* must follow types.h and agxbuf.h */
00054 #include "gvplugin.h"           /* must follow gvcext.h (in types.h) */
00055 #include "gvcjob.h"             /* must follow gvcext.h (in types.h) */
00056 #include "gvcint.h"             /* must follow gvcext.h (in types.h) */
00057 #include "gvcproc.h"            /* must follow gvcext.h (in types.h) */
00058 
00059     typedef struct epsf_s {
00060         int macro_id;
00061         point offset;
00062     } epsf_t;
00063 
00064     typedef void (*nodesizefn_t) (Agnode_t *, boolean);
00065 
00066     extern void add_box(path *, box);
00067     extern void arrow_flags(Agedge_t * e, int *sflag, int *eflag);
00068     extern boxf arrow_bb(pointf p, pointf u, double arrowsize, int flag);
00069     extern void arrow_gen(GVJ_t * job, emit_state_t emit_state, point p, point u,
00070                           double arrowsize, double penwidth, int flag);
00071     extern double arrow_length(edge_t * e, int flag);
00072     extern int arrowEndClip(edge_t*, point*, int, int , bezier*, int eflag);
00073     extern int arrowStartClip(edge_t*, point* ps, int, int, bezier*, int sflag);
00074     extern void attach_attrs(Agraph_t *);
00075     extern void beginpath(path *, Agedge_t *, int, pathend_t *, boolean);
00076     extern void bezier_clip(inside_t * inside_context,
00077                             boolean(*insidefn) (inside_t * inside_context,
00078                                                 pointf p), pointf * sp,
00079                             boolean left_inside);
00080     extern shape_desc *bind_shape(char *name, node_t *);
00081     extern void clip_and_install(edge_t *, node_t *, point *, int,
00082                                  splineInfo *);
00083     extern char* charsetToStr (int c);
00084     extern point coord(node_t * n);
00085     extern void do_graph_label(graph_t * sg);
00086     extern void graph_init(graph_t * g, boolean use_rankdir);
00087     extern void graph_cleanup(graph_t * g);
00088     extern void dotneato_args_initialize(GVC_t * gvc, int, char **);
00089     extern void dotneato_usage(int);
00090     extern void dotneato_postprocess(Agraph_t *);
00091     extern void dotneato_set_margins(GVC_t * gvc, Agraph_t *);
00092     extern void dotneato_write(GVC_t * gvc, graph_t *g);
00093     extern void dotneato_write_one(GVC_t * gvc, graph_t *g);
00094     extern double elapsed_sec(void);
00095     extern void emit_background(GVJ_t * job, graph_t *g);
00096     extern void emit_clusters(GVJ_t * job, Agraph_t * g, int flags);
00097     /* extern void emit_begin_edge(GVJ_t * job, edge_t * e, char**); */
00098     /* extern void emit_end_edge(GVJ_t * job); */
00099     extern void emit_graph(GVJ_t * job, graph_t * g);
00100     extern void emit_label(GVJ_t * job, emit_state_t emit_state, textlabel_t *);
00101     extern int emit_once(char *message);
00102     extern void emit_jobs_eof(GVC_t * gvc);
00103     extern void emit_map_rect(GVJ_t *job, point LL, point UR);
00104     extern void enqueue_neighbors(nodequeue *, Agnode_t *, int);
00105     extern void endpath(path *, Agedge_t *, int, pathend_t *, boolean);
00106     extern void epsf_init(node_t * n);
00107     extern void epsf_free(node_t * n);
00108     extern shape_desc *find_user_shape(char *);
00109     extern void free_line(textpara_t *);
00110     extern void free_label(textlabel_t *);
00111     extern void getdouble(graph_t * g, char *name, double *result);
00112     extern splines *getsplinepoints(edge_t * e);
00113     extern void global_def(char *,
00114                            Agsym_t * (*fun) (Agraph_t *, char *, char *));
00115     extern int gvRenderJobs (GVC_t * gvc, graph_t * g);
00116     extern int initMapData (GVJ_t*, char*, char*, char*, char*, void*);
00117     extern boolean isPolygon(node_t *);
00118     extern char *strdup_and_subst_obj(char *str, void *obj);
00119     extern char *xml_string(char *s);
00120     extern void makeSelfEdge(path *, edge_t **, int, int, int, int,
00121                              splineInfo *);
00122     extern textlabel_t *make_label(graph_t *g, int html, char *str,
00123                                    double fontsize, char *fontname, char *fontcolor);
00124     extern bezier *new_spline(edge_t * e, int sz);
00125     extern void osize_label(textlabel_t *, int *, int *, int *, int *);
00126     extern char **parse_style(char *s);
00127     extern void place_graph_label(Agraph_t *);
00128     extern void place_portlabel(edge_t * e, boolean head_p);
00129     extern char *ps_string(char *s, int);
00130     extern void pop_obj_state(GVJ_t *job);
00131     extern obj_state_t* push_obj_state(GVJ_t *job);
00132     extern int rank(graph_t * g, int balance, int maxiter);
00133     extern void round_corners(GVJ_t*, char*, char*, pointf*, int, int);
00134     extern void routesplinesinit(void);
00135     extern point *routesplines(path *, int *);
00136     extern void routesplinesterm(void);
00137     extern point *routepolylines(path* pp, int* npoints);
00138     extern int selfRightSpace (edge_t* e);
00139     extern void setup_graph(GVC_t * gvc, graph_t * g);
00140     extern shape_kind shapeOf(node_t *);
00141     extern void shape_clip(node_t * n, point curve[4]);
00142     extern void size_label (graph_t* g, textlabel_t* rv);
00143     extern void start_timer(void);
00144     extern pointf textsize(graph_t *g, textpara_t * para, char *fontname, double fontsize);
00145     extern void translate_bb(Agraph_t *, int);
00146     extern void write_attributed_dot(graph_t *g, FILE *f);
00147     extern void write_canonical_dot(graph_t *g, FILE *f);
00148     extern void write_plain(GVJ_t * job, graph_t * g, FILE * f, boolean extend);
00149 
00150 #if defined(_BLD_dot) && defined(_DLL)
00151 #   define extern __EXPORT__
00152 #endif
00153 
00154 #ifdef WITH_CODEGENS
00155     extern codegen_info_t *first_codegen(void);
00156     extern codegen_info_t *next_codegen(codegen_info_t * p);
00157 #endif
00158 
00159 #undef extern
00160 
00161 #ifdef __cplusplus
00162 }
00163 #endif
00164 
00165 #endif

Generated on Mon Mar 31 19:03:25 2008 for Graphviz by  doxygen 1.5.1