27 #include <geos/export.h> 33 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 40 class CoordinateSequence;
46 class 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);
A geom::LineSegment which is tagged with its location in a geom::Geometry.
Definition: TaggedLineSegment.h:53
Definition: LineString.h:65
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
Contains and owns a list of TaggedLineSegments.
Definition: TaggedLineString.h:57
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56