Graphviz  2.41.20170921.2350
Data Structures | Macros | Typedefs | Functions
render.h File Reference
#include "config.h"
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <inttypes.h>
#include "types.h"
#include "macros.h"
#include "const.h"
#include "globals.h"
#include "memory.h"
#include "colorprocs.h"
#include "geomprocs.h"
#include "agxbuf.h"
#include "utils.h"
#include "gvplugin.h"
#include "gvcjob.h"
#include "gvcint.h"
#include "gvcproc.h"
Include dependency graph for render.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  epsf_s


#define __USE_GNU


typedef struct epsf_s epsf_t


void add_box (path *, boxf)
void arrow_flags (Agedge_t *e, int *sflag, int *eflag)
boxf arrow_bb (pointf p, pointf u, double arrowsize, int flag)
void arrow_gen (GVJ_t *job, emit_state_t emit_state, pointf p, pointf u, double arrowsize, double penwidth, int flag)
double arrow_length (edge_t *e, int flag)
int arrowEndClip (edge_t *, pointf *, int, int, bezier *, int eflag)
int arrowStartClip (edge_t *, pointf *ps, int, int, bezier *, int sflag)
void arrowOrthoClip (edge_t *, pointf *ps, int, int, bezier *, int sflag, int eflag)
void beginpath (path *, Agedge_t *, int, pathend_t *, boolean)
void bezier_clip (inside_t *inside_context, boolean(*insidefn)(inside_t *inside_context, pointf p), pointf *sp, boolean left_inside)
shape_descbind_shape (char *name, node_t *)
void makeStraightEdge (graph_t *g, edge_t *e, int edgetype, splineInfo *info)
void makeStraightEdges (graph_t *g, edge_t **edges, int e_cnt, int et, splineInfo *sinfo)
void clip_and_install (edge_t *fe, node_t *hn, pointf *ps, int pn, splineInfo *info)
char * charsetToStr (int c)
pointf coord (node_t *n)
void do_graph_label (graph_t *sg)
void graph_init (graph_t *g, boolean use_rankdir)
void graph_cleanup (graph_t *g)
int dotneato_args_initialize (GVC_t *gvc, int, char **)
int dotneato_usage (int)
void dotneato_postprocess (Agraph_t *)
void gv_postprocess (Agraph_t *, int)
void dotneato_set_margins (GVC_t *gvc, Agraph_t *)
void dotneato_write (GVC_t *gvc, graph_t *g)
void dotneato_write_one (GVC_t *gvc, graph_t *g)
Ppolyline_tellipticWedge (pointf ctr, double major, double minor, double angle0, double angle1)
void emit_clusters (GVJ_t *job, Agraph_t *g, int flags)
char * getObjId (GVJ_t *job, void *obj, agxbuf *xb)
void emit_graph (GVJ_t *job, graph_t *g)
void emit_label (GVJ_t *job, emit_state_t emit_state, textlabel_t *)
int emit_once (char *message)
void emit_jobs_eof (GVC_t *gvc)
void emit_map_rect (GVJ_t *job, boxf b)
void endpath (path *, Agedge_t *, int, pathend_t *, boolean)
void epsf_init (node_t *n)
void epsf_free (node_t *n)
shape_descfind_user_shape (const char *)
void free_line (textspan_t *)
void free_label (textlabel_t *)
void free_textspan (textspan_t *tl, int)
void getdouble (graph_t *g, char *name, double *result)
splinesgetsplinepoints (edge_t *e)
void gv_fixLocale (int set)
void gv_free_splines (edge_t *e)
void gv_cleanup_edge (Agedge_t *e)
void gv_cleanup_node (Agnode_t *n)
void * init_xdot (Agraph_t *g)
int initMapData (GVJ_t *, char *, char *, char *, char *, char *, void *)
boolean isPolygon (node_t *)
void makeSelfEdge (path *P, edge_t *edges[], int ind, int cnt, double sizex, double sizey, splineInfo *sinfo)
textlabel_tmake_label (void *obj, char *str, int kind, double fontsize, char *fontname, char *fontcolor)
beziernew_spline (edge_t *e, int sz)
char ** parse_style (char *s)
void place_graph_label (Agraph_t *)
int place_portlabel (edge_t *e, boolean head_p)
void makePortLabels (edge_t *e)
pointf edgeMidpoint (graph_t *g, edge_t *e)
void addEdgeLabels (graph_t *g, edge_t *e, pointf rp, pointf rq)
void pop_obj_state (GVJ_t *job)
obj_state_tpush_obj_state (GVJ_t *job)
int rank (graph_t *g, int balance, int maxiter)
port resolvePort (node_t *n, node_t *other, port *oldport)
void resolvePorts (edge_t *e)
void round_corners (GVJ_t *job, pointf *AF, int sides, int style, int filled)
int routesplinesinit (void)
pointfroutesplines (path *, int *)
void routesplinesterm (void)
pointfsimpleSplineRoute (pointf, pointf, Ppoly_t, int *, int)
pointfroutepolylines (path *pp, int *npoints)
int selfRightSpace (edge_t *e)
void setup_graph (GVC_t *gvc, graph_t *g)
shape_kind shapeOf (node_t *)
void shape_clip (node_t *n, pointf curve[4])
void make_simple_label (GVC_t *gvc, textlabel_t *rv)
int stripedBox (GVJ_t *job, pointf *AF, char *clrs, int rotate)
stroke_ttaper (bezier *, double(*radfunc_t)(double, double, double), double initwid, int linejoin, int linecap)
stroke_ttaper0 (bezier *bez, double initwid)
pointf textspan_size (GVC_t *gvc, textspan_t *span)
Dt_ttextfont_dict_open (GVC_t *gvc)
void textfont_dict_close (GVC_t *gvc)
void translate_bb (Agraph_t *, int)
int wedgedEllipse (GVJ_t *job, pointf *pf, char *clrs)
void update_bb_bz (boxf *bb, pointf *cp)
void write_attributed_dot (graph_t *g, FILE *f)
void write_canonical_dot (graph_t *g, FILE *f)
boxf xdotBB (graph_t *g)
char * findAttrColor (void *obj, attrsym_t *colorattr, char *dflt)

