19 #ifndef GEOS_NODING_SNAPROUND_MCINDEXSNAPROUNDER_H
20 #define GEOS_NODING_SNAPROUND_MCINDEXSNAPROUNDER_H
22 #include <geos/export.h>
24 #include <geos/noding/Noder.h>
25 #include <geos/noding/NodedSegmentString.h>
26 #include <geos/noding/snapround/MCIndexPointSnapper.h>
27 #include <geos/algorithm/LineIntersector.h>
28 #include <geos/geom/Coordinate.h>
29 #include <geos/geom/PrecisionModel.h>
35 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
41 class LineIntersector;
84 li.setPrecisionModel(&pm);
88 return NodedSegmentString::getNodedSubstrings(*nodedSegStrings);
91 void computeNodes(std::vector<SegmentString*>* segStrings);
101 void computeVertexSnaps(std::vector<SegmentString*>& edges);
112 std::vector<SegmentString*>* nodedSegStrings;
114 std::auto_ptr<MCIndexPointSnapper> pointSnapper;
116 void snapRound(
MCIndexNoder& noder, std::vector<SegmentString*>* segStrings);
127 std::vector<SegmentString*>* segStrings,
128 std::vector<geom::Coordinate>& intersections);
134 void computeIntersectionSnaps(std::vector<geom::Coordinate>& snapPts);
142 void checkCorrectness(std::vector<SegmentString*>& inputSegmentStrings);
157 #endif // GEOS_NODING_SNAPROUND_MCINDEXSNAPROUNDER_H