29 double dx,
dy, adx, ady;
61static void doSeg(
Edge * e,
double x1,
double y1,
double x2,
double y2)
72 double x1, x2, y1, y2;
74 if (e->
a == 1.0 && e->
b >= 0.0) {
91 x1 = e->
c - e->
b * y1;
95 x1 = e->
c - e->
b * y1;
102 else if (y2 <=
pymax)
106 x2 = e->
c - e->
b * y2;
110 x2 = e->
c - e->
b * y2;
117 y1 = (e->
c - x1) / e->
b;
121 y1 = (e->
c - x1) / e->
b;
125 y2 = (e->
c - x2) / e->
b;
129 y2 = (e->
c - x2) / e->
b;
136 else if (x1 >=
pxmin)
140 y1 = e->
c - e->
a * x1;
144 y1 = e->
c - e->
a * x1;
151 else if (x2 <=
pxmax)
155 y2 = e->
c - e->
a * x2;
159 y2 = e->
c - e->
a * x2;
166 x1 = (e->
c - y1) / e->
a;
170 x1 = (e->
c - y1) / e->
a;
174 x2 = (e->
c - y2) / e->
a;
178 x2 = (e->
c - y2) / e->
a;
182 doSeg(e, x1, y1, x2, y2);
static Agobj_t * deref(Expr_t *pgm, Exnode_t *x, Exref_t *ref, Agobj_t *objp, Gpr_t *state)
static Agedge_t * newedge(Agraph_t *g, Agnode_t *t, Agnode_t *h, IDTYPE id)
static void doSeg(Edge *e, double x1, double y1, double x2, double y2)
Edge * gvbisect(Site *s1, Site *s2)
void endpoint(Edge *e, int lr, Site *s)
void addVertex(Site *s, double x, double y)
insert vertex into sorted list
void * getfree(Freelist *)
void makefree(void *, Freelist *)
void freeinit(Freelist *, int)
NEATOPROCS_API void s1(graph_t *, node_t *)