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

Go to the source code of this file.

Functions

static pointf boxIntersectf (pointf pp, pointf cp, boxf *bp)
 
static int inBoxf (pointf p, boxf *bb)
 
static graph_tgetCluster (char *cluster_name, Dt_t *map)
 
static int countVertCross (pointf *pts, double xcoord)
 
static int countHorzCross (pointf *pts, double ycoord)
 
static double findVertical (pointf *pts, double tmin, double tmax, double xcoord, double ymin, double ymax)
 
static double findHorizontal (pointf *pts, double tmin, double tmax, double ycoord, double xmin, double xmax)
 
static int splineIntersectf (pointf *pts, boxf *bb)
 
static void makeCompoundEdge (edge_t *e, Dt_t *clustMap)
 
void dot_compoundEdges (graph_t *g)
 

Function Documentation

◆ boxIntersectf()

static pointf boxIntersectf ( pointf  pp,
pointf  cp,
boxf bp 
)
static

Definition at line 26 of file compound.c.

References agerrorf(), boxf::LL, boxf::UR, pointf_s::x, and pointf_s::y.

Referenced by makeCompoundEdge().

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

◆ countHorzCross()

static int countHorzCross ( pointf pts,
double  ycoord 
)
static

Definition at line 133 of file compound.c.

References fcmp(), and sign().

Referenced by findHorizontal().

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

◆ countVertCross()

static int countVertCross ( pointf pts,
double  xcoord 
)
static

Definition at line 111 of file compound.c.

References fcmp(), and sign().

Referenced by findVertical().

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

◆ dot_compoundEdges()

void dot_compoundEdges ( graph_t g)

Definition at line 458 of file compound.c.

References agfstnode(), agfstout(), agnxtnode(), agnxtout(), dtclose(), makeCompoundEdge(), and mkClustMap().

Referenced by dotLayout().

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

◆ findHorizontal()

static double findHorizontal ( pointf pts,
double  tmin,
double  tmax,
double  ycoord,
double  xmin,
double  xmax 
)
static

Definition at line 202 of file compound.c.

References Bezier(), countHorzCross(), findHorizontal(), xmax, and xmin.

Referenced by findHorizontal(), and splineIntersectf().

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

◆ findVertical()

static double findVertical ( pointf pts,
double  tmin,
double  tmax,
double  xcoord,
double  ymin,
double  ymax 
)
static

Definition at line 160 of file compound.c.

References Bezier(), countVertCross(), findVertical(), ymax, and ymin.

Referenced by findVertical(), and splineIntersectf().

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

◆ getCluster()

static graph_t * getCluster ( char *  cluster_name,
Dt_t map 
)
static

Definition at line 86 of file compound.c.

References agwarningf(), findCluster(), and NULL.

Referenced by makeCompoundEdge().

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

◆ inBoxf()

static int inBoxf ( pointf  p,
boxf bb 
)
static

Definition at line 76 of file compound.c.

References INSIDE.

Referenced by makeCompoundEdge().

Here is the caller graph for this function:

◆ makeCompoundEdge()

static void makeCompoundEdge ( edge_t e,
Dt_t clustMap 
)
static

Definition at line 291 of file compound.c.

References agget(), aghead, agnameof(), agtail, agwarningf(), arrowEndClip(), arrowStartClip(), boxIntersectf(), ED_spl, bezier::eflag, bezier::ep, free(), GD_bb, getCluster(), gv_calloc(), head, inBoxf(), bezier::list, mid_pointf(), ND_coord, bezier::sflag, bezier::size, bezier::sp, and splineIntersectf().

Referenced by dot_compoundEdges().

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

◆ splineIntersectf()

static int splineIntersectf ( pointf pts,
boxf bb 
)
static

Definition at line 243 of file compound.c.

References Bezier(), findHorizontal(), findVertical(), boxf::LL, MIN, NULL, boxf::UR, pointf_s::x, and pointf_s::y.

Referenced by makeCompoundEdge().

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