From c9117fc58580ed43a9df5bd90c493cddd1ed5c88 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Tue, 26 Sep 2017 09:03:28 +1000 Subject: [PATCH] Fix clearing multicurve should reset dimensionality --- python/core/geometry/qgsmulticurve.sip | 9 ++------- src/core/geometry/qgsmulticurve.cpp | 6 ++++++ src/core/geometry/qgsmulticurve.h | 8 +------- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/python/core/geometry/qgsmulticurve.sip b/python/core/geometry/qgsmulticurve.sip index 04b4f5e15dd..99ee6067060 100644 --- a/python/core/geometry/qgsmulticurve.sip +++ b/python/core/geometry/qgsmulticurve.sip @@ -24,25 +24,20 @@ class QgsMultiCurve: QgsGeometryCollection virtual QgsMultiCurve *clone() const /Factory/; + virtual void clear(); + virtual QgsMultiCurve *toCurveType() const /Factory/; - virtual bool fromWkt( const QString &wkt ); - virtual QDomElement asGML2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const; virtual QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const; virtual QString asJSON( int precision = 17 ) const; - virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ ); -%Docstring -Adds a geometry and takes ownership. Returns true in case of success - :rtype: bool -%End QgsMultiCurve *reversed() const /Factory/; %Docstring diff --git a/src/core/geometry/qgsmulticurve.cpp b/src/core/geometry/qgsmulticurve.cpp index 36f7cd9592c..67d8650db04 100644 --- a/src/core/geometry/qgsmulticurve.cpp +++ b/src/core/geometry/qgsmulticurve.cpp @@ -38,6 +38,12 @@ QgsMultiCurve *QgsMultiCurve::clone() const return new QgsMultiCurve( *this ); } +void QgsMultiCurve::clear() +{ + QgsGeometryCollection::clear(); + mWkbType = QgsWkbTypes::MultiCurve; +} + QgsMultiCurve *QgsMultiCurve::toCurveType() const { return clone(); diff --git a/src/core/geometry/qgsmulticurve.h b/src/core/geometry/qgsmulticurve.h index be4adf99bfb..25f6746dd84 100644 --- a/src/core/geometry/qgsmulticurve.h +++ b/src/core/geometry/qgsmulticurve.h @@ -31,18 +31,12 @@ class CORE_EXPORT QgsMultiCurve: public QgsGeometryCollection QgsMultiCurve(); QString geometryType() const override; QgsMultiCurve *clone() const override SIP_FACTORY; + void clear() override; QgsMultiCurve *toCurveType() const override SIP_FACTORY; - bool fromWkt( const QString &wkt ) override; - - // inherited: int wkbSize() const; - // inherited: unsigned char* asWkb( int& binarySize ) const; - // inherited: QString asWkt( int precision = 17 ) const; QDomElement asGML2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override; QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override; QString asJSON( int precision = 17 ) const override; - - //! Adds a geometry and takes ownership. Returns true in case of success bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override; /** Returns a copy of the multi curve, where each component curve has had its line direction reversed.