Graphviz 13.0.0~dev.20241220.2304
|
makes maze with mkMaze for routing orthogonal edges More...
#include <ortho/sgraph.h>
Go to the source code of this file.
Data Structures | |
struct | cell |
result of partitioning available space, part of maze More... | |
struct | maze |
available channels for orthogonal edges around nodes of graph_t More... | |
Macros | |
#define | MZ_ISNODE 1 |
#define | MZ_VSCAN 2 |
#define | MZ_HSCAN 4 |
#define | MZ_SMALLV 8 |
#define | MZ_SMALLH 16 |
#define | IsNode(cp) (cp->flags & MZ_ISNODE) |
cell corresponds to node | |
#define | IsVScan(cp) (cp->flags & MZ_VSCAN) |
cell already inserted in vertical channel | |
#define | IsHScan(cp) (cp->flags & MZ_HSCAN) |
cell already inserted in horizontal channel | |
#define | IsSmallV(cp) (cp->flags & MZ_SMALLV) |
cell has small height corresponding to a small height node | |
#define | IsSmallH(cp) (cp->flags & MZ_SMALLH) |
cell has small width corresponding to a small width node | |
Typedefs | |
typedef struct cell | cell { $1->vruled = true |
result of partitioning available space, part of maze | |
Enumerations | |
enum | { M_RIGHT =0 , M_TOP , M_LEFT , M_BOTTOM } |
Functions | |
maze * | mkMaze (graph_t *) |
creates maze and fills maze::gcells and maze::cells. A subroutine of orthoEdges. | |
void | freeMaze (maze *) |
void | updateWts (sgraph *g, cell *cp, sedge *ep) |
updates sedge::weight of cell edges | |
cells VR cell { $1->vruled = true |
Definition at line 335 of file htmlparse.y.
|
extern |
Definition at line 504 of file maze.c.
References maze::cells, dtclose(), free(), freeSGraph(), maze::gcells, maze::hchans, maze::sg, cell::sides, and maze::vchans.
Referenced by orthoEdges().
Definition at line 453 of file maze.c.
References agfstnode(), agnnodes(), agnxtnode(), cell::bb, maze::cells, cell::flags, free(), maze::gcells, gv_alloc(), gv_calloc(), boxf::LL, MARGIN, mkMazeGraph(), MZ_ISNODE, maze::ncells, ND_alg, ND_coord, ND_xsize, ND_ysize, maze::ngcells, odb_flags, partition(), psdump(), maze::sg, boxf::UR, pointf_s::x, and pointf_s::y.
Referenced by orthoEdges().
Iterate over edges in a cell, adjust weights as necessary. It always updates the bent edges belonging to a cell. A horizontal/vertical edge is updated only if the edge traversed is bent, or if it is the traversed edge.
Definition at line 168 of file maze.c.
References cell::bb, BEND, CHANSZ, cell::edges, HORZ, boxf::LL, cell::nedges, updateWt(), boxf::UR, pointf_s::x, and pointf_s::y.
Referenced by convertSPtoRoute().