26 #ifndef GEOS_SIMPLIFY_TAGGEDLINESTRING_H
27 #define GEOS_SIMPLIFY_TAGGEDLINESTRING_H
29 #include <geos/export.h>
36 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
43 class CoordinateSequence;
49 class TaggedLineSegment;
67 typedef std::vector<geom::Coordinate> CoordVect;
69 typedef std::auto_ptr<CoordVect> CoordVectPtr;
73 typedef std::auto_ptr<geom::CoordinateSequence> CoordSeqPtr;
76 std::size_t minimumSize=2);
80 std::size_t getMinimumSize()
const;
84 const CoordSeq* getParentCoordinates()
const;
86 CoordSeqPtr getResultCoordinates()
const;
88 std::size_t getResultSize()
const;
94 std::vector<TaggedLineSegment*>& getSegments();
96 const std::vector<TaggedLineSegment*>& getSegments()
const;
98 void addToResult(std::auto_ptr<TaggedLineSegment> seg);
100 std::auto_ptr<geom::Geometry> asLineString()
const;
102 std::auto_ptr<geom::Geometry> asLinearRing()
const;
109 std::vector<TaggedLineSegment*> segs;
112 std::vector<TaggedLineSegment*> resultSegs;
114 std::size_t minimumSize;
118 static CoordVectPtr extractCoordinates(
119 const std::vector<TaggedLineSegment*>& segs);
134 #endif // GEOS_SIMPLIFY_TAGGEDLINESTRING_H