Graphviz 12.0.1~dev.20240715.2254
Loading...
Searching...
No Matches

graphs, nodes and edges info: Agraphinfo_t, Agnodeinfo_t and Agedgeinfo_t More...

#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <stdint.h>
#include <assert.h>
#include <signal.h>
#include "geom.h"
#include "gvcext.h"
#include "pathgeom.h"
#include "textspan.h"
#include "cgraph.h"
#include "usershape.h"
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  port
 
struct  splineInfo
 
struct  pathend_t
 
struct  path
 
struct  bezier
 
struct  splines
 
struct  textlabel_t
 
struct  graphviz_polygon_style_t
 
struct  polygon_t
 
union  inside_t
 
struct  stroke_t
 
struct  shape_functions
 
struct  shape_desc
 
struct  rank_t
 
struct  layout_t
 
struct  field_t
 
struct  nlist_t
 
struct  elist
 
struct  Agraphinfo_t
 
struct  Agnodeinfo_t
 
struct  Agedgeinfo_t
 
struct  gvlayout_features_t
 

Macros

#define WITH_CGRAPH   1
 
#define TAIL_ID   "tailport"
 
#define HEAD_ID   "headport"
 
#define GUI_STATE_ACTIVE   (1<<0)
 
#define GUI_STATE_SELECTED   (1<<1)
 
#define GUI_STATE_VISITED   (1<<2)
 
#define GUI_STATE_DELETED   (1<<3)
 
#define elist_append(item, L)
 
#define alloc_elist(n, L)
 
#define free_list(L)   free(L.list)
 
#define GD_parent(g)   (((Agraphinfo_t*)AGDATA(g))->parent)
 
#define GD_level(g)   (((Agraphinfo_t*)AGDATA(g))->level)
 
#define GD_drawing(g)   (((Agraphinfo_t*)AGDATA(g))->drawing)
 
#define GD_bb(g)   (((Agraphinfo_t*)AGDATA(g))->bb)
 
#define GD_gvc(g)   (((Agraphinfo_t*)AGDATA(g))->gvc)
 
#define GD_cleanup(g)   (((Agraphinfo_t*)AGDATA(g))->cleanup)
 
#define GD_dist(g)   (((Agraphinfo_t*)AGDATA(g))->dist)
 
#define GD_alg(g)   (((Agraphinfo_t*)AGDATA(g))->alg)
 
#define GD_border(g)   (((Agraphinfo_t*)AGDATA(g))->border)
 
#define GD_clust(g)   (((Agraphinfo_t*)AGDATA(g))->clust)
 
#define GD_dotroot(g)   (((Agraphinfo_t*)AGDATA(g))->dotroot)
 
#define GD_comp(g)   (((Agraphinfo_t*)AGDATA(g))->comp)
 
#define GD_exact_ranksep(g)   (((Agraphinfo_t*)AGDATA(g))->exact_ranksep)
 
#define GD_expanded(g)   (((Agraphinfo_t*)AGDATA(g))->expanded)
 
#define GD_flags(g)   (((Agraphinfo_t*)AGDATA(g))->flags)
 
#define GD_gui_state(g)   (((Agraphinfo_t*)AGDATA(g))->gui_state)
 
#define GD_charset(g)   (((Agraphinfo_t*)AGDATA(g))->charset)
 
#define GD_has_labels(g)   (((Agraphinfo_t*)AGDATA(g))->has_labels)
 
#define GD_has_images(g)   (((Agraphinfo_t*)AGDATA(g))->has_images)
 
#define GD_has_flat_edges(g)   (((Agraphinfo_t*)AGDATA(g))->has_flat_edges)
 
#define GD_ht1(g)   (((Agraphinfo_t*)AGDATA(g))->ht1)
 
#define GD_ht2(g)   (((Agraphinfo_t*)AGDATA(g))->ht2)
 
#define GD_installed(g)   (((Agraphinfo_t*)AGDATA(g))->installed)
 
#define GD_label(g)   (((Agraphinfo_t*)AGDATA(g))->label)
 
#define GD_leader(g)   (((Agraphinfo_t*)AGDATA(g))->leader)
 
#define GD_rankdir2(g)   (((Agraphinfo_t*)AGDATA(g))->rankdir)
 
#define GD_rankdir(g)   (((Agraphinfo_t*)AGDATA(g))->rankdir & 0x3)
 
#define GD_flip(g)   (GD_rankdir(g) & 1)
 
