00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_OP_SIMPLENESTEDRINGTESTER_H
00021 #define GEOS_OP_SIMPLENESTEDRINGTESTER_H
00022
00023 #include <geos/export.h>
00024
00025 #include <cstddef>
00026 #include <vector>
00027
00028 #ifdef _MSC_VER
00029 #pragma warning(push)
00030 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
00031 #endif
00032
00033
00034 namespace geos {
00035 namespace geom {
00036 class Coordinate;
00037 class LinearRing;
00038 }
00039 namespace geomgraph {
00040 class GeometryGraph;
00041 }
00042 }
00043
00044 namespace geos {
00045 namespace operation {
00046 namespace valid {
00047
00054 class GEOS_DLL SimpleNestedRingTester {
00055 private:
00056 geomgraph::GeometryGraph *graph;
00057 std::vector<geom::LinearRing*> rings;
00058 geom::Coordinate *nestedPt;
00059 public:
00060 SimpleNestedRingTester(geomgraph::GeometryGraph *newGraph)
00061 :
00062 graph(newGraph),
00063 rings(),
00064 nestedPt(NULL)
00065 {}
00066
00067 ~SimpleNestedRingTester() {
00068 }
00069
00070 void add(geom::LinearRing *ring) {
00071 rings.push_back(ring);
00072 }
00073
00074
00075
00076
00077
00078
00079
00080 geom::Coordinate *getNestedPoint() {
00081 return nestedPt;
00082 }
00083
00084 bool isNonNested();
00085 };
00086
00087 }
00088 }
00089 }
00090
00091 #ifdef _MSC_VER
00092 #pragma warning(pop)
00093 #endif
00094
00095 #endif // GEOS_OP_SIMPLENESTEDRINGTESTER_H