18#include <geos/export.h>
20#include <geos/operation/valid/PolygonTopologyAnalyzer.h>
21#include <geos/operation/valid/TopologyValidationError.h>
36class GeometryCollection;
40class IndexedPointInAreaLocator;
58 using CoordinateXY = geos::geom::CoordinateXY;
62 static constexpr int MIN_SIZE_LINESTRING = 2;
63 static constexpr int MIN_SIZE_RING = 4;
73 bool isInvertedRingValid =
false;
74 std::unique_ptr<TopologyValidationError> validErr;
76 bool hasInvalidError()
78 return validErr !=
nullptr;
81 void logInvalid(
int code,
const geom::CoordinateXY& pt);
151 bool isNonRepeatedSizeAtLeast(
const geom::LineString* line, std::size_t minSize);
153 void checkAreaIntersections(PolygonTopologyAnalyzer& areaAnalyzer);
186 const CoordinateXY* findHoleOutsideShellPoint(
212 void checkInteriorConnected(PolygonTopologyAnalyzer& areaAnalyzer);
223 : inputGeometry(p_inputGeometry)
256 isInvertedRingValid = p_isValid;
267 return ivo.isValid();
270 static bool isValid(
const geom::CoordinateXY& coord)
272 return isValid(&coord);
290 static bool isValid(
const geom::CoordinateXY* coord);
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:56
Represents a collection of heterogeneous Geometry objects.
Definition GeometryCollection.h:51
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:197
Definition LineString.h:66
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition LinearRing.h:54
Definition MultiPoint.h:50
Definition MultiPolygon.h:58
Represents a linear polygon, which may include holes.
Definition Polygon.h:61
Definition IsValidOp.h:57
IsValidOp(const geom::Geometry *p_inputGeometry)
Definition IsValidOp.h:222
static bool isValid(const geom::CoordinateXY *coord)
const TopologyValidationError * getValidationError()
void setSelfTouchingRingFormingHoleValid(bool p_isValid)
Definition IsValidOp.h:254
static bool isValid(const geom::Geometry *geom)
Definition IsValidOp.h:264
Contains information about the nature and location of a geom::Geometry validation error.
Definition TopologyValidationError.h:39
Basic namespace for all GEOS functionalities.
Definition geos.h:39