26 #ifndef GEOS_SIMPLIFY_TAGGEDLINESTRING_H
27 #define GEOS_SIMPLIFY_TAGGEDLINESTRING_H
29 #include <geos/export.h>
35 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
42 class CoordinateSequence;
48 class TaggedLineSegment;
65 typedef std::vector<geom::Coordinate> CoordVect;
67 typedef std::auto_ptr<CoordVect> CoordVectPtr;
71 typedef std::auto_ptr<geom::CoordinateSequence> CoordSeqPtr;
74 std::size_t minimumSize=2);
78 std::size_t getMinimumSize()
const;
82 const CoordSeq* getParentCoordinates()
const;
84 CoordSeqPtr getResultCoordinates()
const;
86 std::size_t getResultSize()
const;
92 std::vector<TaggedLineSegment*>& getSegments();
94 const std::vector<TaggedLineSegment*>& getSegments()
const;
96 void addToResult(std::auto_ptr<TaggedLineSegment> seg);
98 std::auto_ptr<geom::Geometry> asLineString()
const;
100 std::auto_ptr<geom::Geometry> asLinearRing()
const;
107 std::vector<TaggedLineSegment*> segs;
110 std::vector<TaggedLineSegment*> resultSegs;
112 std::size_t minimumSize;
116 static CoordVectPtr extractCoordinates(
117 const std::vector<TaggedLineSegment*>& segs);
132 #endif // GEOS_SIMPLIFY_TAGGEDLINESTRING_H