27#include <geos/export.h>
33#pragma warning(disable: 4251)
40class CoordinateSequence;
46class TaggedLineSegment;
61 typedef std::vector<geom::Coordinate> CoordVect;
63 typedef std::unique_ptr<CoordVect> CoordVectPtr;
67 typedef std::unique_ptr<geom::CoordinateSequence> CoordSeqPtr;
70 std::size_t minimumSize,
71 bool preserveEndpoint);
75 std::size_t getMinimumSize()
const;
77 bool getPreserveEndpoint()
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 const std::vector<TaggedLineSegment*>& getResultSegments()
const;
97 void addToResult(std::unique_ptr<TaggedLineSegment> seg);
99 void removeRingEndpoint();
101 std::unique_ptr<geom::Geometry> asLineString()
const;
103 std::unique_ptr<geom::Geometry> asLinearRing()
const;
110 std::vector<TaggedLineSegment*> segs;
113 std::vector<TaggedLineSegment*> resultSegs;
115 std::size_t minimumSize;
117 bool preserveEndpoint;
121 static std::unique_ptr<geom::CoordinateSequence> extractCoordinates(
122 const std::vector<TaggedLineSegment*>& segs);
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:56
Definition LineString.h:65
A geom::LineSegment which is tagged with its location in a geom::Geometry.
Definition TaggedLineSegment.h:53
Contains and owns a list of TaggedLineSegments.
Definition TaggedLineString.h:57
Basic namespace for all GEOS functionalities.
Definition geos.h:39