Graphviz 13.1.3~dev.20250829.0113
|
#include <assert.h>
#include <twopigen/circle.h>
#include <inttypes.h>
#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <util/alloc.h>
#include <util/gv_ctype.h>
#include <util/gv_math.h>
#include <util/list.h>
#include <util/streq.h>
Go to the source code of this file.
Macros | |
#define | DEF_RANKSEP 1.00 |
#define | UNSET 10.00 |
Functions | |
static void | setNStepsToLeaf (Agraph_t *g, Agnode_t *n, Agnode_t *prev) |
static bool | isLeaf (Agraph_t *g, Agnode_t *n) |
static void | initLayout (Agraph_t *g) |
static Agnode_t * | findCenterNode (Agraph_t *g) |
static void | setNStepsToCenter (Agraph_t *g, Agnode_t *n) |
static uint64_t | setParentNodes (Agraph_t *sg, Agnode_t *center) |
static void | setSubtreeSize (Agraph_t *g) |
static void | setChildSubtreeSpans (Agraph_t *g, Agnode_t *n) |
static void | setSubtreeSpans (Agraph_t *sg, Agnode_t *center) |
static bool | is_set (double a) |
has the given value been assigned? | |
static void | setChildPositions (Agraph_t *sg, Agnode_t *n) |
static void | setPositions (Agraph_t *sg, Agnode_t *center) |
static double * | getRankseps (Agraph_t *g, uint64_t maxrank) |
static void | setAbsolutePos (Agraph_t *g, uint64_t maxrank) |
Agnode_t * | circleLayout (Agraph_t *sg, Agnode_t *center) |
Definition at line 310 of file circle.c.
References agerrorf(), agfstnode(), agnameof(), agnnodes(), center(), findCenterNode(), initLayout(), ND_pos, setAbsolutePos(), setParentNodes(), setPositions(), setSubtreeSize(), setSubtreeSpans(), and Verbose.
Referenced by twopi_layout().
Definition at line 96 of file circle.c.
References agfstnode(), agnxtnode(), center(), NULL, setNStepsToLeaf(), and SLEAF.
Referenced by circleLayout().
|
static |
Definition at line 255 of file circle.c.
References agfindgraphattr, DEF_RANKSEP, gv_calloc(), gv_isspace(), late_string(), MIN_RANKSEP, NULL, and Agraph_s::root.
Referenced by setAbsolutePos().
|
static |
Definition at line 74 of file circle.c.
References agfstnode(), agnnodes(), agnxtnode(), INF, isLeaf(), SCENTER, SLEAF, THETA, and UNSET.
Referenced by circleLayout().
|
static |
Definition at line 212 of file circle.c.
References is_exactly_equal(), and UNSET.
Referenced by setChildPositions().
Definition at line 55 of file circle.c.
References agfstedge(), aghead, agnxtedge(), and agtail.
Referenced by initLayout().
|
static |
Definition at line 286 of file circle.c.
References agfstnode(), agnxtnode(), free(), getRankseps(), ND_pos, SCENTER, THETA, and Verbose.
Referenced by circleLayout().
Definition at line 215 of file circle.c.
References agfstedge(), aghead, agnxtedge(), agtail, is_set(), NCHILD, setChildPositions(), SPAN, SPARENT, and THETA.
Referenced by setChildPositions(), and setPositions().
Definition at line 184 of file circle.c.
References agfstedge(), aghead, agnxtedge(), agtail, NCHILD, setChildSubtreeSpans(), SPAN, SPARENT, and STSIZE.
Referenced by setChildSubtreeSpans(), and setSubtreeSpans().
Definition at line 117 of file circle.c.
References agfindedgeattr, agfstedge(), aghead, agnxtedge(), agtail, agxget(), LIST, LIST_FREE, LIST_IS_EMPTY, LIST_POP_FRONT, LIST_PUSH_BACK, NCHILD, SCENTER, SPARENT, and streq().
Referenced by setParentNodes().
Definition at line 32 of file circle.c.
References agfstedge(), aghead, agnxtedge(), agtail, prev, setNStepsToLeaf(), and SLEAF.
Referenced by findCenterNode(), and setNStepsToLeaf().
Definition at line 147 of file circle.c.
References agfstnode(), agnxtnode(), center(), SCENTER, setNStepsToCenter(), and SPARENT.
Referenced by circleLayout().
Definition at line 241 of file circle.c.
References center(), setChildPositions(), and THETA.
Referenced by circleLayout().
|
static |
Definition at line 172 of file circle.c.
References agfstnode(), agnxtnode(), NCHILD, parent, SPARENT, and STSIZE.
Referenced by circleLayout().
Definition at line 205 of file circle.c.
References center(), M_PI, setChildSubtreeSpans(), and SPAN.
Referenced by circleLayout().