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