public class OverlayResultValidator
extends java.lang.Object
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.)
OverlayOp
Modifier and Type | Field and Description |
---|---|
private double |
boundaryDistanceTolerance |
private Geometry[] |
geom |
private Coordinate |
invalidLocation |
private int[] |
location |
private FuzzyPointLocator[] |
locFinder |
private java.util.List |
testCoords |
private static double |
TOLERANCE |
Constructor and Description |
---|
OverlayResultValidator(Geometry a,
Geometry b,
Geometry result) |
Modifier and Type | Method and Description |
---|---|
private void |
addTestPts(Geometry g) |
private boolean |
checkValid(int overlayOp) |
private boolean |
checkValid(int overlayOp,
Coordinate pt) |
private static double |
computeBoundaryDistanceTolerance(Geometry g0,
Geometry g1) |
Coordinate |
getInvalidLocation() |
private static boolean |
hasLocation(int[] location,
int loc) |
static boolean |
isValid(Geometry a,
Geometry b,
int overlayOp,
Geometry result) |
boolean |
isValid(int overlayOp) |
private boolean |
isValidResult(int overlayOp,
int[] location) |
private void |
reportResult(int overlayOp,
int[] location,
boolean expectedInterior) |
private static final double TOLERANCE
private Geometry[] geom
private FuzzyPointLocator[] locFinder
private int[] location
private Coordinate invalidLocation
private double boundaryDistanceTolerance
private java.util.List testCoords
private static double computeBoundaryDistanceTolerance(Geometry g0, Geometry g1)
public boolean isValid(int overlayOp)
public Coordinate getInvalidLocation()
private void addTestPts(Geometry g)
private boolean checkValid(int overlayOp)
private boolean checkValid(int overlayOp, Coordinate pt)
private static boolean hasLocation(int[] location, int loc)
private boolean isValidResult(int overlayOp, int[] location)
private void reportResult(int overlayOp, int[] location, boolean expectedInterior)