#define GD_realrankdir(g)   ((((Agraphinfo_t*)AGDATA(g))->rankdir) >> 2)
 
#define GD_realflip(g)   (GD_realrankdir(g) & 1)
 
#define GD_ln(g)   (((Agraphinfo_t*)AGDATA(g))->ln)
 
#define GD_maxrank(g)   (((Agraphinfo_t*)AGDATA(g))->maxrank)
 
#define GD_maxset(g)   (((Agraphinfo_t*)AGDATA(g))->maxset)
 
#define GD_minrank(g)   (((Agraphinfo_t*)AGDATA(g))->minrank)
 
#define GD_minset(g)   (((Agraphinfo_t*)AGDATA(g))->minset)
 
#define GD_minrep(g)   (((Agraphinfo_t*)AGDATA(g))->minrep)
 
#define GD_maxrep(g)   (((Agraphinfo_t*)AGDATA(g))->maxrep)
 
#define GD_move(g)   (((Agraphinfo_t*)AGDATA(g))->move)
 
#define GD_n_cluster(g)   (((Agraphinfo_t*)AGDATA(g))->n_cluster)
 
#define GD_ndim(g)   (((Agraphinfo_t*)AGDATA(g))->ndim)
 
#define GD_odim(g)   (((Agraphinfo_t*)AGDATA(g))->odim)
 
#define GD_neato_nlist(g)   (((Agraphinfo_t*)AGDATA(g))->neato_nlist)
 
#define GD_nlist(g)   (((Agraphinfo_t*)AGDATA(g))->nlist)
 
#define GD_nodesep(g)   (((Agraphinfo_t*)AGDATA(g))->nodesep)
 
#define GD_rank(g)   (((Agraphinfo_t*)AGDATA(g))->rank)
 
#define GD_rankleader(g)   (((Agraphinfo_t*)AGDATA(g))->rankleader)
 
#define GD_ranksep(g)   (((Agraphinfo_t*)AGDATA(g))->ranksep)
 
#define GD_rn(g)   (((Agraphinfo_t*)AGDATA(g))->rn)
 
#define GD_set_type(g)   (((Agraphinfo_t*)AGDATA(g))->set_type)
 
#define GD_label_pos(g)   (((Agraphinfo_t*)AGDATA(g))->label_pos)
 
#define GD_showboxes(g)   (((Agraphinfo_t*)AGDATA(g))->showboxes)
 
#define GD_fontnames(g)   (((Agraphinfo_t*)AGDATA(g))->fontnames)
 
#define GD_spring(g)   (((Agraphinfo_t*)AGDATA(g))->spring)
 
#define GD_sum_t(g)   (((Agraphinfo_t*)AGDATA(g))->sum_t)
 
#define GD_t(g)   (((Agraphinfo_t*)AGDATA(g))->t)
 
#define ND_id(n)   (((Agnodeinfo_t*)AGDATA(n))->id)
 
#define ND_alg(n)   (((Agnodeinfo_t*)AGDATA(n))->alg)
 
#define ND_UF_parent(n)   (((Agnodeinfo_t*)AGDATA(n))->UF_parent)
 
#define ND_set(n)   (((Agnodeinfo_t*)AGDATA(n))->set)
 
#define ND_UF_size(n)   (((Agnodeinfo_t*)AGDATA(n))->UF_size)
 
#define ND_bb(n)   (((Agnodeinfo_t*)AGDATA(n))->bb)
 
#define ND_clust(n)   (((Agnodeinfo_t*)AGDATA(n))->clust)
 
#define ND_coord(n)   (((Agnodeinfo_t*)AGDATA(n))->coord)
 
#define ND_dist(n)   (((Agnodeinfo_t*)AGDATA(n))->dist)
 
#define ND_flat_in(n)   (((Agnodeinfo_t*)AGDATA(n))->flat_in)
 
#define ND_flat_out(n)   (((Agnodeinfo_t*)AGDATA(n))->flat_out)
 
#define ND_gui_state(n)   (((Agnodeinfo_t*)AGDATA(n))->gui_state)
 
#define ND_has_port(n)   (((Agnodeinfo_t*)AGDATA(n))->has_port)
 
#define ND_rep(n)   (((Agnodeinfo_t*)AGDATA(n))->rep)
 
#define ND_heapindex(n)   (((Agnodeinfo_t*)AGDATA(n))->heapindex)
 
#define ND_height(n)   (((Agnodeinfo_t*)AGDATA(n))->height)
 
