Graphviz 12.0.1~dev.20240715.2254
Loading...
Searching...
No Matches
neatoprocs.h File Reference
#include <stdbool.h>
#include <stddef.h>
#include <neatogen/adjust.h>
Include dependency graph for neatoprocs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NEATOPROCS_API   /* nothing */
 

Functions

NEATOPROCS_API int checkStart (graph_t *G, int nG, int)
 
NEATOPROCS_API int circuit_model (graph_t *, int)
 
NEATOPROCS_API void diffeq_model (graph_t *, int)
 
NEATOPROCS_API Ppolyline_t getPath (edge_t *, vconfig_t *, bool)
 
NEATOPROCS_API void initial_positions (graph_t *, int)
 
NEATOPROCS_API void jitter3d (Agnode_t *, int)
 
NEATOPROCS_API void jitter_d (Agnode_t *, int, int)
 
NEATOPROCS_API Ppoly_tmakeObstacle (node_t *n, expand_t *, bool)
 
NEATOPROCS_API void makeSelfArcs (edge_t *e, int stepx)
 
NEATOPROCS_API void makeSpline (edge_t *, Ppoly_t **, int, bool)
 
NEATOPROCS_API int init_nop (graph_t *g, int)
 
NEATOPROCS_API void neato_cleanup (graph_t *g)
 
NEATOPROCS_API node_tneato_dequeue (void)
 
NEATOPROCS_API void neato_enqueue (node_t *)
 
NEATOPROCS_API void neato_init_node (node_t *n)
 
NEATOPROCS_API void neato_layout (Agraph_t *g)
 
NEATOPROCS_API int Plegal_arrangement (Ppoly_t **polys, int n_polys)
 
NEATOPROCS_API void randompos (Agnode_t *, int)
 
NEATOPROCS_API void s1 (graph_t *, node_t *)
 
NEATOPROCS_API int scan_graph (graph_t *)
 
NEATOPROCS_API int scan_graph_mode (graph_t *G, int mode)
 
NEATOPROCS_API void free_scan_graph (graph_t *)
 
NEATOPROCS_API int setSeed (graph_t *, int dflt, long *seedp)
 
NEATOPROCS_API void shortest_path (graph_t *, int)
 
NEATOPROCS_API void solve (double *, double *, double *, size_t)
 
NEATOPROCS_API void solve_model (graph_t *, int)
 
NEATOPROCS_API int solveCircuit (int nG, double **Gm, double **Gm_inv)
 
NEATOPROCS_API void spline_edges (Agraph_t *)
 
NEATOPROCS_API void spline_edges0 (Agraph_t *, bool)
 
NEATOPROCS_API int spline_edges1 (graph_t *g, int)
 
NEATOPROCS_API int splineEdges (graph_t *, int(*edgefn)(graph_t *, expand_t *, int), int)
 
NEATOPROCS_API void neato_translate (Agraph_t *g)
 
NEATOPROCS_API bool neato_set_aspect (graph_t *g)
 
NEATOPROCS_API void toggle (int)
 
NEATOPROCS_API bool user_pos (Agsym_t *, Agsym_t *, Agnode_t *, int)
 
NEATOPROCS_API double ** new_array (int i, int j, double val)
 
NEATOPROCS_API void free_array (double **rv)
 
NEATOPROCS_API int matinv (double **A, double **Ainv, int n)
 

Macro Definition Documentation

◆ NEATOPROCS_API

#define NEATOPROCS_API   /* nothing */

Definition at line 30 of file neatoprocs.h.

Function Documentation

◆ checkStart()

NEATOPROCS_API int checkStart ( graph_t G,
int  nG,
int  dflt 
)

Definition at line 1018 of file neatoinit.c.

References agwarningf(), G, init(), INIT_RANDOM, INIT_REGULAR, initRegular(), N_pos, seed, setSeed(), and srand48.

Referenced by initial_positions(), and majorization().

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

◆ circuit_model()

NEATOPROCS_API int circuit_model ( graph_t g,
int  nG 
)

Definition at line 38 of file circuit.c.

References agfstedge(), agfstnode(), aghead, agnxtedge(), agnxtnode(), AGSEQ, agtail, ED_dist, free_array(), GD_dist, new_array(), and solveCircuit().

Referenced by kkNeato().

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

◆ diffeq_model()

NEATOPROCS_API void diffeq_model ( graph_t G,
int  nG 
)

Definition at line 357 of file stuff.c.

References agfindedge, D, del(), dist(), distvec(), ED_factor, elapsed_sec(), G, GD_dist, GD_neato_nlist, GD_spring, GD_sum_t, GD_t, MAXDIM, ND_pos, Ndim, Spring_coeff, start_timer(), and Verbose.

