From 24458890ddfb4847d385ae33c19cdb4798669557 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 10 Jul 2024 10:23:14 +1000 Subject: [PATCH] Explode lines algorithm should not require valid geometries This check isn't required for this algorith, and can get in the way when using explode as a step prior for data cleaning --- src/analysis/processing/qgsalgorithmexplode.cpp | 5 +++++ src/analysis/processing/qgsalgorithmexplode.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/analysis/processing/qgsalgorithmexplode.cpp b/src/analysis/processing/qgsalgorithmexplode.cpp index cd48f5ab1cd8..4063448aca27 100644 --- a/src/analysis/processing/qgsalgorithmexplode.cpp +++ b/src/analysis/processing/qgsalgorithmexplode.cpp @@ -105,6 +105,11 @@ QgsFeatureList QgsExplodeAlgorithm::processFeature( const QgsFeature &f, QgsProc } } +Qgis::ProcessingFeatureSourceFlags QgsExplodeAlgorithm::sourceFlags() const +{ + return Qgis::ProcessingFeatureSourceFlag::SkipGeometryValidityChecks; +} + QgsFeatureSink::SinkFlags QgsExplodeAlgorithm::sinkFlags() const { return QgsFeatureSink::RegeneratePrimaryKey; diff --git a/src/analysis/processing/qgsalgorithmexplode.h b/src/analysis/processing/qgsalgorithmexplode.h index d696c414b613..19871592b72e 100644 --- a/src/analysis/processing/qgsalgorithmexplode.h +++ b/src/analysis/processing/qgsalgorithmexplode.h @@ -48,6 +48,7 @@ class QgsExplodeAlgorithm : public QgsProcessingFeatureBasedAlgorithm QString outputName() const override; Qgis::WkbType outputWkbType( Qgis::WkbType inputWkbType ) const override; QgsFeatureList processFeature( const QgsFeature &feature, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override; + Qgis::ProcessingFeatureSourceFlags sourceFlags() const override; QgsFeatureSink::SinkFlags sinkFlags() const override; std::vector< QgsGeometry > extractAsParts( const QgsGeometry &geometry ) const;