19 #ifndef GEOS_OP_OVERLAY_OVERLAYRESULTVALIDATOR_H
20 #define GEOS_OP_OVERLAY_OVERLAYRESULTVALIDATOR_H
22 #include <geos/export.h>
23 #include <geos/operation/overlay/OverlayOp.h>
24 #include <geos/operation/overlay/validate/FuzzyPointLocator.h>
25 #include <geos/geom/Location.h>
31 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
64 class GEOS_DLL OverlayResultValidator {
69 const geom::Geometry& geom0,
70 const geom::Geometry& geom1,
72 const geom::Geometry& result);
74 OverlayResultValidator(
75 const geom::Geometry& geom0,
76 const geom::Geometry& geom1,
77 const geom::Geometry& result);
84 return invalidLocation;
89 double boundaryDistanceTolerance;
91 const geom::Geometry& g0;
93 const geom::Geometry& g1;
95 const geom::Geometry& gres;
97 FuzzyPointLocator fpl0;
99 FuzzyPointLocator fpl1;
101 FuzzyPointLocator fplres;
103 geom::Coordinate invalidLocation;
105 std::vector<geom::Coordinate> testCoords;
107 void addTestPts(
const geom::Geometry& g);
109 void addVertices(
const geom::Geometry& g);
116 std::vector<geom::Location>& location);
118 static double computeBoundaryDistanceTolerance(
119 const geom::Geometry& g0,
const geom::Geometry& g1);
122 OverlayResultValidator(
const OverlayResultValidator& other) =
delete;
123 OverlayResultValidator& operator=(
const OverlayResultValidator& rhs) =
delete;
135 #endif // ndef GEOS_OP_OVERLAY_OVERLAYRESULTVALIDATOR_H