15 #ifndef GEOS_GEOM_COORDINATESEQUENCE_H 16 #define GEOS_GEOM_COORDINATESEQUENCE_H 18 #include <geos/export.h> 19 #include <geos/inline.h> 21 #include <geos/geom/Coordinate.h> 31 class CoordinateFilter;
68 typedef std::unique_ptr<CoordinateSequence> Ptr;
76 virtual std::unique_ptr<CoordinateSequence> clone()
const = 0;
84 virtual const Coordinate& getAt(std::size_t i)
const = 0;
90 return getAt(size() - 1);
101 operator[](std::size_t i)
const 106 virtual Envelope getEnvelope()
const;
111 virtual void getAt(std::size_t i,
Coordinate& c)
const = 0;
117 virtual std::size_t getSize()
const = 0;
129 virtual void toVector(std::vector<Coordinate>& coords)
const = 0;
132 virtual bool isEmpty()
const = 0;
135 virtual void setAt(
const Coordinate& c, std::size_t pos) = 0;
138 std::string toString()
const;
141 virtual void setPoints(
const std::vector<Coordinate>& v) = 0;
144 bool hasRepeatedPoints()
const;
167 static size_t indexOf(
const Coordinate* coordinate,
212 virtual std::size_t getDimension()
const = 0;
224 virtual double getOrdinate(std::size_t index, std::size_t ordinateIndex)
const;
235 return getOrdinate(index, X);
247 return getOrdinate(index, Y);
259 virtual void setOrdinate(std::size_t index, std::size_t ordinateIndex,
double value) = 0;
268 virtual void expandEnvelope(
Envelope& env)
const;
286 for(std::size_t i = 0, n = size(); i < n; ++i) {
308 #endif // ndef GEOS_GEOM_COORDINATESEQUENCE_H void applyCoordinateFilter(T &f)
Apply a filter to each Coordinate of this sequence. The filter is expected to provide a ...
Definition: CoordinateSequence.h:283
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
virtual double getY(std::size_t index) const
Definition: CoordinateSequence.h:245
const Coordinate & front() const
Return first Coordinate in the sequence.
Definition: CoordinateSequence.h:95
virtual double getX(std::size_t index) const
Definition: CoordinateSequence.h:233
Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...
Definition: CoordinateFilter.h:43
std::ostream & operator<<(std::ostream &os, const Coordinate &c)
Output function.
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
bool operator!=(const Coordinate &a, const Coordinate &b)
Inequality operator for Coordinate. 2D only.
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:58
const Coordinate & back() const
Return last Coordinate in the sequence.
Definition: CoordinateSequence.h:88
bool operator==(const Coordinate &a, const Coordinate &b)
Equality operator for Coordinate. 2D only.