25 #ifndef GEOS_SIMPLIFY_TAGGEDLINESTRING_H
26 #define GEOS_SIMPLIFY_TAGGEDLINESTRING_H
28 #include <geos/export.h>
35 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
42 class CoordinateSequence;
48 class TaggedLineSegment;
66 typedef std::vector<geom::Coordinate> CoordVect;
68 typedef std::auto_ptr<CoordVect> CoordVectPtr;
72 typedef std::auto_ptr<geom::CoordinateSequence> CoordSeqPtr;
75 std::size_t minimumSize=2);
79 std::size_t getMinimumSize()
const;
83 const CoordSeq* getParentCoordinates()
const;
85 CoordSeqPtr getResultCoordinates()
const;
87 std::size_t getResultSize()
const;
93 std::vector<TaggedLineSegment*>& getSegments();
95 const std::vector<TaggedLineSegment*>& getSegments()
const;
97 void addToResult(std::auto_ptr<TaggedLineSegment> seg);
99 std::auto_ptr<geom::Geometry> asLineString()
const;
101 std::auto_ptr<geom::Geometry> asLinearRing()
const;
108 std::vector<TaggedLineSegment*> segs;
111 std::vector<TaggedLineSegment*> resultSegs;
113 std::size_t minimumSize;
117 static CoordVectPtr extractCoordinates(
118 const std::vector<TaggedLineSegment*>& segs);
133 #endif // GEOS_SIMPLIFY_TAGGEDLINESTRING_H
A geom::LineSegment which is tagged with its location in a geom::Geometry.
Definition: TaggedLineSegment.h:54
Definition: LineString.h:70
Contains and owns a list of TaggedLineSegments.
Definition: TaggedLineString.h:62
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:59