00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef GEOS_NODING_INTERSECTIONFINDERADDER_H
00017 #define GEOS_NODING_INTERSECTIONFINDERADDER_H
00018
00019 #include <vector>
00020 #include <iostream>
00021
00022 #include <geos/inline.h>
00023
00024 #include <geos/geom/Coordinate.h>
00025 #include <geos/noding/SegmentIntersector.h>
00026
00027
00028 namespace geos {
00029 namespace geom {
00030 class Coordinate;
00031 }
00032 namespace noding {
00033 class SegmentString;
00034 }
00035 namespace algorithm {
00036 class LineIntersector;
00037 }
00038 }
00039
00040 namespace geos {
00041 namespace noding {
00042
00050 class IntersectionFinderAdder: public SegmentIntersector {
00051
00052 private:
00053 algorithm::LineIntersector& li;
00054 std::vector<geom::Coordinate>& interiorIntersections;
00055
00056 public:
00057
00065 IntersectionFinderAdder(algorithm::LineIntersector& newLi,
00066 std::vector<geom::Coordinate>& v)
00067 :
00068 li(newLi),
00069 interiorIntersections(v)
00070 {}
00071
00082 void processIntersections(
00083 SegmentString* e0, int segIndex0,
00084 SegmentString* e1, int segIndex1);
00085
00086 std::vector<geom::Coordinate>& getInteriorIntersections() {
00087 return interiorIntersections;
00088 }
00089
00090 };
00091
00092 }
00093 }
00094
00095
00096
00097
00098
00099 #endif // GEOS_NODING_INTERSECTIONFINDERADDER_H
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116