20 #ifndef GEOS_ALGORITHM_RAYCROSSINGCOUNTERDD_H
21 #define GEOS_ALGORITHM_RAYCROSSINGCOUNTERDD_H
23 #include <geos/export.h>
24 #include <geos/geom/Location.h>
25 #include <geos/algorithm/ttmath/ttmath.h>
33 class CoordinateSequence;
65 class GEOS_DLL RayCrossingCounterDD {
67 const geom::Coordinate& point;
72 bool isPointOnSegment;
75 RayCrossingCounterDD(
const RayCrossingCounterDD& other) =
delete;
76 RayCrossingCounterDD& operator=(
const RayCrossingCounterDD& rhs) =
delete;
88 const geom::CoordinateSequence& ring);
92 const std::vector<const geom::Coordinate*>& ring);
106 static int orientationIndex(
const geom::Coordinate& p1,
107 const geom::Coordinate& p2,
108 const geom::Coordinate& q);
110 RayCrossingCounterDD(
const geom::Coordinate& p_point):
113 isPointOnSegment(false)
122 void countSegment(
const geom::Coordinate& p1,
123 const geom::Coordinate& p2);
137 return isPointOnSegment;
160 bool isPointInPolygon();
167 #endif // GEOS_ALGORITHM_RAYCROSSINGCOUNTERDD_H