17#include <geos/geom/GeometryCollection.h>
18#include <geos/geom/Surface.h>
22class GEOS_DLL MultiSurface :
public GeometryCollection {
23 friend class GeometryFactory;
27 ~MultiSurface()
override;
29 std::unique_ptr<MultiSurface> clone()
const
31 return std::unique_ptr<MultiSurface>(cloneImpl());
40 std::unique_ptr<Geometry> getBoundary()
const override;
43 int getBoundaryDimension()
const override;
46 Dimension::DimensionType getDimension()
const override;
48 std::string getGeometryType()
const override;
52 std::unique_ptr<MultiPolygon> getLinearized(
const algorithm::CurveToLineParams& params)
const {
53 return std::unique_ptr<MultiPolygon>(getLinearizedImpl(params));
56 bool hasCurvedTypes()
const override {
60 bool hasDimension(Dimension::DimensionType d)
const override
62 return d == Dimension::A;
65 bool isDimensionStrict(Dimension::DimensionType d)
const override
67 return d == Dimension::A;
70 std::unique_ptr<MultiSurface> reverse()
const
72 return std::unique_ptr<MultiSurface>(reverseImpl());
77 MultiSurface(std::vector<std::unique_ptr<Geometry>>&& newPolys,
78 const GeometryFactory& newFactory);
80 MultiSurface(std::vector<std::unique_ptr<Surface>>&& newPolys,
81 const GeometryFactory& newFactory);
83 MultiSurface(
const MultiSurface& mp)
84 : GeometryCollection(mp)
87 MultiSurface* cloneImpl()
const override
89 return new MultiSurface(*
this);
92 MultiSurface* getCurvedImpl(
const algorithm::LineToCurveParams&)
const override {
return cloneImpl(); }
94 MultiPolygon* getLinearizedImpl(
const algorithm::CurveToLineParams&)
const override;
97 getSortIndex()
const override
99 return SORTINDEX_MULTISURFACE;
102 MultiSurface* reverseImpl()
const override;
GeometryTypeId
Geometry types.
Definition Geometry.h:78
Basic namespace for all GEOS functionalities.
Definition geos.h:38