Graphviz 13.1.3~dev.20250829.0113
Loading...
Searching...
No Matches
blocktree.c File Reference
#include <circogen/blocktree.h>
#include <stdbool.h>
#include <util/agxbuf.h>
#include <util/debug.h>
#include <util/gv_math.h>
#include <util/list.h>
Include dependency graph for blocktree.c:

Go to the source code of this file.

Functions

static void addNode (block_t *bp, Agnode_t *n)
 
static Agraph_tmakeBlockGraph (Agraph_t *g, circ_state *state)
 
static block_tmakeBlock (Agraph_t *g, circ_state *state)
 
typedef LIST (Agedge_t *)
 
static void find_blocks (Agraph_t *g, circ_state *state)
 
block_tcreateBlocktree (Agraph_t *g, circ_state *state)
 
void freeBlocktree (block_t *bp)
 

Function Documentation

◆ addNode()

static void addNode ( block_t bp,
Agnode_t n 
)
static

Definition at line 18 of file blocktree.c.

References agsubnode(), BLOCK, and block::sub_graph.

Referenced by getval(), and LIST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createBlocktree()

block_t * createBlocktree ( Agraph_t g,
circ_state state 
)

Definition at line 141 of file blocktree.c.

References agfstnode(), agnxtnode(), appendBlock(), circ_state::bl, BLOCK, CHILD, find_blocks(), blocklist_t::first, initBlocklist(), block::next, parent, PARENT, SET_PARENT, block::sub_graph, and VAL.

Referenced by circularLayout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find_blocks()

static void find_blocks ( Agraph_t g,
circ_state state 
)
static

Definition at line 111 of file blocktree.c.

References agfindnode, agfstnode(), agnameof(), agnxtnode(), dfs(), GV_DEBUG, late_bool(), LIST_FREE, circ_state::N_root, NULL, ORIGN, and circ_state::rootname.

Referenced by createBlocktree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeBlocktree()

void freeBlocktree ( block_t bp)

Definition at line 179 of file blocktree.c.

References block::children, blocklist_t::first, freeBlock(), freeBlocktree(), and block::next.

Referenced by circularLayout(), and freeBlocktree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LIST()

typedef LIST ( Agedge_t )

Definition at line 43 of file blocktree.c.

References addNode(), agfstedge(), aghead, agnxtedge(), agtail, appendBlock(), circ_state::bl, BLOCK, blockSize(), dfs(), EDGEORDER, imin(), insertBlock(), LIST_POP_BACK, LIST_PUSH_BACK, LOWVAL, makeBlock(), NULL, circ_state::orderCount, PARENT, and VAL.

Here is the call graph for this function:

◆ makeBlock()

static block_t * makeBlock ( Agraph_t g,
circ_state state 
)
static

Definition at line 35 of file blocktree.c.

References makeBlockGraph(), and mkBlock().

Referenced by LIST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeBlockGraph()

static Agraph_t * makeBlockGraph ( Agraph_t g,
circ_state state 
)
static

Definition at line 24 of file blocktree.c.

References agbindrec(), agsubg(), agxbfree(), agxbprint(), agxbuse(), and circ_state::blockCount.

Referenced by makeBlock().

Here is the call graph for this function:
Here is the caller graph for this function: