25 #ifndef GEOS_SIMPLIFY_TAGGEDLINESTRING_H 26 #define GEOS_SIMPLIFY_TAGGEDLINESTRING_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;
68 typedef std::unique_ptr<geom::CoordinateSequence>
CoordSeqPtr;
71 std::size_t minimumSize = 2);
75 std::size_t getMinimumSize()
const;
79 const CoordSeq* getParentCoordinates()
const;
81 CoordSeqPtr getResultCoordinates()
const;
83 std::size_t getResultSize()
const;
89 std::vector<TaggedLineSegment*>& getSegments();
91 const std::vector<TaggedLineSegment*>& getSegments()
const;
93 void addToResult(std::unique_ptr<TaggedLineSegment> seg);
95 std::unique_ptr<geom::Geometry> asLineString()
const;
97 std::unique_ptr<geom::Geometry> asLinearRing()
const;
104 std::vector<TaggedLineSegment*>
segs;
113 static CoordVectPtr extractCoordinates(
114 const std::vector<TaggedLineSegment*>& segs);
129 #endif // GEOS_SIMPLIFY_TAGGEDLINESTRING_H
const geom::LineString * parentLine
A geom::LineSegment which is tagged with its location in a geom::Geometry.
std::unique_ptr< geom::CoordinateSequence > CoordSeqPtr
std::vector< geom::Coordinate > CoordVect
Basic namespace for all GEOS functionalities.
Contains and owns a list of TaggedLineSegments.
The internal representation of a list of coordinates inside a Geometry.
geom::CoordinateSequence CoordSeq
std::vector< TaggedLineSegment * > resultSegs
std::vector< TaggedLineSegment * > segs
std::unique_ptr< CoordVect > CoordVectPtr