20 #include <geos/geom/CoordinateSequence.h>
21 #include <geos/geom/LineSegment.h>
22 #include <geos/util.h>
59 std::unique_ptr<CoordinateSequence> m_pts;
60 std::size_t m_ringCount ;
61 bool m_isFreeRing =
true;
65 static std::unique_ptr<CoordinateSequence>
67 std::size_t start, std::size_t end);
79 CoverageEdge(std::unique_ptr<CoordinateSequence> && pts,
bool isFreeRing)
80 : m_pts(pts ? std::move(pts) : detail::make_unique<CoordinateSequence>())
82 , m_isFreeRing(isFreeRing)
109 static std::unique_ptr<CoverageEdge> createEdge(
112 static std::unique_ptr<CoverageEdge> createEdge(
117 static std::unique_ptr<MultiLineString> createLines(
118 const std::vector<CoverageEdge*>& edges,
121 std::unique_ptr<LineString> toLineString(
131 std::size_t getRingCount()
const
149 m_pts = pts->
clone();
159 return m_pts->getAt(m_pts->size() - 1);
164 return m_pts->getAt(0);
Definition: CoverageEdge.h:54
static LineSegment key(const CoordinateSequence &ring)
bool isFreeRing() const
Definition: CoverageEdge.h:142
static LineSegment key(const CoordinateSequence &ring, std::size_t start, std::size_t end)
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
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:65
Definition: LineSegment.h:61
Definition: LineString.h:65
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:54
Models a collection of LineStrings.
Definition: MultiLineString.h:49
std::unique_ptr< CoordinateSequence > clone() const
Returns a heap-allocated deep copy of this CoordinateSequence.
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25