|
Graphviz 14.0.3~dev.20251028.0232
|
#include <assert.h>#include <float.h>#include <math.h>#include <limits.h>#include <neatogen/neato.h>#include <pathplan/pathutil.h>#include <stdbool.h>#include <stddef.h>#include <util/alloc.h>#include <util/exit.h>#include <util/list.h>Go to the source code of this file.
Data Structures | |
| struct | vertex |
| struct | polygon |
Macros | |
| #define | SLOPE(p, q) ( ( ( p.y ) - ( q.y ) ) / ( ( p.x ) - ( q.x ) ) ) |
| #define | EQ_PT(v, w) (((v).x == (w).x) && ((v).y == (w).y)) |
| #define | after(v) (((v)==((v)->poly->finish))?((v)->poly->start):((v)+1)) |
| #define | prior(v) (((v)==((v)->poly->start))?((v)->poly->finish):((v)-1)) |
| #define | INBOX(p, bb) ((p.x <= bb.UR.x) && (p.x >= bb.LL.x) && (p.y <= bb.UR.y) && (p.y >= bb.LL.y)) |
| #define | NESTED(a, b) (INBOX(a.LL,b) && INBOX(a.UR,b)) |
Typedefs | |
| typedef struct polygon | polygon |
| typedef struct vertex | vertex |
Functions | |
| static int | sign (double v) |
| static void | sgnarea (vertex *l, vertex *m, int i[]) |
| static int | between (double f, double g, double h) |
| static int | online (vertex *l, vertex *m, int i) |
| static int | intpoint (vertex *l, vertex *m, double *x, double *y, int cond) |
| static void | putSeg (int i, vertex *v) |
| static bool | realIntersect (vertex *firstv, vertex *secondv, pointf p) |
| static bool | find_intersection (vertex *l, vertex *m) |
| static int | gt (const void *a, const void *b) |
| static int | find_ints (vertex vertex_list[], size_t nvertices) |
| static int | findInside (Ppoly_t **polys, int n_polys, polygon *polygon_list) |
| int | Plegal_arrangement (Ppoly_t **polys, int n_polys) |
| #define EQ_PT | ( | v, | |
| w | |||
| ) | (((v).x == (w).x) && ((v).y == (w).y)) |
| #define INBOX | ( | p, | |
| bb | |||
| ) | ((p.x <= bb.UR.x) && (p.x >= bb.LL.x) && (p.y <= bb.UR.y) && (p.y >= bb.LL.y)) |
| #define SLOPE | ( | p, | |
| q | |||
| ) | ( ( ( p.y ) - ( q.y ) ) / ( ( p.x ) - ( q.x ) ) ) |
|
static |
where is g relative to the interval delimited by f and h?
The order of f and h is not assumed. That is, the interval defined may be (f, h) or (h, f) depending on whether f is less than or greater than h.
| f | First boundary of the interval |
| g | Value to test |
| h | Second boundary of the interval |
Definition at line 84 of file legal.c.
Referenced by online().
Definition at line 218 of file legal.c.
References intpoint(), MAX, online(), realIntersect(), and sgnarea().
Referenced by find_ints(), and find_ints().
|
static |
Definition at line 264 of file legal.c.
References vertex::active, after, agerrorf(), find_intersection(), free(), gt(), gv_calloc(), LIST, LIST_APPEND, LIST_FREE, LIST_GET, LIST_REMOVE, LIST_SIZE, and prior.
Referenced by Plegal_arrangement(), and Plegal_arrangement().
Definition at line 334 of file legal.c.
References in_poly(), NESTED, and Ppoly_t::ps.
Referenced by Plegal_arrangement().
|
static |
Definition at line 242 of file legal.c.
Referenced by find_ints().
Definition at line 119 of file legal.c.
References after, le, online(), vertex::pos, SLOPE, pointf_s::x, and pointf_s::y.
Referenced by find_intersection().
Definition at line 107 of file legal.c.
References after, between(), vertex::pos, pointf_s::x, and pointf_s::y.
Referenced by find_intersection(), and intpoint().
| int Plegal_arrangement | ( | Ppoly_t ** | polys, |
| int | n_polys | ||
| ) |
Definition at line 361 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 compoundEdges(), spline_edges_(), and vc_refresh().
|
static |
Definition at line 184 of file legal.c.
References after, vertex::pos, pointf_s::x, and pointf_s::y.
Referenced by realIntersect().
Definition at line 193 of file legal.c.
References after, EQ_PT, vertex::pos, putSeg(), Verbose, pointf_s::x, and pointf_s::y.
Referenced by find_intersection().
Definition at line 54 of file legal.c.
References after, vertex::pos, sign(), pointf_s::x, and pointf_s::y.
Referenced by find_intersection().
|
static |
Definition at line 43 of file legal.c.
Referenced by _sfcvt(), countHorzCross(), countVertCross(), sfprint(), and sgnarea().