17#include <geos/geom/GeometryCollection.h>
18#include <geos/geom/Surface.h>
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 hasDimension(Dimension::DimensionType d)
const override
58 return d == Dimension::A;
61 bool isDimensionStrict(Dimension::DimensionType d)
const override
63 return d == Dimension::A;
66 std::unique_ptr<MultiSurface> reverse()
const
68 return std::unique_ptr<MultiSurface>(reverseImpl());
73 MultiSurface(std::vector<std::unique_ptr<Geometry>>&& newPolys,
74 const GeometryFactory& newFactory);
76 MultiSurface(std::vector<std::unique_ptr<Surface>>&& newPolys,
77 const GeometryFactory& newFactory);
79 MultiSurface(
const MultiSurface& mp)
80 : GeometryCollection(mp)
83 MultiSurface* cloneImpl()
const override
85 return new MultiSurface(*
this);
88 MultiSurface* getCurvedImpl(
const algorithm::LineToCurveParams&)
const override {
return cloneImpl(); }
90 MultiPolygon* getLinearizedImpl(
const algorithm::CurveToLineParams&)
const override;
93 getSortIndex()
const override
95 return SORTINDEX_MULTISURFACE;
98 MultiSurface* reverseImpl()
const override;
Represents a collection of heterogeneous Geometry objects.
Definition GeometryCollection.h:51
GeometryTypeId
Geometry types.
Definition Geometry.h:78
Basic namespace for all GEOS functionalities.
Definition geos.h:38