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;
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: Angle.h:25