Test line intersection and point inside polygon. More...
#include <pinside.h>
This is a fast and dirty implementation of the point inside polygon test from Jerome L. Lewis, SIGSCE Bulletin, 34 (2002) 81.
Note that an error in that article ("count-" should have been "count--") has been corrected here.
Classes | |
struct | line |
Internal line definition for pinside. More... | |
struct | point |
Internal point definition for pinside. More... | |
Public Types | |
typedef boost::numeric::ublas::vector< double > | ubvector |
Public Member Functions | |
int | intersect (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) |
Determine if two line segments intersect. More... | |
int | inside (double x, double y, const ubvector &xa, const ubvector &ya) |
Determine if point (x,y) is inside a polygon. More... | |
template<class vec_t > | |
int | inside (double x, double y, size_t n, const vec_t &xa, const vec_t &ya) |
Determine if point (x,y) is inside a polygon. More... | |
int | test (test_mgr &t) |
Perform some simple testing. | |
Protected Member Functions | |
int | intersect (line P, line Q) |
Test if line segments P and Q intersect. | |
int | inside (point t, point p[], int N) |
Test if point t is inside polygon p of size N . | |
This returns 1 if the point (x,y) is inside the polygon defined by xa
and ya
, and 0 otherwise.
Note that if the point (x,y) is exactly on the polygon, then the result of this function is not well-defined and it will return either 0 or 1.
|
inline |
This returns 1 if the point (x,y) is inside the polygon defined by xa
and ya
, and 0 otherwise.
The parameter n
should be the number of polygon points specified in vectors xa
and ya
.
Note that if the point (x,y) is exactly on the polygon, then the result of this function is not well-defined and it will return either 0 or 1.
|
inline |
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).