17#include <geos/geom/Geometry.h>
28class GEOS_DLL Curve :
public Geometry {
31 using Geometry::apply_ro;
32 using Geometry::apply_rw;
34 void apply_ro(GeometryComponentFilter* filter)
const override;
36 void apply_ro(GeometryFilter* filter)
const override;
38 void apply_rw(GeometryComponentFilter* filter)
override;
40 void apply_rw(GeometryFilter* filter)
override;
48 getBoundaryDimension()
const override
50 return isClosed() ? Dimension::False : 0;
54 Dimension::DimensionType getDimension()
const override
59 virtual const CoordinateXY& getEndCoordinate()
const = 0;
64 virtual std::unique_ptr<Point> getEndPoint()
const = 0;
69 virtual std::unique_ptr<Point> getPointN(std::size_t n)
const = 0;
71 virtual const CoordinateXY& getStartCoordinate()
const = 0;
76 virtual std::unique_ptr<Point> getStartPoint()
const = 0;
78 std::unique_ptr<LineString> getLinearized(
const algorithm::CurveToLineParams&)
const;
80 std::unique_ptr<Curve> getCurved(
const algorithm::LineToCurveParams&)
const;
83 virtual bool isClosed()
const = 0;
88 virtual std::size_t getNumCurves()
const = 0;
90 virtual const SimpleCurve* getCurveN(std::size_t)
const = 0;
92 std::unique_ptr<Curve> clone()
const;
94 std::unique_ptr<Curve> reverse()
const;
97 Curve(
const GeometryFactory& factory) : Geometry(&factory) {}
99 Curve* getCurvedImpl(
const algorithm::LineToCurveParams&)
const override = 0;
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:201
Definition LineString.h:66
Basic namespace for all GEOS functionalities.
Definition geos.h:38