15 #ifndef GEOS_GEOM_COORDINATEARRAYSEQUENCE_H
16 #define GEOS_GEOM_COORDINATEARRAYSEQUENCE_H
18 #include <geos/export.h>
21 #include <geos/geom/CoordinateSequence.h>
23 #include <geos/inline.h>
37 class GEOS_DLL CoordinateArraySequence :
public CoordinateSequence {
40 CoordinateArraySequence(
const CoordinateArraySequence& cl);
42 CoordinateArraySequence(
const CoordinateSequence& cl);
44 std::unique_ptr<CoordinateSequence> clone()
const override;
46 const Coordinate& getAt(std::size_t pos)
const override;
49 void getAt(std::size_t i, Coordinate& c)
const override;
51 size_t getSize()
const override;
54 void toVector(std::vector<Coordinate>&)
const override;
57 CoordinateArraySequence();
60 CoordinateArraySequence(std::vector<Coordinate> && coords,
61 std::size_t dimension = 0);
64 CoordinateArraySequence(std::vector<Coordinate>* coords,
65 std::size_t dimension = 0);
68 CoordinateArraySequence(std::size_t n, std::size_t dimension = 0);
70 ~CoordinateArraySequence()
override =
default;
73 isEmpty()
const override
100 void add(
const Coordinate& c,
bool allowRepeated);
113 void add(std::size_t i,
const Coordinate& coord,
bool allowRepeated);
117 void setAt(
const Coordinate& c, std::size_t pos)
override;
119 void setPoints(
const std::vector<Coordinate>& v)
override;
121 void setOrdinate(std::size_t index, std::size_t ordinateIndex,
122 double value)
override;
124 void expandEnvelope(
Envelope& env)
const override;
126 std::size_t getDimension()
const override;
133 std::vector<Coordinate> vect;
134 mutable std::size_t dimension;
143 #endif // ndef GEOS_GEOM_COORDINATEARRAYSEQUENCE_H