17#include <geos/geom/SurfaceImpl.h>
18#include <geos/geom/Polygon.h>
23class GEOS_DLL CurvePolygon :
public SurfaceImpl<Curve> {
24 friend class GeometryFactory;
27 ~CurvePolygon()
override =
default;
29 double getArea()
const override;
31 std::unique_ptr<Geometry> getBoundary()
const override;
33 std::unique_ptr<CoordinateSequence> getCoordinates()
const override;
35 std::string getGeometryType()
const override;
39 std::unique_ptr<CurvePolygon> getCurved(
const algorithm::LineToCurveParams&) {
40 return std::unique_ptr<CurvePolygon>(cloneImpl());
43 std::unique_ptr<Polygon> getLinearized(
const algorithm::CurveToLineParams&)
const;
45 bool hasCurvedComponents()
const override;
47 void normalize()
override;
50 using SurfaceImpl::SurfaceImpl;
52 CurvePolygon* cloneImpl()
const override;
54 Polygon* getLinearizedImpl(
const algorithm::CurveToLineParams&)
const override;
56 CurvePolygon* getCurvedImpl(
const algorithm::LineToCurveParams&)
const override {
return cloneImpl(); }
59 getSortIndex()
const override
61 return SORTINDEX_CURVEPOLYGON;
64 Geometry* reverseImpl()
const override;
GeometryTypeId
Geometry types.
Definition Geometry.h:78
Basic namespace for all GEOS functionalities.
Definition geos.h:38