Macro Definition Documentation

#define __USE_GNU

Definition at line 26 of file render.h.

Typedef Documentation

typedef struct epsf_s epsf_t

Function Documentation

void add_box ( path ,

Definition at line 352 of file splines.c.

References path::boxes, boxf::LL, path::nbox, boxf::UR, pointf_s::x, and pointf_s::y.

void addEdgeLabels ( graph_t g,
edge_t e,
pointf  rp,
pointf  rq 
boxf arrow_bb ( pointf  p,
pointf  u,
double  arrowsize,
int  flag 

Definition at line 691 of file arrows.c.

References ARROW_LENGTH, EPSILON, boxf::LL, MAX, MIN, boxf::UR, pointf_s::x, and pointf_s::y.

void arrow_flags ( Agedge_t e,
int sflag,
int eflag 
void arrow_gen ( GVJ_t job,
emit_state_t  emit_state,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
int  flag 
double arrow_length ( edge_t e,
int  flag 
int arrowEndClip ( edge_t ,
pointf ,
int  ,
int  ,
bezier ,
int  eflag 
void arrowOrthoClip ( edge_t ,
pointf ps,
int  ,
int  ,
bezier ,
int  sflag,
int  eflag 
int arrowStartClip ( edge_t ,
pointf ps,
int  ,
int  ,
bezier ,
int  sflag 
void beginpath ( path ,
Agedge_t ,
int  ,
pathend_t ,
void bezier_clip ( inside_t inside_context,
boolean(*)(inside_t *inside_context, pointf p)  insidefn,
pointf sp,
boolean  left_inside 

Definition at line 106 of file splines.c.

References ABS, Bezier(), FALSE, left, NULL, right, TRUE, pointf_s::x, and pointf_s::y.

Referenced by arrowEndClip(), and arrowStartClip().

shape_desc* bind_shape ( char *  name,

Definition at line 3837 of file shapes.c.

References agget(), shape_desc::name, NULL, safefile(), str, and streq.

Referenced by common_init_node().

char* charsetToStr ( int  c)

Definition at line 866 of file input.c.

References agerr(), AGERR, CHAR_BIG5, CHAR_LATIN1, and CHAR_UTF8.

Referenced by initHTMLlexer().

void clip_and_install ( edge_t fe,
node_t hn,
pointf ps,
int  pn,
splineInfo info 
pointf coord ( node_t n)

Definition at line 202 of file utils.c.

References ND_pos, POINTS_PER_INCH, pointf_s::x, and pointf_s::y.

Referenced by compute_bb(), QuadTree_get_supernodes_internal(), and right_of().

void do_graph_label ( graph_t sg)
int dotneato_args_initialize ( GVC_t gvc,
int  ,
char **   
void dotneato_postprocess ( Agraph_t )
void dotneato_set_margins ( GVC_t gvc,
int dotneato_usage ( int  )

Definition at line 71 of file input.c.

References CmdName, and GvExitOnUsage.

Referenced by dotneato_args_initialize().

void dotneato_write ( GVC_t gvc,
graph_t g 
void dotneato_write_one ( GVC_t gvc,
graph_t g 
pointf edgeMidpoint ( graph_t g,
edge_t e 
Ppolyline_t* ellipticWedge ( pointf  ctr,
double  major,
double  minor,
double  angle0,
double  angle1 

Definition at line 565 of file ellipse.c.

References pointf_s::x, and pointf_s::y.

Referenced by wedgedEllipse().

void emit_clusters ( GVJ_t job,
Agraph_t g,
int  flags 
void emit_graph ( GVJ_t job,
graph_t g 

Definition at line 3545 of file emit.c.

void emit_jobs_eof ( GVC_t gvc)
void emit_label ( GVJ_t job,
emit_state_t  emit_state,
void emit_map_rect ( GVJ_t job,
boxf  b 
int emit_once ( char *  message)

Definition at line 3621 of file emit.c.

void endpath ( path ,
Agedge_t ,
int  ,
pathend_t ,
void epsf_free ( node_t n)

Definition at line 121 of file psusershape.c.

References ND_shape_info.

void epsf_init ( node_t n)
shape_desc* find_user_shape ( const char *  )

Definition at line 3803 of file shapes.c.

Referenced by gvrender_usershape().

char* findAttrColor ( void *  obj,
attrsym_t colorattr,
char *  dflt 

Definition at line 367 of file shapes.c.

References DEFAULT_FILL, late_nnstring(), and NULL.

void free_label ( textlabel_t )
void free_line ( textspan_t )
void free_textspan ( textspan_t tl,

Definition at line 193 of file labels.c.

References textspan_t::free_layout, textspan_t::layout, and textspan_t::str.

Referenced by free_label().

void getdouble ( graph_t g,
char *  name,
double *  result 

Definition at line 475 of file input.c.

References agget().

Referenced by scan_graph_mode().

char* getObjId ( GVJ_t job,
void *  obj,
agxbuf xb 

Definition at line 198 of file emit.c.

References AGEDGE, agget(), AGNODE, agobjkind(), AGRAPH, AGSEQ, agxbput(), agxbputc, agxbuse, GVC_s::g, GD_drawing, GVJ_s::gvc, and NULL.

splines* getsplinepoints ( edge_t e)

Definition at line 1478 of file splines.c.

References agerr(), AGERR, aghead(), agnameof(), agtail(), ED_edge_type, ED_spl, ED_to_orig, le, NORMAL, and NULL.

Referenced by place_portlabel().

void graph_cleanup ( graph_t g)

Definition at line 847 of file input.c.

void graph_init ( graph_t g,
boolean  use_rankdir 

Definition at line 654 of file input.c.

void gv_cleanup_edge ( Agedge_t e)
void gv_cleanup_node ( Agnode_t n)
void gv_fixLocale ( int  set)

Definition at line 4070 of file emit.c.

void gv_free_splines ( edge_t e)

Definition at line 1935 of file utils.c.

References ED_spl, and NULL.

Referenced by gv_cleanup_edge().

void gv_postprocess ( Agraph_t ,
void* init_xdot ( Agraph_t g)
int initMapData ( GVJ_t ,
char *  ,
char *  ,
char *  ,
char *  ,
char *  ,
void *   
boolean isPolygon ( node_t )

Definition at line 1840 of file shapes.c.

References ND_shape.

Referenced by attach_attrs_and_arrows().

textlabel_t* make_label ( void *  obj,
char *  str,
int  kind,
double  fontsize,
char *  fontname,
char *  fontcolor 
void make_simple_label ( GVC_t gvc,
textlabel_t rv 
void makePortLabels ( edge_t e)
void makeSelfEdge ( path P,
edge_t edges[],
int  ind,
int  cnt,
double  sizex,
double  sizey,
splineInfo sinfo 

Definition at line 1191 of file splines.c.

References assert, BOTTOM, ED_head_port, ED_tail_port, LEFT, RIGHT, and TOP.

Referenced by makeSelfArcs().

void makeStraightEdge ( graph_t g,
edge_t e,
int  edgetype,
splineInfo info 

Definition at line 936 of file routespl.c.

References ED_to_virt, makeStraightEdges(), MAX_EDGE, and N_NEW.

void makeStraightEdges ( graph_t g,
edge_t **  edges,
int  e_cnt,
int  et,
splineInfo sinfo 
bezier* new_spline ( edge_t e,
int  sz 
char** parse_style ( char *  s)
void place_graph_label ( Agraph_t )
int place_portlabel ( edge_t e,
boolean  head_p 
void pop_obj_state ( GVJ_t job)
obj_state_t* push_obj_state ( GVJ_t job)
int rank ( graph_t g,
int  balance,
int  maxiter 

Definition at line 866 of file ns.c.

References agget(), rank2(), and SEARCHSIZE.

Referenced by dot_position(), rank1(), and sizeArray().

port resolvePort ( node_t n,
node_t other,
port oldport 

Definition at line 4196 of file shapes.c.

References port::bp, port::name, NULL, and port::side.

Referenced by beginpath(), endpath(), and resolvePorts().

void resolvePorts ( edge_t e)

Definition at line 4208 of file shapes.c.

References aghead(), agtail(), ED_head_port, ED_tail_port, and resolvePort().

Referenced by splineEdges().

void round_corners ( GVJ_t job,
pointf AF,
int  sides,
int  style,
int  filled 
pointf* routepolylines ( path pp,
int npoints 

Definition at line 658 of file routespl.c.

pointf* routesplines ( path ,

Definition at line 653 of file routespl.c.

int routesplinesinit ( void  )

Definition at line 288 of file routespl.c.

References agerr(), AGERR, N_GNEW, NULL, PINC, Show_boxes, Show_cnt, start_timer(), and Verbose.

void routesplinesterm ( void  )

Definition at line 313 of file routespl.c.

References elapsed_sec(), NULL, and Verbose.

int selfRightSpace ( edge_t e)
void setup_graph ( GVC_t gvc,
graph_t g 
void shape_clip ( node_t n,
pointf  curve[4] 

Definition at line 195 of file splines.c.

References inside_t::bp, inside_t::n, ND_coord, ND_rw, ND_shape, NULL, inside_t::s, pointf_s::x, and pointf_s::y.

shape_kind shapeOf ( node_t )

Definition at line 1820 of file shapes.c.

References epsf_init(), ND_shape, SH_EPSF, SH_POINT, SH_POLY, SH_RECORD, and SH_UNSET.

Referenced by common_init_node(), makeAddPoly(), makeObstacle(), and makePoly().

pointf* simpleSplineRoute ( pointf  ,
pointf  ,
Ppoly_t  ,
int ,
int stripedBox ( GVJ_t job,
pointf AF,
char *  clrs,
int  rotate 
stroke_t* taper ( bezier ,
double(*)(double, double, double)  radfunc_t,
double  initwid,
int  linejoin,
int  linecap 
stroke_t* taper0 ( bezier bez,
double  initwid 

Definition at line 423 of file taper.c.

References taper().

void textfont_dict_close ( GVC_t gvc)

Definition at line 286 of file textspan.c.

Referenced by gvFreeContext().

Dt_t* textfont_dict_open ( GVC_t gvc)

Definition at line 279 of file textspan.c.

Referenced by gvconfig().

pointf textspan_size ( GVC_t gvc,
textspan_t span 
void translate_bb ( Agraph_t ,
void update_bb_bz ( boxf bb,
pointf cp 

Definition at line 794 of file emit.c.

References Bezier(), left, boxf::LL, right, update_bb_bz(), boxf::UR, pointf_s::x, and pointf_s::y.

Referenced by clip_and_install(), and update_bb_bz().

int wedgedEllipse ( GVJ_t job,
pointf pf,
char *  clrs 
void write_attributed_dot ( graph_t g,
FILE *  f 
void write_canonical_dot ( graph_t g,
FILE *  f 
boxf xdotBB ( graph_t g)