Skip to main content

Module graph

Module graph 

Source

Structs§

AttrDicts
The local graph, node and edge dictionaries of one graph or subgraph.
AttrSym
One declared attribute (Agsym_t): its default value and whether a root attribute statement set it (sym->print).
EdgeData
EdgeId
Graph
Arena-backed Graph representation (Fixes GV-BUG-008 and GV-BUG-010).
NodeData
NodeId
Port
SubgraphData
SubgraphId

Enums§

GraphKind

Constants§

CLUSTER_LIST_KEY
Root graph or cluster attribute set by a layout whose GD_clust list is not the subgraph tree: the subgraph indices of the list, in order and with repeats, separated by spaces. dot’s pack branch (copyClusterInfo) builds the root’s list in component order and appends a cluster once per component that kept it; emit_clusters draws the list as it is.
CLUST_NODE_KEY
Node attribute set by a layout on a node it replaced by a cluster node (fdp’s processClusterEdges/undoClusterEdges, IS_CLUST_NODE): renderers neither draw it nor give it layout attributes.
HEAD_PORT_NAME_KEY
IGNORED_EDGE_INPUT_KEYS
(attribute, key): where the layout keeps the input value of a label position attribute of an IGNORED_EDGE_KEY edge, for the renderer to put back.
IGNORED_EDGE_KEY
Edge attribute set by a layout on an edge it routed although its type is IGNORED (dot’s orthoEdges under concentrate, which keeps the first edge of each node pair whatever its type): renderers draw its spline (emit_edge_graphics has no type check), but attach_attrs_and_arrows gives it no pos, lp, xlp, head_lp or tail_lp (lib/common/output.c). The layout keeps the edge’s input label positions under IGNORED_EDGE_INPUT_KEYS, since it may overwrite them to draw the labels.
NODE_LW_RW_KEY
Node attribute set by a layout whose node has ND_lw != ND_rw (dot keeps the self-loop space in ND_rw when dot_splines_ skips resetRW, or with splines=curved undoes it): "lw,rw" in points. Renderers split width with it instead of halving it (Mcircle_hack uses ND_rw alone).
NO_EDGE_INIT_KEY
Root graph attribute set by a layout that binds edge records without calling common_init_edge (patchwork’s patchwork_init_edge): edges have no labels.
NO_GRAPH_LABEL_KEY
Subgraph attribute set by a layout that registers a cluster without making its label (GD_label stays NULL, e.g. patchwork’s mkClusters): renderers neither draw nor size it.
REGISTERED_CLUSTER_KEY
Subgraph attribute set by a layout on a cluster it registered in GD_clust but never positioned (fdp stopping on a layout error): renderers draw it with its empty box.
SEQ_KEY
Node or edge attribute of a Graph::render_view object: its cgraph sequence number (AGSEQ), which the renderers print in object ids. Without it the sequence follows the object’s index.
TAIL_PORT_NAME_KEY
Edge attributes holding the layout’s final tail/head port names (ED_tail_port(e).name, ED_head_port(e).name), which \E substitutes; empty when the layout dropped the name (dot’s sameport).
UNPLACED_PORT_LABELS_KEY
Edge attribute set by a layout whose head or tail label it could not place (ED_head_label(e)->set false: h, tail: t): head_lp/tail_lp are still printed, but renderers do not draw the label.
UNREGISTERED_CLUSTER_KEY
Subgraph attribute set by a layout on a cluster it did not register in GD_clust (e.g. clusters nested below neato’s top-level ones): it keeps its input bb, which C prints, but renderers do not draw it.

Functions§

has_cluster_prefix
The name test of is_a_cluster (lib/common/utils.c): strncasecmp(name, "cluster", 7).

Type Aliases§

AttrMap