00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GEOS_OP_REPEATEDPOINTTESTER_H
00022 #define GEOS_OP_REPEATEDPOINTTESTER_H
00023
00024 #include <geos/export.h>
00025
00026 #include <geos/geom/Coordinate.h>
00027
00028
00029 namespace geos {
00030 namespace geom {
00031
00032 class CoordinateSequence;
00033 class Geometry;
00034 class Polygon;
00035 class MultiPolygon;
00036 class MultiLineString;
00037 class GeometryCollection;
00038 }
00039 }
00040
00041 namespace geos {
00042 namespace operation {
00043 namespace valid {
00044
00050 class GEOS_DLL RepeatedPointTester {
00051 public:
00052 RepeatedPointTester() {};
00053 geom::Coordinate& getCoordinate();
00054 bool hasRepeatedPoint(const geom::Geometry *g);
00055 bool hasRepeatedPoint(const geom::CoordinateSequence *coord);
00056 private:
00057 geom::Coordinate repeatedCoord;
00058 bool hasRepeatedPoint(const geom::Polygon *p);
00059 bool hasRepeatedPoint(const geom::GeometryCollection *gc);
00060 bool hasRepeatedPoint(const geom::MultiPolygon *gc);
00061 bool hasRepeatedPoint(const geom::MultiLineString *gc);
00062 };
00063
00064
00065 }
00066 }
00067 }
00068
00069 #endif // GEOS_OP_REPEATEDPOINTTESTER_H
00070
00071
00072
00073
00074
00075
00076
00077