17#include <geos/geom/Curve.h>
18#include <geos/geom/GeometryCollection.h>
23class GEOS_DLL MultiCurve :
public GeometryCollection {
24 friend class GeometryFactory;
27 ~MultiCurve()
override =
default;
29 std::unique_ptr<MultiCurve> clone()
const
31 return std::unique_ptr<MultiCurve>(cloneImpl());
35 std::unique_ptr<Geometry> getBoundary()
const override;
42 int getBoundaryDimension()
const override;
45 Dimension::DimensionType getDimension()
const override;
47 const Curve* getGeometryN(std::size_t n)
const override;
49 std::string getGeometryType()
const override;
53 bool hasDimension(Dimension::DimensionType d)
const override
55 return d == Dimension::L;
60 bool isClosed()
const;
62 bool isDimensionStrict(Dimension::DimensionType d)
const override
64 return d == Dimension::L;
76 std::unique_ptr<MultiCurve> reverse()
const
78 return std::unique_ptr<MultiCurve>(reverseImpl());
100 MultiCurve(std::vector<std::unique_ptr<Curve>>&& newLines,
101 const GeometryFactory& newFactory);
103 MultiCurve(std::vector<std::unique_ptr<Geometry>>&& newLines,
104 const GeometryFactory& newFactory);
106 MultiCurve(
const MultiCurve& mp)
107 : GeometryCollection(mp)
110 MultiCurve* cloneImpl()
const override
112 return new MultiCurve(*
this);
115 MultiCurve* reverseImpl()
const override;
118 getSortIndex()
const override
120 return SORTINDEX_MULTICURVE;
GeometryTypeId
Geometry types.
Definition Geometry.h:74
Basic namespace for all GEOS functionalities.
Definition geos.h:39