25 #ifndef GEOS_SIMPLIFY_TAGGEDLINESTRING_H 26 #define GEOS_SIMPLIFY_TAGGEDLINESTRING_H 28 #include <geos/export.h> 34 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 41 class CoordinateSequence;
47 class TaggedLineSegment;
64 typedef std::vector<geom::Coordinate> CoordVect;
66 typedef std::unique_ptr<CoordVect> CoordVectPtr;
70 typedef std::unique_ptr<geom::CoordinateSequence> CoordSeqPtr;
73 std::size_t minimumSize = 2);
77 std::size_t getMinimumSize()
const;
81 const CoordSeq* getParentCoordinates()
const;
83 CoordSeqPtr getResultCoordinates()
const;
85 std::size_t getResultSize()
const;
91 std::vector<TaggedLineSegment*>& getSegments();
93 const std::vector<TaggedLineSegment*>& getSegments()
const;
95 void addToResult(std::unique_ptr<TaggedLineSegment> seg);
97 std::unique_ptr<geom::Geometry> asLineString()
const;
99 std::unique_ptr<geom::Geometry> asLinearRing()
const;
106 std::vector<TaggedLineSegment*> segs;
109 std::vector<TaggedLineSegment*> resultSegs;
111 std::size_t minimumSize;
115 static CoordVectPtr extractCoordinates(
116 const std::vector<TaggedLineSegment*>& segs);
131 #endif // GEOS_SIMPLIFY_TAGGEDLINESTRING_H A geom::LineSegment which is tagged with its location in a geom::Geometry.
Definition: TaggedLineSegment.h:54
Definition: LineString.h:68
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
Contains and owns a list of TaggedLineSegments.
Definition: TaggedLineString.h:60
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:58