![]() |
Object-oriented Scientific Computing Library: Version 0.910
|
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.
Data Structures | |
struct | line |
Internal line definition for pinside. More... | |
struct | point |
Internal point definition for pinside. More... | |
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. | |
int | inside (double x, double y, const o2scl::ovector_base &xa, const o2scl::ovector_base &ya) |
Determine if point (x,y) is inside a polygon. | |
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. | |
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 . |
int pinside::intersect | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2, | ||
double | x3, | ||
double | y3, | ||
double | x4, | ||
double | y4 | ||
) | [inline] |
int pinside::inside | ( | double | x, |
double | y, | ||
const o2scl::ovector_base & | xa, | ||
const o2scl::ovector_base & | ya | ||
) |
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.
int pinside::inside | ( | double | x, |
double | y, | ||
size_t | n, | ||
const vec_t & | xa, | ||
const vec_t & | ya | ||
) | [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.
Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).