27 #include <geos/export.h>
33 #pragma warning(disable: 4251)
46 class TaggedLineSegment;
64 typedef std::vector<Coordinate> CoordVect;
66 typedef std::unique_ptr<CoordVect> CoordVectPtr;
70 typedef std::unique_ptr<CoordinateSequence> CoordSeqPtr;
73 std::size_t minimumSize,
78 std::size_t getMinimumSize()
const;
84 const CoordSeq* getParentCoordinates()
const;
86 CoordSeqPtr getResultCoordinates()
const;
88 const Coordinate& getCoordinate(std::size_t i)
const;
90 std::size_t size()
const;
94 std::size_t getResultSize()
const;
100 std::vector<TaggedLineSegment*>& getSegments();
102 const std::vector<TaggedLineSegment*>& getSegments()
const;
104 const std::vector<TaggedLineSegment*>& getResultSegments()
const;
106 void addToResult(std::unique_ptr<TaggedLineSegment> seg);
108 void removeRingEndpoint();
110 std::unique_ptr<geom::Geometry> asLineString()
const;
112 std::unique_ptr<geom::Geometry> asLinearRing()
const;
119 std::vector<TaggedLineSegment*> segs;
122 std::vector<TaggedLineSegment*> resultSegs;
124 std::size_t minimumSize;
130 static std::unique_ptr<CoordinateSequence> extractCoordinates(
131 const std::vector<TaggedLineSegment*>& segs);
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
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:60
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25