20#include <geos/geom/Curve.h>
21#include <geos/geom/Geometry.h>
26class GEOS_DLL SimpleCurve :
public Curve {
29 using Curve::apply_ro;
30 using Curve::apply_rw;
32 void apply_ro(CoordinateFilter* filter)
const override;
34 void apply_ro(CoordinateSequenceFilter& filter)
const override;
36 void apply_rw(CoordinateSequenceFilter& filter)
override;
38 void apply_rw(
const CoordinateFilter* filter)
override;
40 bool equalsExact(
const Geometry* other,
double tolerance = 0)
43 bool equalsIdentical(
const Geometry* other)
const override;
50 std::unique_ptr<Geometry> getBoundary()
const override;
52 const CoordinateXY* getCoordinate()
const override;
55 uint8_t getCoordinateDimension()
const override;
57 virtual const Coordinate& getCoordinateN(std::size_t n)
const;
59 std::unique_ptr<CoordinateSequence> getCoordinates()
const override;
62 const CoordinateSequence* getCoordinatesRO()
const;
65 const std::shared_ptr<const CoordinateSequence>& getSharedCoordinates()
const;
67 const SimpleCurve* getCurveN(std::size_t)
const override;
69 const CoordinateXY& getEndCoordinate()
const override;
75 std::unique_ptr<Point> getEndPoint()
const override;
77 const Envelope* getEnvelopeInternal()
const override
82 std::size_t getNumCurves()
const override;
84 std::size_t getNumPoints()
const override;
86 std::unique_ptr<Point> getPointN(std::size_t n)
const override;
88 const CoordinateXY& getStartCoordinate()
const override;
94 std::unique_ptr<Point> getStartPoint()
const override;
96 bool hasM()
const override;
98 bool hasZ()
const override;
100 bool isClosed()
const override;
102 virtual bool isCoordinate(CoordinateXY& pt)
const;
104 virtual bool isCurved()
const = 0;
106 bool isEmpty()
const override;
108 std::unique_ptr<SimpleCurve> clone()
const;
110 std::unique_ptr<SimpleCurve> reverse()
const;
114 SimpleCurve(
const SimpleCurve& other);
116 SimpleCurve(
const std::shared_ptr<const CoordinateSequence>& newCoords,
118 const GeometryFactory& factory);
120 SimpleCurve(std::unique_ptr<CoordinateSequence>&& newCoords,
122 const GeometryFactory& factory);
124 int compareToSameClass(
const Geometry* ls)
const override;
126 Envelope computeEnvelopeInternal(
bool isLinear)
const;
128 std::shared_ptr<const CoordinateSequence> points;
129 mutable Envelope envelope;
Basic namespace for all GEOS functionalities.
Definition geos.h:38