/misc/src/release/graphviz-2.18-1/src/graphviz-2.18/lib/neatogen/neatosplines.c File Reference

#include "neato.h"
#include "adjust.h"
#include "pathplan.h"
#include "vispath.h"

Include dependency graph for neatosplines.c:

Go to the source code of this file.

Data Structures

struct  edgeinfo
struct  edgeitem

Defines

#define P2PF(p, pf)   (pf.x = p.x, pf.y = p.y)
#define PF2P(pf, p)   (p.x = ROUND (pf.x), p.y = ROUND (pf.y))
#define LEFTOF(a, b, c)   (((a.y - b.y)*(c.x - b.x) - (c.y - b.y)*(a.x - b.x)) > 0)
#define MAXLABELWD   (POINTS_PER_INCH/2.0)

Functions

double drand48 (void)
void printvis (vconfig_t *cp)
int in_poly (Ppoly_t argpoly, Ppoint_t q)
void makeSelfArcs (path *P, edge_t *e, int stepx)
Ppoly_tmakeObstacle (node_t *n, double SEP)
Ppolyline_t getPath (edge_t *e, vconfig_t *vconfig, int chkPts, Ppoly_t **obs, int npoly)
void makeSpline (edge_t *e, Ppoly_t **obs, int npoly, boolean chkPts)
int splineEdges (graph_t *g, int(*edgefn)(graph_t *, double, int), int edgetype)
int spline_edges1 (graph_t *g, int edgetype)
void spline_edges0 (graph_t *g)
void spline_edges (graph_t *g)
void neato_set_aspect (graph_t *g)

Variables

Dtdisc_t edgeItemDisc


Define Documentation

#define LEFTOF ( a,
b,
 )     (((a.y - b.y)*(c.x - b.x) - (c.y - b.y)*(a.x - b.x)) > 0)

Definition at line 171 of file neatosplines.c.

#define MAXLABELWD   (POINTS_PER_INCH/2.0)

Definition at line 172 of file neatosplines.c.

#define P2PF ( p,
pf   )     (pf.x = p.x, pf.y = p.y)

Definition at line 30 of file neatosplines.c.

#define PF2P ( pf,
 )     (p.x = ROUND (pf.x), p.y = ROUND (pf.y))

Definition at line 31 of file neatosplines.c.


Function Documentation

double drand48 ( void   ) 

Definition at line 31 of file stuff.c.

Ppolyline_t getPath ( edge_t e,
vconfig_t vconfig,
int  chkPts,
Ppoly_t **  obs,
int  npoly 
)

Definition at line 559 of file neatosplines.c.

References add_points(), ED_head_port, ED_tail_port, Agedge_t::head, ND_coord_i, ND_lim, P2PF, Pobspath(), POLYID_NONE, and Agedge_t::tail.

Referenced by compoundEdges().

int in_poly ( Ppoly_t  argpoly,
Ppoint_t  q 
)

Definition at line 32 of file inpoly.c.

Referenced by makeSpline().

Ppoly_t* makeObstacle ( node_t n,
double  SEP 
)

Definition at line 476 of file neatosplines.c.

References field_t::b, drand48(), box::LL, M_PI, N_NEW, ND_coord_i, ND_ht_i, ND_lw_i, ND_rw_i, ND_shape_info, NEW, NULL, Ppoly_t::pn, Ppoly_t::ps, SH_EPSF, SH_POINT, SH_POLY, SH_RECORD, shapeOf(), polygon_t::sides, box::UR, polygon_t::vertices, point::x, Pxy_t::x, pointf_s::x, point::y, Pxy_t::y, and pointf_s::y.

void makeSelfArcs ( path P,
edge_t e,
int  stepx 
)

Definition at line 367 of file neatosplines.c.

References ED_count, ED_label, ED_to_virt, free(), Agnode_t::graph, makeSelfEdge(), N_GNEW, Agedge_t::tail, and updateBB().

Referenced by compoundEdges().

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

Definition at line 628 of file neatosplines.c.

References clip_and_install(), ED_path, free(), Agedge_t::head, in_poly(), N_GNEW, Agnode_t::name, PF2P, Ppoly_t::pn, POLYID_NONE, Proutespline(), Ppoly_t::ps, ROUND, Agedge_t::tail, Verbose, Pxy_t::x, point::y, and Pxy_t::y.

Referenced by compoundEdges().

void neato_set_aspect ( graph_t g  ) 

Definition at line 1069 of file neatosplines.c.

References agfstnode(), agnxtnode(), ND_coord_i, and ND_pos.

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

void printvis ( vconfig_t cp  ) 

Definition at line 22 of file printvis.c.

References vconfig_s::N, vconfig_s::next, vconfig_s::P, vconfig_s::prev, and vconfig_s::vis.

void spline_edges ( graph_t g  ) 

Definition at line 883 of file neatosplines.c.

References agfstnode(), agnxtnode(), compute_bb(), cvt2ptf(), GD_bb, ND_pos, spline_edges0(), pointf_s::x, and pointf_s::y.

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

void spline_edges0 ( graph_t g  ) 

Definition at line 861 of file neatosplines.c.

References agerr(), AGWARN, EDGE_TYPE, ET_NONE, ET_ORTHO, ET_PLINE, GD_flags, neato_set_aspect(), Agraph_t::root, and spline_edges1().

Referenced by init_nop(), and spline_edges().

int spline_edges1 ( graph_t g,
int  edgetype 
)

Definition at line 842 of file neatosplines.c.

References splineEdges().

Referenced by spline_edges0().

int splineEdges ( graph_t g,
int(*)(graph_t *, double, int)  edgefn,
int  edgetype 
)

Definition at line 797 of file neatosplines.c.

References agfstnode(), agfstout(), agget(), agnxtnode(), agnxtout(), dtclose(), dtopen(), Dtoset, ED_count, ED_to_virt, edgeItemDisc, expFactor(), GVSPLINES, SEPFACT, and State.

Referenced by spline_edges1().


Variable Documentation

Dtdisc_t edgeItemDisc

Initial value:

 {
    offsetof(edgeitem, id),
    sizeof(edgeinfo),
    offsetof(edgeitem, link),
    (Dtmake_f) newitem,
    (Dtfree_f) freeitem,
    (Dtcompar_f) cmpitems,
    0,
    0,
    0
}

Definition at line 299 of file neatosplines.c.

Referenced by splineEdges().


Generated on Mon Mar 31 19:07:17 2008 for Graphviz by  doxygen 1.5.1