20#include <geos/geom/CoordinateSequence.h>
21#include <geos/geom/LineSegment.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:217
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:70
Definition LineSegment.h:61
Definition LineString.h:66
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 geos.h:39