#define ND_hops(n)   (((Agnodeinfo_t*)AGDATA(n))->hops)
 
#define ND_ht(n)   (((Agnodeinfo_t*)AGDATA(n))->ht)
 
#define ND_in(n)   (((Agnodeinfo_t*)AGDATA(n))->in)
 
#define ND_label(n)   (((Agnodeinfo_t*)AGDATA(n))->label)
 
#define ND_xlabel(n)   (((Agnodeinfo_t*)AGDATA(n))->xlabel)
 
#define ND_lim(n)   (((Agnodeinfo_t*)AGDATA(n))->lim)
 
#define ND_low(n)   (((Agnodeinfo_t*)AGDATA(n))->low)
 
#define ND_lw(n)   (((Agnodeinfo_t*)AGDATA(n))->lw)
 
#define ND_mark(n)   (((Agnodeinfo_t*)AGDATA(n))->mark)
 
#define ND_mval(n)   (((Agnodeinfo_t*)AGDATA(n))->mval)
 
#define ND_n_cluster(n)   (((Agnodeinfo_t*)AGDATA(n))->n_cluster)
 
#define ND_next(n)   (((Agnodeinfo_t*)AGDATA(n))->next)
 
#define ND_node_type(n)   (((Agnodeinfo_t*)AGDATA(n))->node_type)
 
#define ND_onstack(n)   (((Agnodeinfo_t*)AGDATA(n))->onstack)
 
#define ND_order(n)   (((Agnodeinfo_t*)AGDATA(n))->order)
 
#define ND_other(n)   (((Agnodeinfo_t*)AGDATA(n))->other)
 
#define ND_out(n)   (((Agnodeinfo_t*)AGDATA(n))->out)
 
#define ND_outline_width(n)   (((Agnodeinfo_t*)AGDATA(n))->outline_width)
 
#define ND_outline_height(n)   (((Agnodeinfo_t*)AGDATA(n))->outline_height)
 
#define ND_par(n)   (((Agnodeinfo_t*)AGDATA(n))->par)
 
#define ND_pinned(n)   (((Agnodeinfo_t*)AGDATA(n))->pinned)
 
#define ND_pos(n)   (((Agnodeinfo_t*)AGDATA(n))->pos)
 
#define ND_prev(n)   (((Agnodeinfo_t*)AGDATA(n))->prev)
 
#define ND_priority(n)   (((Agnodeinfo_t*)AGDATA(n))->priority)
 
#define ND_rank(n)   (((Agnodeinfo_t*)AGDATA(n))->rank)
 
#define ND_ranktype(n)   (((Agnodeinfo_t*)AGDATA(n))->ranktype)
 
#define ND_rw(n)   (((Agnodeinfo_t*)AGDATA(n))->rw)
 
#define ND_save_in(n)   (((Agnodeinfo_t*)AGDATA(n))->save_in)
 
#define ND_save_out(n)   (((Agnodeinfo_t*)AGDATA(n))->save_out)
 
#define ND_shape(n)   (((Agnodeinfo_t*)AGDATA(n))->shape)
 
#define ND_shape_info(n)   (((Agnodeinfo_t*)AGDATA(n))->shape_info)
 
#define ND_showboxes(n)   (((Agnodeinfo_t*)AGDATA(n))->showboxes)
 
#define ND_state(n)   (((Agnodeinfo_t*)AGDATA(n))->state)
 
#define ND_clustnode(n)   (((Agnodeinfo_t*)AGDATA(n))->clustnode)
 
#define ND_tree_in(n)   (((Agnodeinfo_t*)AGDATA(n))->tree_in)
 
#define ND_tree_out(n)   (((Agnodeinfo_t*)AGDATA(n))->tree_out)
 
#define ND_weight_class(n)   (((Agnodeinfo_t*)AGDATA(n))->weight_class)
 
#define ND_width(n)   (((Agnodeinfo_t*)AGDATA(n))->width)
 
#define ND_xsize(n)   (ND_lw(n)+ND_rw(n))
 
#define ND_ysize(n)   (ND_ht(n))
 
#define ED_alg(e)   (((Agedgeinfo_t*)AGDATA(e))->alg)
 
#define ED_conc_opp_flag(e)   (((Agedgeinfo_t*)AGDATA(e))->conc_opp_flag)
 
#define ED_count(e)   (((Agedgeinfo_t*)AGDATA(e))->count)
 
