00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GEOS_OP_CONSISTENTAREATESTER_H
00022 #define GEOS_OP_CONSISTENTAREATESTER_H
00023
00024 #include <geos/export.h>
00025
00026 #include <geos/geom/Coordinate.h>
00027 #include <geos/algorithm/LineIntersector.h>
00028 #include <geos/operation/relate/RelateNodeGraph.h>
00029
00030
00031 namespace geos {
00032 namespace algorithm {
00033 class LineIntersector;
00034 }
00035 namespace geomgraph {
00036 class GeometryGraph;
00037 }
00038 namespace operation {
00039 namespace relate {
00040 class RelateNodeGraph;
00041 }
00042 }
00043 }
00044
00045 namespace geos {
00046 namespace operation {
00047 namespace valid {
00048
00084 class GEOS_DLL ConsistentAreaTester {
00085 private:
00086
00087 algorithm::LineIntersector li;
00088
00090 geomgraph::GeometryGraph *geomGraph;
00091
00092 relate::RelateNodeGraph nodeGraph;
00093
00095 geom::Coordinate invalidPoint;
00096
00101 bool isNodeEdgeAreaLabelsConsistent();
00102
00103 public:
00104
00111 ConsistentAreaTester(geomgraph::GeometryGraph *newGeomGraph);
00112
00113 ~ConsistentAreaTester();
00114
00119 geom::Coordinate& getInvalidPoint();
00120
00128 bool isNodeConsistentArea();
00129
00145 bool hasDuplicateRings();
00146 };
00147
00148
00149
00150 }
00151 }
00152 }
00153
00154 #endif // GEOS_OP_CONSISTENTAREATESTER_H
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166