17#include <geos/geom/Curve.h>
18#include <geos/geom/GeometryCollection.h>
19#include <geos/geom/MultiLineString.h>
25 friend class GeometryFactory;
28 ~MultiCurve()
override =
default;
30 std::unique_ptr<MultiCurve> clone()
const
32 return std::unique_ptr<MultiCurve>(cloneImpl());
36 std::unique_ptr<Geometry> getBoundary()
const override;
43 int getBoundaryDimension()
const override;
46 Dimension::DimensionType getDimension()
const override;
48 const Curve* getGeometryN(std::size_t n)
const override;
50 std::string getGeometryType()
const override;
54 std::unique_ptr<MultiLineString> getLinearized(
const algorithm::CurveToLineParams& params)
const {
55 return std::unique_ptr<MultiLineString>(getLinearizedImpl(params));
58 bool hasDimension(Dimension::DimensionType d)
const override
60 return d == Dimension::L;
65 bool isClosed()
const;
67 bool isDimensionStrict(Dimension::DimensionType d)
const override
69 return d == Dimension::L;
81 std::unique_ptr<MultiCurve> reverse()
const
83 return std::unique_ptr<MultiCurve>(reverseImpl());
105 MultiCurve(std::vector<std::unique_ptr<Curve>>&& newLines,
106 const GeometryFactory& newFactory);
108 MultiCurve(std::vector<std::unique_ptr<Geometry>>&& newLines,
109 const GeometryFactory& newFactory);
111 MultiCurve(
const MultiCurve& mp)
112 : GeometryCollection(mp)
115 MultiCurve* cloneImpl()
const override
117 return new MultiCurve(*
this);
120 MultiCurve* reverseImpl()
const override;
122 MultiCurve* getCurvedImpl(
const algorithm::LineToCurveParams&)
const override {
return cloneImpl(); }
124 MultiLineString* getLinearizedImpl(
const algorithm::CurveToLineParams&)
const override;
127 getSortIndex()
const override
129 return SORTINDEX_MULTICURVE;
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