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);