Referenced by kkNeato().

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

◆ free_array()

NEATOPROCS_API void free_array ( double **  rv)

Definition at line 62 of file stuff.c.

References free().

Referenced by circuit_model(), circuitModel(), free_scan_graph(), and lu_decompose().

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

◆ free_scan_graph()

NEATOPROCS_API void free_scan_graph ( graph_t g)

Definition at line 301 of file stuff.c.

References free(), free_3array(), free_array(), GD_dist, GD_neato_nlist, GD_spring, GD_sum_t, GD_t, Nop, and NULL.

Referenced by neato_cleanup_graph(), and neato_layout().

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

◆ getPath()

NEATOPROCS_API Ppolyline_t getPath ( edge_t e,
vconfig_t vconfig,
bool  chkPts 
)

Definition at line 501 of file neatosplines.c.

References add_pointf(), aghead, agtail, ED_head_port, ED_tail_port, ND_coord, ND_lim, Pobspath(), and POLYID_NONE.

Referenced by _spline_edges(), and compoundEdges().

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

◆ init_nop()

NEATOPROCS_API int init_nop ( graph_t g,
int  adjust 
)

Definition at line 534 of file neatoinit.c.

References adjust, adjustNodes(), agattr(), agerrorf(), agfindgraphattr, agfstnode(), agget(), agnameof(), agnxtnode(), AGRAPH, AllEdges, compute_bb(), freeEdgeInfo(), GD_bb, GD_drawing, GD_label, GD_neato_nlist, GVSPLINES, hasPos, mapbool(), ND_coord, ND_pos, ND_xlabel, neato_set_aspect(), neato_translate(), NoEdges, Nop, nop_init_edges(), nop_init_graphs(), POINTS_PER_INCH, R_NONE, scan_graph(), set_label(), spline_edges0(), startswith(), State, and xdotBB().

Referenced by init_graph(), and neato_layout().

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

◆ initial_positions()

NEATOPROCS_API void initial_positions ( graph_t G,
int  nG 
)

Definition at line 333 of file stuff.c.

References agwarningf(), checkStart(), G, GD_neato_nlist, hasPos, init(), INIT_RANDOM, INIT_REGULAR, INIT_SELF, randompos(), and Verbose.

Referenced by kkNeato(), and sgd().

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

◆ jitter3d()

NEATOPROCS_API void jitter3d ( Agnode_t np,
int  nG 
)

Definition at line 320 of file stuff.c.

References jitter_d().

Referenced by initRegular(), randompos(), and user_pos().

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

◆ jitter_d()

NEATOPROCS_API void jitter_d ( Agnode_t np,
int  nG,
int  n 
)

Definition at line 313 of file stuff.c.

References drand48(), ND_pos, and Ndim.

Referenced by jitter3d(), and user_pos().

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

◆ makeObstacle()

NEATOPROCS_API Ppoly_t * makeObstacle ( node_t n,
expand_t pmargin,
bool  isOrtho 
)

Definition at line 325 of file neatosplines.c.

References field_t::b, circumscribed_polygon_corner_about_ellipse(), expand_t::doAdd, genPt(), gv_alloc(), gv_calloc(), INCH2PS, late_double(), boxf::LL, N_penwidth, ND_coord, ND_ht, ND_lw, ND_outline_height, ND_outline_width, ND_rw, ND_shape_info, NULL, penwidth, Ppoly_t::pn, polyBB(), Ppoly_t::ps, recPt(), SH_EPSF, SH_POINT, SH_POLY, SH_RECORD, shapeOf(), UNREACHABLE, boxf::UR, pointf_s::x, expand_t::x, Pxy_t::x, pointf_s::y, expand_t::y, and Pxy_t::y.

Referenced by _spline_edges(), and addGraphObjs().

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

◆ makeSelfArcs()

NEATOPROCS_API void makeSelfArcs ( edge_t e,
int  stepx 
)

Definition at line 216 of file neatosplines.c.

References agraphof(), agtail, cnt(), Concentrate, ED_count, ED_label, ED_to_virt, free(), gv_calloc(), makePortLabels(), makeSelfEdge(), sinfo, and updateBB().

Referenced by _spline_edges(), and compoundEdges().

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

◆ makeSpline()

NEATOPROCS_API void makeSpline ( edge_t e,
Ppoly_t **  obs,
int  npoly,
bool  chkPts 
)

Definition at line 539 of file neatosplines.c.

References addEdgeLabels(), agerrorf(), aghead, agnameof(), agtail, clip_and_install(), ED_path, free(), in_poly(), make_barriers(), Ppoly_t::pn, POLYID_NONE, Proutespline(), Ppoly_t::ps, sinfo, Verbose, Pxy_t::x, and Pxy_t::y.

