Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
flat.c File Reference
#include <dotgen/dot.h>
#include <stdbool.h>
#include <stddef.h>
#include <util/alloc.h>
Include dependency graph for flat.c:

Go to the source code of this file.

Macros

#define HLB   0 /* hard left bound */
 
#define HRB   1 /* hard right bound */
 
#define SLB   2 /* soft left bound */
 
#define SRB   3 /* soft right bound */
 

Functions

static node_tmake_vn_slot (graph_t *g, int r, int pos)
 
static void findlr (node_t *u, node_t *v, int *lp, int *rp)
 
static void setbounds (node_t *v, int *bounds, int lpos, int rpos)
 
static int flat_limits (graph_t *g, edge_t *e)
 
static void flat_node (edge_t *e)
 
static void abomination (graph_t *g)
 
static void checkFlatAdjacent (edge_t *e)
 
int flat_edges (graph_t *g)
 

Macro Definition Documentation

◆ HLB

#define HLB   0 /* hard left bound */

Definition at line 34 of file flat.c.

◆ HRB

#define HRB   1 /* hard right bound */

Definition at line 35 of file flat.c.

◆ SLB

#define SLB   2 /* soft left bound */

Definition at line 36 of file flat.c.

◆ SRB

#define SRB   3 /* soft right bound */

Definition at line 37 of file flat.c.

Function Documentation

◆ abomination()

static void abomination ( graph_t g)
static

Definition at line 184 of file flat.c.

References GD_maxrank, GD_minrank, GD_rank, gv_calloc(), gv_recalloc(), rank_t::n, and NULL.

Referenced by flat_edges().

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

◆ checkFlatAdjacent()

static void checkFlatAdjacent ( edge_t e)
static

Definition at line 210 of file flat.c.

References aghead, agtail, dot_root(), ED_adjacent, ED_to_virt, GD_rank, ND_label, ND_node_type, ND_order, ND_rank, NORMAL, rank(), and VIRTUAL.

Referenced by flat_edges().

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

◆ findlr()

static void findlr ( node_t u,
node_t v,
int *  lp,
int *  rp 
)
static

Definition at line 39 of file flat.c.

References ND_order.

Referenced by flat_limits(), and setbounds().

Here is the caller graph for this function:

◆ flat_edges()

int flat_edges ( graph_t g)

Definition at line 259 of file flat.c.

References abomination(), aghead, agtail, checkFlatAdjacent(), checkLabelOrder(), ED_adjacent, ED_dist, ED_label, ED_to_virt, flat_node(), GD_flip, GD_n_cluster, GD_nlist, GD_rank, le, MAX, ND_flat_in, ND_flat_out, ND_next, ND_other, ND_rank, rec_reset_vlists(), rec_save_vlists(), and reset().

Referenced by dot_position().

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

◆ flat_limits()

static int flat_limits ( graph_t g,
edge_t e 
)
static

Definition at line 99 of file flat.c.

References aghead, agtail, findlr(), GD_rank, HLB, HRB, ND_rank, rank(), setbounds(), SLB, and SRB.

Referenced by flat_node().

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

◆ flat_node()

static void flat_node ( edge_t e)
static

Definition at line 134 of file flat.c.

References aghead, agtail, dot_root(), ED_edge_type, ED_head_port, ED_label, ED_tail_port, flat_limits(), FLATORDER, GD_flip, GD_rank, GD_ranksep, make_vn_slot(), ND_alg, ND_coord, ND_ht, ND_label, ND_lw, ND_rank, ND_rw, NULL, virtual_edge(), pointf_s::x, and pointf_s::y.

Referenced by flat_edges().

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

◆ make_vn_slot()

static node_t * make_vn_slot ( graph_t g,
int  r,
int  pos 
)
static

Definition at line 16 of file flat.c.

References GD_rank, gv_recalloc(), ND_order, ND_rank, NULL, and virtual_node().

Referenced by flat_node().

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

◆ setbounds()

static void setbounds ( node_t v,
int *  bounds,
int  lpos,
int  rpos 
)
static

Definition at line 53 of file flat.c.

References aghead, findlr(), HLB, HRB, ND_in, ND_node_type, ND_order, ND_out, SLB, SRB, and VIRTUAL.

Referenced by flat_limits().

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