1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Functions for locating points within basic geometric structures such as line
//! segments, lines and rings.
//!
//! Only the ring half is ported: `isOnSegment` and both `isOnLine` overloads are
//! linear predicates outside the point-in-polygon stack.
//!
//! @jts PointLocation
use Coord;
use crateRayCrossingCounter;
use crateEXTERIOR;
/// Tests whether a point lies inside or on a ring. The ring may be oriented in
/// either direction. A point lying exactly on the ring boundary is considered to
/// be inside the ring.
///
/// This function does *not* first check the point against the envelope of the
/// ring.
///
/// Nothing in the ported subset calls this: `SimplePointInAreaLocator` reaches
/// for `locate_in_ring`. It is ported because `pin.json` names it in `portedMembers`.
///
/// @jts PointLocation#isInRing(Coordinate,Coordinate[])
pub
/// Determines whether a point lies in the interior, on the boundary, or in the
/// exterior of a ring. The ring may be oriented in either direction.
///
/// This function does *not* first check the point against the envelope of the
/// ring.
///
/// @jts PointLocation#locateInRing(Coordinate,Coordinate[])
pub