19#include <geos/geom/Coordinate.h>
26namespace triangulate {
44 static constexpr std::size_t
45 NO_COORD_INDEX = std::numeric_limits<std::size_t>::max();
47 const std::vector<Coordinate>& m_coord;
49 std::vector<std::size_t> m_next;
50 std::vector<std::size_t> m_prev;
52 static std::vector<std::size_t> createNextLinks(std::size_t size);
53 static std::vector<std::size_t> createPrevLinks(std::size_t size);
58 LinkedRing(
const std::vector<Coordinate>& cs)
61 , m_next(createNextLinks(m_size))
62 , m_prev(createPrevLinks(m_size))
65 std::size_t size()
const;
66 std::size_t next(std::size_t i)
const;
67 std::size_t prev(std::size_t i)
const;
68 const Coordinate& getCoordinate(std::size_t index)
const;
69 const Coordinate& prevCoordinate(std::size_t index)
const;
70 const Coordinate& nextCoordinate(std::size_t index)
const;
71 bool hasCoordinate(std::size_t index)
const;
72 void remove(std::size_t index);
73 std::unique_ptr<CoordinateArraySequence> getCoordinates()
const;
The default implementation of CoordinateSequence.
Definition: CoordinateArraySequence.h:35
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Basic namespace for all GEOS functionalities.
Definition: geos.h:39