18 #include <geos/export.h>
20 #include <geos/operation/valid/PolygonTopologyAnalyzer.h>
21 #include <geos/operation/valid/TopologyValidationError.h>
22 #include <geos/util.h>
36 class GeometryCollection;
40 class IndexedPointInAreaLocator;
61 static constexpr
int MIN_SIZE_LINESTRING = 2;
62 static constexpr
int MIN_SIZE_RING = 4;
72 bool isInvertedRingValid =
false;
73 std::unique_ptr<TopologyValidationError> validErr;
75 bool hasInvalidError()
77 return validErr !=
nullptr;
80 void logInvalid(
int code,
const geom::CoordinateXY& pt);
150 bool isNonRepeatedSizeAtLeast(
const geom::LineString* line, std::size_t minSize);
152 void checkAreaIntersections(PolygonTopologyAnalyzer& areaAnalyzer);
185 const CoordinateXY* findHoleOutsideShellPoint(
211 void checkInteriorConnected(PolygonTopologyAnalyzer& areaAnalyzer);
222 : inputGeometry(p_inputGeometry)
255 isInvertedRingValid = p_isValid;
266 return ivo.isValid();
269 static bool isValid(
const geom::CoordinateXY& coord)
271 return isValid(&coord);
289 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:186
Definition: LineString.h:65
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:60
Definition: IsValidOp.h:57
IsValidOp(const geom::Geometry *p_inputGeometry)
Definition: IsValidOp.h:221
static bool isValid(const geom::CoordinateXY *coord)
const TopologyValidationError * getValidationError()
void setSelfTouchingRingFormingHoleValid(bool p_isValid)
Definition: IsValidOp.h:253
static bool isValid(const geom::Geometry *geom)
Definition: IsValidOp.h:263
Contains information about the nature and location of a geom::Geometry validation error.
Definition: TopologyValidationError.h:39
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25