00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef GEOS_NODING_SINGLEPASSNODER_H
00017 #define GEOS_NODING_SINGLEPASSNODER_H
00018
00019 #include <geos/export.h>
00020
00021 #include <vector>
00022
00023 #include <geos/inline.h>
00024
00025 #include <geos/noding/Noder.h>
00026
00027
00028 namespace geos {
00029 namespace noding {
00030 class SegmentString;
00031 class SegmentIntersector;
00032 }
00033 }
00034
00035 namespace geos {
00036 namespace noding {
00037
00038
00051 class GEOS_DLL SinglePassNoder : public Noder {
00052
00053 protected:
00054
00056 SegmentIntersector* segInt;
00057
00058 public:
00059
00060 SinglePassNoder(SegmentIntersector* nSegInt=NULL): segInt(nSegInt) {}
00061
00062 virtual ~SinglePassNoder() {}
00063
00073 virtual void setSegmentIntersector(SegmentIntersector* newSegInt) {
00074 segInt = newSegInt;
00075 }
00076
00082 virtual void computeNodes(std::vector<SegmentString*>* segStrings)=0;
00083
00090 virtual std::vector<SegmentString*>* getNodedSubstrings() const=0;
00091
00092 };
00093
00094 }
00095 }
00096
00097
00098
00099
00100
00101 #endif // GEOS_NODING_SINGLEPASSNODER_H
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112