Referenced by _spline_edges(), and compoundEdges().

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

◆ matinv()

NEATOPROCS_API int matinv ( double **  A,
double **  Ainv,
int  n 
)

Definition at line 39 of file matinv.c.

References A, free(), gv_calloc(), lu_decompose(), and lu_solve().

Referenced by solveCircuit().

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

◆ neato_cleanup()

NEATOPROCS_API void neato_cleanup ( graph_t g)

Definition at line 152 of file neatoinit.c.

◆ neato_dequeue()

NEATOPROCS_API node_t * neato_dequeue ( void  )

Definition at line 636 of file stuff.c.

References Heap, heapdown(), Heapsize, ND_heapindex, and NULL.

Referenced by s1().

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

◆ neato_enqueue()

NEATOPROCS_API void neato_enqueue ( node_t v)

Definition at line 624 of file stuff.c.

References Heap, Heapsize, heapup(), and ND_heapindex.

Referenced by s1().

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

◆ neato_init_node()

NEATOPROCS_API void neato_init_node ( node_t n)

Definition at line 56 of file neatoinit.c.

References agbindrec(), agraphof(), common_init_node(), GD_flip, GD_ndim, gv_calloc(), gv_nodesize(), and ND_pos.

Referenced by circular_init_node_edge(), cluster_init_graph(), init_node_edge(), neato_init_node_edge(), sfdp_init_node_edge(), and twopi_init_node_edge().

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

◆ neato_layout()

NEATOPROCS_API void neato_layout ( Agraph_t g)

Definition at line 1391 of file neatoinit.c.

◆ neato_set_aspect()

NEATOPROCS_API bool neato_set_aspect ( graph_t g)

Definition at line 1117 of file neatosplines.c.

References _neato_set_aspect(), agfstnode(), agnxtnode(), ND_coord, ND_pos, and POINTS_PER_INCH.

Referenced by fdp_layout(), init_nop(), and spline_edges0().

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

◆ neato_translate()

NEATOPROCS_API void neato_translate ( Agraph_t g)

Definition at line 994 of file neatosplines.c.

References agfstnode(), agfstout(), agnxtnode(), agnxtout(), ED_spl, GD_bb, ND_pos, ND_xlabel, offset, PS2INCH, translateE(), translateG(), pointf_s::x, and pointf_s::y.

Referenced by _neato_set_aspect(), and init_nop().

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

◆ new_array()

NEATOPROCS_API double ** new_array ( int  i,
int  j,
double  val 
)

Definition at line 47 of file stuff.c.

References gv_calloc().

Referenced by circuit_model(), circuitModel(), lu_decompose(), and scan_graph_mode().

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

◆ Plegal_arrangement()

NEATOPROCS_API int Plegal_arrangement ( Ppoly_t **  polys,
int  n_polys 
)

Definition at line 413 of file legal.c.

References vertex::active, polygon::bb, find_ints(), findInside(), polygon::finish, free(), gv_calloc(), boxf::LL, Ppoly_t::pn, vertex::poly, vertex::pos, Ppoly_t::ps, polygon::start, boxf::UR, pointf_s::x, Pxy_t::x, pointf_s::y, and Pxy_t::y.

Referenced by _spline_edges(), compoundEdges(), and vc_refresh().

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

◆ randompos()

NEATOPROCS_API void randompos ( Agnode_t np,
int  nG 
)

Definition at line 325 of file stuff.c.

References drand48(), jitter3d(), ND_pos, and Ndim.

Referenced by initial_positions().

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

◆ s1()

NEATOPROCS_API void s1 ( graph_t G,
node_t node 
)

Definition at line 671 of file stuff.c.

References agfstedge(), aghead, agnxtedge(), agtail, ED_dist, G, GD_neato_nlist, heapup(), Initial_dist, make_spring(), ND_dist, ND_heapindex, ND_hops, neato_dequeue(), neato_enqueue(), and Src.

Referenced by buildBindings(), clip_line(), comp_ascend(), comp_ascend_int(), concat(), concat(), concatPort(), concatPort(), directVis(), gvbisect(), gvrender_comparestr(), indexOf(), is_parallel(), rindexOf(), same_side(), scomp(), shortest_path(), STsetUnion(), SWIG_Tcl_ObjectConstructor(), and tok().

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

◆ scan_graph()

NEATOPROCS_API int scan_graph ( graph_t g)

Definition at line 296 of file stuff.c.

References MODE_KK, and scan_graph_mode().

Referenced by init_nop().

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

◆ scan_graph_mode()

NEATOPROCS_API int scan_graph_mode ( graph_t G,
int  mode 
)

