*CGAL::bounded_side_2*

### Definition

The function *bounded_side_2* computes if a point lies inside a polygon.

*#include <CGAL/Polygon_2_algorithms.h>*

The function *bounded_side_2* computes if a point lies inside a polygon.
The polygon is defined by the sequence of points *first*...*last*.
Being inside is defined by the odd-even rule. If we take a ray starting at the
point and extending to infinity (in any direction), we count the number of
intersections. If this number is odd, the point is inside, otherwise it is
outside. If the point is on a polygon edge, a special value is returned. A
simple polygon divides the plane in an unbounded and a bounded region.
According to the definition points in the bounded region are inside the polygon.

### Requirements

*Traits* is a model of the concept
PolygonTraits_2
.
Only the following members of this traits class are used:
*Compare_x_2*
*Compare_y_2*
*Orientation_2*
*compare_x_2_object*
*compare_y_2_object*
*orientation_2_object*

*ForwardIterator::value_type* should be *Traits::Point_2*,

### Implementation

The running time is linear in the number of vertices of the polygon.
A horizontal ray is taken to count the number of intersections.
Special care is taken that the result is correct even if there are degeneracies
(if the ray passes through a vertex).

### See Also

*PolygonTraits_2*

*CGAL::oriented_side_2*

*CGAL::Polygon_2<PolygonTraits_2, Container>*

*CGAL::Bounded_side*