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
147 void setCoordinates(
const CoordinateSequence* pts)
149 m_pts = pts->clone();
152 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);