#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 "graph.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 |
Typedefs | |
typedef epsf_s | epsf_t |
typedef void(*) | nodesizefn_t (Agnode_t *, boolean) |
Functions | |
void | add_box (path *, box) |
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, point p, point u, double arrowsize, double penwidth, int flag) |
double | arrow_length (edge_t *e, int flag) |
int | arrowEndClip (edge_t *, point *, int, int, bezier *, int eflag) |
int | arrowStartClip (edge_t *, point *ps, int, int, bezier *, int sflag) |
void | attach_attrs (Agraph_t *) |
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_desc * | bind_shape (char *name, node_t *) |
void | clip_and_install (edge_t *, node_t *, point *, int, splineInfo *) |
char * | charsetToStr (int c) |
point | 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) |
void | dotneato_args_initialize (GVC_t *gvc, int, char **) |
void | dotneato_usage (int) |
void | dotneato_postprocess (Agraph_t *) |
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) |
double | elapsed_sec (void) |
void | emit_background (GVJ_t *job, graph_t *g) |
void | emit_clusters (GVJ_t *job, Agraph_t *g, int flags) |
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, point LL, point UR) |
void | enqueue_neighbors (nodequeue *, Agnode_t *, int) |
void | endpath (path *, Agedge_t *, int, pathend_t *, boolean) |
void | epsf_init (node_t *n) |
void | epsf_free (node_t *n) |
shape_desc * | find_user_shape (char *) |
void | free_line (textpara_t *) |
void | free_label (textlabel_t *) |
void | getdouble (graph_t *g, char *name, double *result) |
splines * | getsplinepoints (edge_t *e) |
void | global_def (char *, Agsym_t *(*fun)(Agraph_t *, char *, char *)) |
int | gvRenderJobs (GVC_t *gvc, graph_t *g) |
int | initMapData (GVJ_t *, char *, char *, char *, char *, void *) |
boolean | isPolygon (node_t *) |
char * | strdup_and_subst_obj (char *str, void *obj) |
char * | xml_string (char *s) |
void | makeSelfEdge (path *, edge_t **, int, int, int, int, splineInfo *) |
textlabel_t * | make_label (graph_t *g, int html, char *str, double fontsize, char *fontname, char *fontcolor) |
bezier * | new_spline (edge_t *e, int sz) |
void | osize_label (textlabel_t *, int *, int *, int *, int *) |
char ** | parse_style (char *s) |
void | place_graph_label (Agraph_t *) |
void | place_portlabel (edge_t *e, boolean head_p) |
char * | ps_string (char *s, int) |
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) |
void | round_corners (GVJ_t *, char *, char *, pointf *, int, int) |
void | routesplinesinit (void) |
point * | routesplines (path *, int *) |
void | routesplinesterm (void) |
point * | routepolylines (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, point curve[4]) |
void | size_label (graph_t *g, textlabel_t *rv) |
void | start_timer (void) |
pointf | textsize (graph_t *g, textpara_t *para, char *fontname, double fontsize) |
void | translate_bb (Agraph_t *, int) |
void | write_attributed_dot (graph_t *g, FILE *f) |
void | write_canonical_dot (graph_t *g, FILE *f) |
void | write_plain (GVJ_t *job, graph_t *g, FILE *f, boolean extend) |
typedef void(*) nodesizefn_t(Agnode_t *, boolean) |
Definition at line 352 of file splines.c.
References path::boxes, box::LL, path::nbox, box::UR, point::x, and point::y.
Definition at line 508 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 | |||
) |
Definition at line 170 of file arrows.c.
References AG_IS_DIRECTED, agxget(), arrowdir_t::dir, E_dir, arrowdir_t::eflag, Agnode_t::graph, Agsym_t::index, arrowdir_t::sflag, streq, and Agedge_t::tail.
void arrow_gen | ( | GVJ_t * | job, | |
emit_state_t | emit_state, | |||
point | p, | |||
point | u, | |||
double | arrowsize, | |||
double | penwidth, | |||
int | flag | |||
) |
double arrow_length | ( | edge_t * | e, | |
int | flag | |||
) |
Definition at line 202 of file arrows.c.
References arrowtype_t::gen, arrowtype_t::lenfact, and arrowtype_t::type.
Referenced by arrowEndClip(), and arrowStartClip().
Definition at line 234 of file arrows.c.
References inside_t::a, arrow_length(), bezier_clip(), bezier::eflag, bezier::ep, inside_t::p, P2PF, PF2P, inside_t::r, and TRUE.
Definition at line 263 of file arrows.c.
References inside_t::a, arrow_length(), bezier_clip(), FALSE, inside_t::p, P2PF, PF2P, inside_t::r, bezier::sflag, and bezier::sp.
Definition at line 391 of file splines.c.
References add_points(), assert, BOTTOM, pathend_t::boxes, pathend_t::boxn, port::constrained, path::data, ED_edge_type, ED_head_port, ED_tail_port, ED_to_orig, path::end, FALSE, FLATEDGE, FUDGE, GD_ranksep, Agnode_t::graph, LEFT, box::LL, path::llpp, path::lrpp, MAX, MIN, pathend_t::nb, path::nbox, ND_coord_i, ND_ht_i, ND_lw_i, ND_node_type, ND_rw_i, ND_shape, NORMAL, pathend_t::np, NULL, port::p, REGULAREDGE, RIGHT, SELFEDGE, pathend_t::sidemask, path::start, Agedge_t::tail, port::theta, TOP, TRUE, path::ulpp, box::UR, path::urpp, point::x, and point::y.
Referenced by makeSelfEdge().
void bezier_clip | ( | inside_t * | inside_context, | |
boolean(*)(inside_t *inside_context, pointf p) | insidefn, | |||
pointf * | sp, | |||
boolean | left_inside | |||
) |
Definition at line 100 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, | |
node_t * | ||||
) |
Definition at line 2376 of file shapes.c.
References agget(), shape_desc::name, NULL, safefile(), and streq.
Referenced by common_init_node().
char* charsetToStr | ( | int | c | ) |
Definition at line 727 of file input.c.
References AGERR, agerr(), CHAR_BIG5, CHAR_LATIN1, and CHAR_UTF8.
Referenced by initHTMLlexer().
void clip_and_install | ( | edge_t * | , | |
node_t * | , | |||
point * | , | |||
int | , | |||
splineInfo * | ||||
) |
Definition at line 250 of file splines.c.
References inside_t::bp, ED_edge_type, ED_head_port, ED_tail_port, ED_to_orig, FALSE, Agnode_t::graph, bezier::list, inside_t::n, ND_coord_i, ND_shape, new_spline(), NORMAL, Agnodeinfo_t::order, Agnodeinfo_t::rank, inside_t::s, bezier::size, Agedge_t::tail, TRUE, Agnode_t::u, update_bb(), pointf_s::x, point::x, pointf_s::y, and point::y.
Referenced by makeSelfEdge(), and makeSpline().
Definition at line 185 of file utils.c.
References cvt2pt(), ND_pos, pointf_s::x, and pointf_s::y.
Referenced by compute_bb(), and right_of().
void dotneato_args_initialize | ( | GVC_t * | gvc, | |
int | , | |||
char ** | ||||
) |
Definition at line 170 of file input.c.
References agedgeattr(), AGERR, agfindattr(), aginit, AGMAX, agnodeattr(), agprotograph(), agraphattr(), agseterr(), assert, CmdName, GVCOMMON_s::cmdname, GVC_s::common, GVCOMMON_s::config, dotneato_usage(), global_def(), gvconfig(), Gvfilepath, gvjobs_output_filename(), gvjobs_output_langname(), gvlayout_select(), gvplugin_list(), HTTPServerEnVar, N_NEW, NO_SUPPORT, NODENAME_ESC, NULL, PSinputscale, Reduce, TRUE, Verbose, and Y_invert.
Referenced by gvParseArgs().
void dotneato_postprocess | ( | Agraph_t * | ) |
Definition at line 224 of file postproc.c.
References GD_bb, GD_flip, GD_label, GD_label_pos, GD_rankdir, LABEL_AT_TOP, M1, M2, PAD, PF2P, place_graph_label(), pointof(), RANKDIR_BT, RANKDIR_LR, RANKDIR_RL, RANKDIR_TB, Show_boxes, point::x, and point::y.
Referenced by circo_layout(), dot_layout(), fdp_layout(), neato_layout(), pack_graph(), and twopi_layout().
void dotneato_usage | ( | int | ) |
Definition at line 65 of file input.c.
References CmdName.
Referenced by dotneato_args_initialize().
double elapsed_sec | ( | void | ) |
Definition at line 48 of file timing.c.
References DIFF_IN_SECS, and GET_TIME.
Referenced by diffeq_model(), rank(), routesplinesterm(), shortest_path(), solve_model(), and stress_majorization_kD_mkernel().
Definition at line 763 of file emit.c.
References agget(), GVJ_s::clip, GVJ_s::flags, gvrender_box(), GVRENDER_NO_BG, gvrender_set_fillcolor(), gvrender_set_pencolor(), and TRUE.
Definition at line 2359 of file emit.c.
References agfstnode(), agfstout(), agget(), agnxtnode(), agnxtout(), agxget(), DEFAULT_ACTIVEFILLCOLOR, DEFAULT_ACTIVEPENCOLOR, DEFAULT_COLOR, DEFAULT_DELETEDFILLCOLOR, DEFAULT_DELETEDPENCOLOR, DEFAULT_FILL, DEFAULT_SELECTEDFILLCOLOR, DEFAULT_SELECTEDPENCOLOR, DEFAULT_VISITEDFILLCOLOR, DEFAULT_VISITEDPENCOLOR, EMIT_CLABEL, emit_clusters(), emit_label(), emit_map_rect(), obj_state_s::explicit_tooltip, FALSE, FILLED, G_activefillcolor, G_activepencolor, G_deletedfillcolor, G_deletedpencolor, G_penwidth, G_peripheries, G_visitedfillcolor, G_visitedpencolor, GD_bb, GD_clust, GD_gui_state, GD_label, GD_n_cluster, gvrender_begin_anchor(), gvrender_begin_context(), gvrender_box(), gvrender_end_anchor(), gvrender_end_context(), gvrender_set_fillcolor(), gvrender_set_pencolor(), gvrender_set_penwidth(), gvrender_set_style(), Agsym_t::index, late_double(), late_int(), late_nnstring(), boxf::LL, round_corners(), ROUNDED, setColorScheme(), obj_state_s::target, obj_state_s::tooltip, TRUE, boxf::UR, obj_state_s::url, pointf_s::x, and pointf_s::y.
Referenced by emit_clusters().
void emit_jobs_eof | ( | GVC_t * | gvc | ) |
void emit_label | ( | GVJ_t * | job, | |
emit_state_t | emit_state, | |||
textlabel_t * | ||||
) |
Definition at line 173 of file labels.c.
References textlabel_t::d, textlabel_t::dimen, emit_html_label(), obj_state_s::emit_state, textlabel_t::fontcolor, textlabel_t::fontname, textlabel_t::fontsize, gvrender_begin_context(), gvrender_set_font(), gvrender_set_pencolor(), gvrender_textpara(), textlabel_t::html, GVJ_s::obj, textlabel_t::p, textlabel_t::txt, textlabel_t::u, point::x, pointf_s::x, point::y, and pointf_s::y.
Referenced by emit_clusters().
Definition at line 168 of file emit.c.
References GVJ_s::flags, free(), GVRENDER_DOES_MAPS, GVRENDER_DOES_TOOLTIPS, gvrender_ptf_A(), MAP_POLYGON, MAP_RECTANGLE, N_NEW, GVJ_s::obj, P2PF, rect2poly(), obj_state_s::url_map_n, obj_state_s::url_map_p, and obj_state_s::url_map_shape.
Referenced by emit_clusters().
Definition at line 581 of file splines.c.
References add_points(), assert, BOTTOM, pathend_t::boxes, pathend_t::boxn, port::constrained, ED_edge_type, ED_head_port, ED_tail_port, ED_to_orig, path::end, FALSE, FLATEDGE, FUDGE, GD_ranksep, Agnode_t::graph, Agedge_t::head, LEFT, box::LL, M_PI, MAX, MIN, pathend_t::nb, ND_coord_i, ND_ht_i, ND_lw_i, ND_node_type, ND_rw_i, ND_shape, NORMAL, pathend_t::np, NULL, port::p, REGULAREDGE, RIGHT, SELFEDGE, pathend_t::sidemask, path::start, port::theta, TOP, TRUE, box::UR, point::x, and point::y.
Referenced by makeSelfEdge().
Definition at line 921 of file mincross.c.
References enqueue(), FALSE, Agedge_t::head, MARK, ND_in, ND_out, Agedge_t::tail, and TRUE.
Referenced by build_ranks(), and install_cluster().
void epsf_free | ( | node_t * | n | ) |
void epsf_init | ( | node_t * | n | ) |
Definition at line 99 of file psusershape.c.
References agerr(), agget(), AGWARN, usershape_s::h, usershape_s::macro_id, epsf_s::macro_id, Agnode_t::name, ND_height, ND_shape_info, ND_width, NEW, epsf_s::offset, safefile(), usershape_s::w, usershape_s::x, point::x, usershape_s::y, and point::y.
Referenced by shapeOf().
shape_desc* find_user_shape | ( | char * | ) |
void free_label | ( | textlabel_t * | ) |
Definition at line 160 of file labels.c.
References free(), free_html_label(), textlabel_t::html, textlabel_t::text, textlabel_t::txt, and textlabel_t::u.
Referenced by graph_cleanup(), neato_cleanup_edge(), and neato_cleanup_node().
void free_line | ( | textpara_t * | ) |
void getdouble | ( | graph_t * | g, | |
char * | name, | |||
double * | result | |||
) |
Definition at line 1410 of file splines.c.
References ED_edge_type, ED_spl, ED_to_orig, le, NORMAL, and NULL.
Referenced by place_portlabel().
int initMapData | ( | GVJ_t * | , | |
char * | , | |||
char * | , | |||
char * | , | |||
char * | , | |||
void * | ||||
) |
Definition at line 97 of file emit.c.
References obj_state_s::explicit_tooltip, GVJ_s::flags, GVRENDER_DOES_LABELS, GVRENDER_DOES_MAPS, GVRENDER_DOES_TARGETS, GVRENDER_DOES_TOOLTIPS, obj_state_s::label, GVJ_s::obj, strdup_and_subst_obj(), obj_state_s::target, obj_state_s::tooltip, TRUE, and obj_state_s::url.
Definition at line 687 of file shapes.c.
References ND_shape.
Referenced by attach_attrs_and_arrows().
textlabel_t* make_label | ( | graph_t * | g, | |
int | html, | |||
char * | str, | |||
double | fontsize, | |||
char * | fontname, | |||
char * | fontcolor | |||
) |
Definition at line 133 of file labels.c.
References textlabel_t::fontcolor, textlabel_t::fontname, textlabel_t::fontsize, textlabel_t::html, LT_HTML, LT_NONE, NEW, size_label(), textlabel_t::text, and TRUE.
Referenced by common_init_edge(), common_init_node(), and do_graph_label().
void makeSelfEdge | ( | path * | , | |
edge_t ** | , | |||
int | , | |||
int | , | |||
int | , | |||
int | , | |||
splineInfo * | ||||
) |
Referenced by makeSelfArcs().
Definition at line 211 of file splines.c.
References ALLOC, ED_edge_type, ED_spl, ED_to_orig, bezier::eflag, FALSE, bezier::list, N_NEW, NEW, NORMAL, NULL, bezier::sflag, and bezier::size.
Referenced by clip_and_install().
void osize_label | ( | textlabel_t * | , | |
int * | , | |||
int * | , | |||
int * | , | |||
int * | ||||
) |
char** parse_style | ( | char * | s | ) |
void place_graph_label | ( | Agraph_t * | ) |
Definition at line 399 of file postproc.c.
References BOTTOM_IX, GD_bb, GD_border, GD_clust, GD_label, GD_label_pos, GD_n_cluster, place_graph_label(), Agraph_t::root, TOP_IX, TRUE, point::x, and point::y.
Referenced by dotneato_postprocess(), and place_graph_label().
Definition at line 1361 of file splines.c.
References Bezier(), dist(), ED_edge_type, ED_head_label, ED_tail_label, bezier::eflag, bezier::ep, getsplinepoints(), IGNORED, splines::list, bezier::list, NULL, P2PF, bezier::sflag, splines::size, bezier::size, and bezier::sp.
void pop_obj_state | ( | GVJ_t * | job | ) |
Definition at line 65 of file emit.c.
References assert, free(), obj_state_s::headtarget, obj_state_s::headtooltip, obj_state_s::headurl, obj_state_s::labeltarget, obj_state_s::labeltooltip, obj_state_s::labelurl, GVJ_s::obj, obj_state_s::parent, obj_state_s::tailtarget, obj_state_s::tailtooltip, obj_state_s::tailurl, obj_state_s::target, obj_state_s::tooltip, obj_state_s::url, obj_state_s::url_bsplinemap_n, obj_state_s::url_bsplinemap_p, and obj_state_s::url_map_p.
char* ps_string | ( | char * | s, | |
int | ||||
) |
Definition at line 221 of file psusershape.c.
obj_state_t* push_obj_state | ( | GVJ_t * | job | ) |
Definition at line 38 of file emit.c.
References AGERR, agerr(), obj_state_s::fill, FILL_NONE, obj_state_s::fillcolor, GVJ_s::obj, obj_state_s::parent, parent, obj_state_s::pen, PEN_SOLID, obj_state_s::pencolor, obj_state_s::penwidth, PENWIDTH_NORMAL, and zmalloc().
int rank | ( | graph_t * | g, | |
int | balance, | |||
int | maxiter | |||
) |
Definition at line 581 of file ns.c.
References agget(), elapsed_sec(), SEARCHSIZE, start_timer(), and Verbose.
Referenced by dot_position(), and sizeArray().
Definition at line 375 of file shapes.c.
References assert, BOX3D, C, COMPONENT, DIAGONALS, DOGEAR, FALSE, FILLED, FOLDER, free(), gvrender_begin_context(), gvrender_beziercurve(), gvrender_end_context(), gvrender_polygon(), gvrender_polyline(), gvrender_set_fillcolor(), gvrender_set_pencolor(), N_GNEW, N_NEW, RBCONST, RBCURVE, ROUNDED, TAB, TRUE, pointf_s::x, and pointf_s::y.
Referenced by emit_clusters().
Definition at line 577 of file routespl.c.
void routesplinesinit | ( | void | ) |
Definition at line 235 of file routespl.c.
References agerr(), AGERR, free(), N_GNEW, NULL, PINC, Show_boxes, Show_cnt, start_timer(), and Verbose.
void routesplinesterm | ( | void | ) |
int selfRightSpace | ( | edge_t * | e | ) |
Definition at line 1236 of file splines.c.
References BOTTOM, textlabel_t::dimen, ED_head_port, ED_label, ED_tail_port, GD_flip, Agnode_t::graph, Agedge_t::head, LEFT, SELF_EDGE_SIZE, TOP, pointf_s::x, and pointf_s::y.
Definition at line 188 of file splines.c.
References inside_t::bp, inside_t::n, ND_coord_i, ND_rw_i, ND_shape, NULL, inside_t::s, pointf_s::x, point::x, pointf_s::y, and point::y.
shape_kind shapeOf | ( | node_t * | ) |
Definition at line 667 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(), makeObstacle(), and makePoly().
void size_label | ( | graph_t * | g, | |
textlabel_t * | rv | |||
) |
Definition at line 112 of file labels.c.
References CHAR_LATIN1, free(), GD_charset, htmlEntityUTF8(), latin1ToUTF8(), Agraph_t::root, and textlabel_t::text.
Referenced by make_html_label(), and make_label().
void start_timer | ( | void | ) |
Definition at line 43 of file timing.c.
References GET_TIME.
Referenced by diffeq_model(), rank(), routesplinesinit(), shortest_path(), and stress_majorization_kD_mkernel().
pointf textsize | ( | graph_t * | g, | |
textpara_t * | para, | |||
char * | fontname, | |||
double | fontsize | |||
) |
Definition at line 239 of file fontmetrics.c.
void translate_bb | ( | Agraph_t * | , | |
int | ||||
) |
Definition at line 121 of file postproc.c.
References GD_bb, GD_clust, GD_label, GD_n_cluster, box::LL, pointof(), RANKDIR_BT, RANKDIR_LR, translate_bb(), box::UR, point::x, and point::y.
Referenced by translate_bb().
void write_attributed_dot | ( | graph_t * | g, | |
FILE * | f | |||
) |
void write_canonical_dot | ( | graph_t * | g, | |
FILE * | f | |||
) |