Definition at line 216 of file stuff.c.

References agattr(), agdelete(), AGEDGE, agfstnode(), agget(), agnameof(), agnedges(), agnnodes(), agnxtnode(), Damping, degreeKind(), DFLT_TOLERANCE, Epsilon, G, GD_dist, GD_neato_nlist, GD_spring, GD_sum_t, GD_t, getdouble(), gv_calloc(), Initial_dist, MODE_KK, MODE_SGD, ND_heapindex, ND_id, Ndim, new_3array(), new_array(), Nop, prune(), Reduce, setEdgeLen(), str, and Verbose.

Referenced by neatoLayout(), and scan_graph().

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

◆ setSeed()

NEATOPROCS_API int setSeed ( graph_t G,
int  dflt,
long *  seedp 
)

Definition at line 951 of file neatoinit.c.

References agget(), agset(), G, gv_isalpha(), gv_isdigit(), init(), INIT_RANDOM, INIT_REGULAR, INIT_SELF, NULL, RANDOM, REGULAR, seed, SLEN, SMART, and startswith().

Referenced by checkStart(), fdp_initParams(), and tuneControl().

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

◆ shortest_path()

NEATOPROCS_API void shortest_path ( graph_t G,
int  nG 
)

Definition at line 654 of file stuff.c.

References agfstnode(), agnxtnode(), elapsed_sec(), free(), G, gv_calloc(), Heap, s1(), start_timer(), and Verbose.

Referenced by kkNeato().

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

◆ solve()

NEATOPROCS_API void solve ( double *  a,
double *  b,
double *  c,
size_t  n 
)

Definition at line 26 of file solve.c.

References free(), gv_calloc(), and swap().

Referenced by move_node().

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

◆ solve_model()

NEATOPROCS_API void solve_model ( graph_t G,
int  nG 
)

Definition at line 432 of file stuff.c.

References agnameof(), agwarningf(), choose_node(), elapsed_sec(), Epsilon, Epsilon2, G, GD_move, MaxIter, move_node(), total_e(), and Verbose.

Referenced by kkNeato().

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

◆ solveCircuit()

NEATOPROCS_API int solveCircuit ( int  nG,
double **  Gm,
double **  Gm_inv 
)

Definition at line 19 of file circuit.c.

References matinv(), and Verbose.

Referenced by circuit_model(), and circuitModel().

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

◆ spline_edges()

NEATOPROCS_API void spline_edges ( Agraph_t g)

Definition at line 834 of file neatosplines.c.

References agfstnode(), agnxtnode(), compute_bb(), GD_bb, ND_pos, offset, PS2INCH, shiftClusters(), and spline_edges0().

Referenced by circo_layout(), neato_layout(), sfdp_layout(), and twopi_layout().

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

◆ spline_edges0()

NEATOPROCS_API void spline_edges0 ( Agraph_t g,
bool  set_aspect 
)

Definition at line 800 of file neatosplines.c.

References agwarningf(), EDGE_TYPE, EDGETYPE_NONE, EDGETYPE_ORTHO, EDGETYPE_PLINE, GD_flags, neato_set_aspect(), Agraph_s::root, set_aspect(), and spline_edges1().

Referenced by doEdges(), init_nop(), osage_layout(), and spline_edges().

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

◆ spline_edges1()

NEATOPROCS_API int spline_edges1 ( graph_t g,
int  edgetype 
)

Definition at line 781 of file neatosplines.c.

References _spline_edges(), and splineEdges().

Referenced by fdpSplines(), osage_layout(), and spline_edges0().

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

◆ splineEdges()

NEATOPROCS_API int splineEdges ( graph_t g,
int(*)(graph_t *, expand_t *, int)  edgefn,
int  edgetype 
)

Definition at line 733 of file neatosplines.c.

References agfstnode(), agfstout(), agnxtnode(), agnxtout(), dtclose(), dtopen(), Dtoset, ED_count, ED_spl, ED_to_virt, edgeItemDisc, equivEdge(), esepFactor(), GVSPLINES, Nop, resolvePorts(), and State.

Referenced by fdpSplines(), and spline_edges1().

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

◆ toggle()

NEATOPROCS_API void toggle ( int  )

◆ user_pos()

NEATOPROCS_API bool user_pos ( Agsym_t posptr,
Agsym_t pinptr,
Agnode_t np,
int  nG 
)

Definition at line 71 of file neatoinit.c.

References agerrorf(), agnameof(), agxget(), jitter3d(), jitter_d(), mapbool(), N_z, ND_pinned, ND_pos, Ndim, NULL, P_PIN, P_SET, PSinputscale, and z.

Referenced by init_node_edge(), and neato_init_node_edge().

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