22#include <geos/export.h>
23#include <geos/geom/Location.h>
65class GEOS_DLL RayCrossingCounter {
67 const geom::CoordinateXY& point;
69 std::size_t crossingCount;
72 bool isPointOnSegment;
75 RayCrossingCounter(
const RayCrossingCounter& other) =
delete;
76 RayCrossingCounter& operator=(
const RayCrossingCounter& rhs) =
delete;
93 const std::vector<const geom::Coordinate*>& ring);
95 RayCrossingCounter(
const geom::CoordinateXY& p_point)
98 isPointOnSegment(false)
108 const geom::CoordinateXY& p2);
122 return isPointOnSegment;
148 std::size_t getCount()
const {
return crossingCount; };
void countSegment(const geom::CoordinateXY &p1, const geom::CoordinateXY &p2)
Counts a segment.
static geom::Location locatePointInRing(const geom::CoordinateXY &p, const geom::CoordinateSequence &ring)
Determines the Location of a point in a ring.
geom::Location getLocation() const
Gets the Location of the point relative to the ring, polygon or multipolygon from which the processed...
static geom::Location locatePointInRing(const geom::CoordinateXY &p, const std::vector< const geom::Coordinate * > &ring)
Semantically equal to the above, just different args encoding.
bool isPointInPolygon() const
Tests whether the point lies in or on the ring, polygon or multipolygon from which the processed segm...
bool isOnSegment() const
Reports whether the point lies exactly on one of the supplied segments.
Definition RayCrossingCounter.h:120
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:56
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:216
Contains classes and interfaces implementing fundamental computational geometry algorithms.
Definition Angle.h:32
Location
Constants representing the location of a point relative to a geometry.
Definition Location.h:32
Basic namespace for all GEOS functionalities.
Definition geos.h:39