00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GEOS_NODING_FASTSEGMENTSETINTERSECTIONFINDER_H
00018 #define GEOS_NODING_FASTSEGMENTSETINTERSECTIONFINDER_H
00019
00020 #include <geos/noding/SegmentString.h>
00021 #include <geos/noding/MCIndexSegmentSetMutualIntersector.h>
00022
00023
00024
00025 namespace geos {
00026 namespace noding {
00027 class SegmentIntersectionDetector;
00028 class SegmentSetMutualIntersector;
00029
00030 }
00031 }
00032
00033
00034 namespace geos {
00035 namespace noding {
00036
00046 class FastSegmentSetIntersectionFinder
00047 {
00048 private:
00049 MCIndexSegmentSetMutualIntersector * segSetMutInt;
00050 geos::algorithm::LineIntersector * lineIntersector;
00051
00052 protected:
00053 public:
00054 FastSegmentSetIntersectionFinder( SegmentString::ConstVect * baseSegStrings);
00055
00056 ~FastSegmentSetIntersectionFinder();
00057
00064 SegmentSetMutualIntersector * getSegmentSetIntersector()
00065 {
00066 return segSetMutInt;
00067 }
00068
00069 bool intersects( SegmentString::ConstVect * segStrings);
00070 bool intersects( SegmentString::ConstVect * segStrings, SegmentIntersectionDetector * intDetector);
00071
00072 };
00073
00074 }
00075 }
00076
00077 #endif // GEOS_NODING_FASTSEGMENTSETINTERSECTIONFINDER_H
00078
00079
00080
00081