GEOS
3.9.1dev
|
Validates that the result of an overlay operation is geometrically correct within a determined tolerance. More...
#include <OverlayResultValidator.h>
Public Member Functions | |
OverlayResultValidator (const geom::Geometry &geom0, const geom::Geometry &geom1, const geom::Geometry &result) | |
bool | isValid (OverlayOp::OpCode opCode) |
geom::Coordinate & | getInvalidLocation () |
Static Public Member Functions | |
static bool | isValid (const geom::Geometry &geom0, const geom::Geometry &geom1, OverlayOp::OpCode opCode, const geom::Geometry &result) |
Private Member Functions | |
void | addTestPts (const geom::Geometry &g) |
void | addVertices (const geom::Geometry &g) |
bool | testValid (OverlayOp::OpCode overlayOp) |
bool | testValid (OverlayOp::OpCode overlayOp, const geom::Coordinate &pt) |
bool | isValidResult (OverlayOp::OpCode overlayOp, std::vector< geom::Location > &location) |
OverlayResultValidator (const OverlayResultValidator &other)=delete | |
OverlayResultValidator & | operator= (const OverlayResultValidator &rhs)=delete |
Static Private Member Functions | |
static double | computeBoundaryDistanceTolerance (const geom::Geometry &g0, const geom::Geometry &g1) |
Private Attributes | |
double | boundaryDistanceTolerance |
const geom::Geometry & | g0 |
const geom::Geometry & | g1 |
const geom::Geometry & | gres |
FuzzyPointLocator | fpl0 |
FuzzyPointLocator | fpl1 |
FuzzyPointLocator | fplres |
geom::Coordinate | invalidLocation |
std::vector< geom::Coordinate > | testCoords |
Validates that the result of an overlay operation is geometrically correct within a determined tolerance.
Uses fuzzy point location to find points which are definitely in either the interior or exterior of the result geometry, and compares these results with the expected ones.
This algorithm is only useful where the inputs are polygonal.
This is a heuristic test, and may return false positive results (I.e. it may fail to detect an invalid result.) It should never return a false negative result, however (I.e. it should never report a valid result as invalid.)
Definition at line 64 of file OverlayResultValidator.h.
geos::operation::overlay::validate::OverlayResultValidator::OverlayResultValidator | ( | const geom::Geometry & | geom0, |
const geom::Geometry & | geom1, | ||
const geom::Geometry & | result | ||
) |
|
privatedelete |
|
private |
|
private |
|
staticprivate |
|
inline |
Definition at line 82 of file OverlayResultValidator.h.
|
static |
bool geos::operation::overlay::validate::OverlayResultValidator::isValid | ( | OverlayOp::OpCode | opCode | ) |
|
private |
|
privatedelete |
|
private |
|
private |
|
private |
Definition at line 89 of file OverlayResultValidator.h.
|
private |
Definition at line 97 of file OverlayResultValidator.h.
|
private |
Definition at line 99 of file OverlayResultValidator.h.
|
private |
Definition at line 101 of file OverlayResultValidator.h.
|
private |
Definition at line 91 of file OverlayResultValidator.h.
|
private |
Definition at line 93 of file OverlayResultValidator.h.
|
private |
Definition at line 95 of file OverlayResultValidator.h.
|
private |
Definition at line 103 of file OverlayResultValidator.h.
|
private |
Definition at line 105 of file OverlayResultValidator.h.