#define ED_cutvalue(e)   (((Agedgeinfo_t*)AGDATA(e))->cutvalue)
 
#define ED_edge_type(e)   (((Agedgeinfo_t*)AGDATA(e))->edge_type)
 
#define ED_compound(e)   (((Agedgeinfo_t*)AGDATA(e))->compound)
 
#define ED_adjacent(e)   (((Agedgeinfo_t*)AGDATA(e))->adjacent)
 
#define ED_factor(e)   (((Agedgeinfo_t*)AGDATA(e))->factor)
 
#define ED_gui_state(e)   (((Agedgeinfo_t*)AGDATA(e))->gui_state)
 
#define ED_head_label(e)   (((Agedgeinfo_t*)AGDATA(e))->head_label)
 
#define ED_head_port(e)   (((Agedgeinfo_t*)AGDATA(e))->head_port)
 
#define ED_label(e)   (((Agedgeinfo_t*)AGDATA(e))->label)
 
#define ED_xlabel(e)   (((Agedgeinfo_t*)AGDATA(e))->xlabel)
 
#define ED_label_ontop(e)   (((Agedgeinfo_t*)AGDATA(e))->label_ontop)
 
#define ED_minlen(e)   (((Agedgeinfo_t*)AGDATA(e))->minlen)
 
#define ED_path(e)   (((Agedgeinfo_t*)AGDATA(e))->path)
 
#define ED_showboxes(e)   (((Agedgeinfo_t*)AGDATA(e))->showboxes)
 
#define ED_spl(e)   (((Agedgeinfo_t*)AGDATA(e))->spl)
 
#define ED_tail_label(e)   (((Agedgeinfo_t*)AGDATA(e))->tail_label)
 
#define ED_tail_port(e)   (((Agedgeinfo_t*)AGDATA(e))->tail_port)
 
#define ED_to_orig(e)   (((Agedgeinfo_t*)AGDATA(e))->to_orig)
 
#define ED_to_virt(e)   (((Agedgeinfo_t*)AGDATA(e))->to_virt)
 
#define ED_tree_index(e)   (((Agedgeinfo_t*)AGDATA(e))->tree_index)
 
#define ED_xpenalty(e)   (((Agedgeinfo_t*)AGDATA(e))->xpenalty)
 
#define ED_dist(e)   (((Agedgeinfo_t*)AGDATA(e))->dist)
 
#define ED_weight(e)   (((Agedgeinfo_t*)AGDATA(e))->weight)
 
#define ag_xget(x, a)   agxget(x,a)
 
#define SET_RANKDIR(g, rd)   (GD_rankdir2(g) = rd)
 
#define agfindedge(g, t, h)   (agedge(g,t,h,NULL,0))
 
#define agfindnode(g, n)   (agnode(g,n,0))
 
#define agfindgraphattr(g, a)   (agattr(g,AGRAPH,a,NULL))
 
#define agfindnodeattr(g, a)   (agattr(g,AGNODE,a,NULL))
 
#define agfindedgeattr(g, a)   (agattr(g,AGEDGE,a,NULL))
 

Typedefs

typedef struct Agraph_s graph_t
 
typedef struct Agnode_s node_t
 
typedef struct Agedge_s edge_t
 
typedef struct Agsym_s attrsym_t
 
typedef struct htmllabel_t htmllabel_t
 
typedef struct port port
 
typedef struct pathend_t pathend_t
 
typedef struct path path
 
typedef struct bezier bezier
 
typedef struct splines splines
 
typedef struct textlabel_t textlabel_t
 
typedef struct polygon_t polygon_t
 
typedef union inside_t inside_t
 
typedef struct stroke_t stroke_t
 
typedef struct shape_functions shape_functions
 
typedef struct shape_desc shape_desc
 
typedef struct adjmatrix_t adjmatrix_t
 
typedef struct rank_t rank_t
 
typedef struct layout_t layout_t
 
typedef struct field_t field_t
 
typedef struct nlist_t nlist_t
 
typedef struct elist elist
 
typedef struct Agraphinfo_t Agraphinfo_t
 
typedef struct Agnodeinfo_t Agnodeinfo_t
 
typedef struct Agedgeinfo_t Agedgeinfo_t
 

Enumerations

enum  shape_kind {
  SH_UNSET , SH_POLY , SH_RECORD , SH_POINT ,
  SH_EPSF
}
 
enum  ratio_t {
  R_NONE , R_VALUE , R_FILL , R_COMPRESS ,
  R_AUTO , R_EXPAND
}
 
