Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

gvrenderint.h

Go to the documentation of this file.
00001 /* $Id: gvrenderint.h,v 1.1 2005/04/09 03:38:19 roxo Exp $ $Revision: 1.1 $ */
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 
00018 /* Common header used by both clients and plugins */
00019 
00020 #ifndef GVRENDERINT_H
00021 #define GVRENDERINT_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 #define GVRENDER_DOES_ARROWS (1<<0)
00028 #define GVRENDER_DOES_LAYERS (1<<1)
00029 #define GVRENDER_DOES_MULTIGRAPH_OUTPUT_FILES (1<<2)
00030 
00031     typedef struct gvrender_job_s gvrender_job_t;
00032 
00033     struct gvrender_job_s {
00034         gvrender_job_t *next;
00035         char *output_filename;
00036         char *output_langname;
00037         FILE *output_file;
00038         void *interim_output;
00039         int output_lang;
00040     };
00041 
00042     typedef struct gv_plugin_s gv_plugin_t;
00043 
00044     struct gv_plugin_s {
00045         gv_plugin_t *next;
00046         int handle;
00047         char *path;
00048         char *type;
00049         void *fn;
00050     };
00051 
00052     struct GVC_s {
00053         /* gvNEWcontext() */
00054         char *user;
00055         char **info;
00056         /* gvrender_config() */
00057         gvrender_job_t *jobs;   /* linked list of jobs */
00058         gvrender_job_t *job;    /* current job */
00059         /* renderer plugins */
00060         int next_renderer_handle;       /* unique integer handle assigned to renderers on install */
00061         gv_plugin_t *renderers; /* alpha-sorted linked list of renderers */
00062         /* gvrender_begin_job() */
00063         gvrender_engine_t *render_engine;
00064 #if ENABLE_CODEGENS
00065         codegen_t *codegen;
00066 #endif
00067         char **lib;
00068         point pages;
00069         /* gvrender_begin_graph() */
00070         graph_t *g;
00071         box bb;
00072         point pb;
00073         point size;             /* viewport size (pixels) */
00074         double zoom;            /* viewport zoom factor */
00075         pointf focus;           /* viewport focus in graph units */
00076         boolean onetime;
00077         /* gvrender_begin_page() */
00078         point page;
00079         double scale;
00080         int rot;
00081         point offset;
00082         /* gvrender_begin_layer() */
00083         char *layerName;
00084         int layer;
00085         int nLayers;
00086         /* gvrender_begin_cluster() */
00087         graph_t *sg;
00088         /* gvrender_begin_node() */
00089         node_t *n;
00090         /* gvrender_begin_edge() */
00091         edge_t *e;
00092     };
00093 
00094 #ifdef __cplusplus
00095 }
00096 #endif
00097 #endif
Untitled Document Pesquisa Psi SourceForge.net Logo