59 std::shared_ptr<const 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
147 void setCoordinates(
const std::shared_ptr<const CoordinateSequence>& pts)
152 const std::shared_ptr<const CoordinateSequence>& getCoordinates()
const
157 const Coordinate& getEndCoordinate()
const
159 return m_pts->getAt(m_pts->size() - 1);
162 const Coordinate& getStartCoordinate()
const
164 return m_pts->getAt(0);