enum  fontname_kind { NATIVEFONTS , PSFONTS , SVGFONTS }
 

Macro Definition Documentation

◆ ag_xget

#define ag_xget (   x,
 
)    agxget(x,a)

Definition at line 606 of file types.h.

◆ alloc_elist

#define alloc_elist (   n,
  L 
)
Value:
do { \
L.size = 0; \
L.list = gv_calloc(n + 1, sizeof(edge_t *)); \
} while (0)
static void * gv_calloc(size_t nmemb, size_t size)
Definition alloc.h:26
static Dt_t * L
Definition gmlparse.c:92

Definition at line 267 of file types.h.

◆ elist_append

#define elist_append (   item,
  L 
)
Value:
do { \
L.list = gv_recalloc(L.list, L.size + 1, L.size + 2, sizeof(edge_t *)); \
L.list[L.size++] = item; \
L.list[L.size] = NULL; \
} while (0)
static void * gv_recalloc(void *ptr, size_t old_nmemb, size_t new_nmemb, size_t size)
Definition alloc.h:73
node NULL
Definition grammar.y:149
Definition utils.c:748

Definition at line 261 of file types.h.

◆ free_list

#define free_list (   L)    free(L.list)

Definition at line 272 of file types.h.

◆ GUI_STATE_ACTIVE

#define GUI_STATE_ACTIVE   (1<<0)

Definition at line 256 of file types.h.

◆ GUI_STATE_DELETED

#define GUI_STATE_DELETED   (1<<3)

Definition at line 259 of file types.h.

◆ GUI_STATE_SELECTED

#define GUI_STATE_SELECTED   (1<<1)

Definition at line 257 of file types.h.

◆ GUI_STATE_VISITED

#define GUI_STATE_VISITED   (1<<2)

Definition at line 258 of file types.h.

◆ HEAD_ID

#define HEAD_ID   "headport"

Definition at line 44 of file types.h.

◆ SET_RANKDIR

#define SET_RANKDIR (   g,
  rd 
)    (GD_rankdir2(g) = rd)

Definition at line 607 of file types.h.

◆ TAIL_ID

#define TAIL_ID   "tailport"

Definition at line 43 of file types.h.

◆ WITH_CGRAPH

#define WITH_CGRAPH   1

Definition at line 21 of file types.h.

Typedef Documentation

◆ adjmatrix_t

typedef struct adjmatrix_t adjmatrix_t

Definition at line 198 of file types.h.

◆ attrsym_t

typedef struct Agsym_s attrsym_t

Definition at line 42 of file types.h.

◆ bezier

typedef struct bezier bezier

◆ edge_t

typedef struct Agedge_s edge_t

Definition at line 41 of file types.h.

◆ elist

typedef struct elist elist

◆ field_t

typedef struct field_t field_t

◆ graph_t

typedef struct Agraph_s graph_t

Definition at line 39 of file types.h.

◆ htmllabel_t

typedef struct htmllabel_t htmllabel_t

Definition at line 46 of file types.h.

◆ inside_t

typedef union inside_t inside_t

◆ layout_t

typedef struct layout_t layout_t

◆ nlist_t

typedef struct nlist_t nlist_t

◆ node_t

typedef struct Agnode_s node_t

Definition at line 40 of file types.h.

◆ path

typedef struct path path

◆ pathend_t

typedef struct pathend_t pathend_t

◆ polygon_t

typedef struct polygon_t polygon_t

◆ port

typedef struct port port

◆ rank_t

typedef struct rank_t rank_t

◆ shape_desc

typedef struct shape_desc shape_desc

◆ shape_functions

◆ splines

typedef struct splines splines

◆ stroke_t

typedef struct stroke_t stroke_t

◆ textlabel_t

typedef struct textlabel_t textlabel_t

Enumeration Type Documentation

◆ fontname_kind

Enumerator
NATIVEFONTS 
PSFONTS 
SVGFONTS 

Definition at line 274 of file types.h.

◆ ratio_t

enum ratio_t
Enumerator
R_NONE 
R_VALUE 
R_FILL 
R_COMPRESS 
R_AUTO 
R_EXPAND 

Definition at line 215 of file types.h.

◆ shape_kind

enum shape_kind
Enumerator
SH_UNSET 
SH_POLY 
SH_RECORD 
SH_POINT 
SH_EPSF 

Definition at line 187 of file types.h.