pinside Class Reference

#include <pinside.h>


Detailed Description

Test line intersection and point inside polygon.

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.

Definition at line 45 of file pinside.h.


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_view &xa, const o2scl::ovector_view &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.

Data Structures

struct  line
 Internal line definition. More...
struct  point
 Internal point definition. More...

Member Function Documentation

int intersect ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3,
double  x4,
double  y4 
) [inline]

Determine if two line segments intersect.

The function returns 1 if the line segment determined by the endpoints $ (x_1,y_1) $ and $ (x_2,y_2) $ and the line segment determined by the endpoints $ (x_3,y_3) $ and $ (x_4,y_4) $ intersect, and 0 otherwise.

Definition at line 78 of file pinside.h.

int inside ( double  x,
double  y,
const o2scl::ovector_view xa,
const o2scl::ovector_view ya 
)

Determine if point (x,y) is inside a polygon.

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.


The documentation for this class was generated from the following file:
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.