18 #ifndef QGSPROCESSINGALGORITHM_H
19 #define QGSPROCESSINGALGORITHM_H
21 #include "qgis_core.h"
34 class QgsProcessingModelAlgorithm;
55 if (
dynamic_cast< QgsProcessingModelAlgorithm *
>( sipCpp ) != NULL )
56 sipType = sipType_QgsProcessingModelAlgorithm;
58 sipType = sipType_QgsProcessingFeatureBasedAlgorithm;
60 sipType = sipType_QgsProcessingAlgorithm;
152 virtual QString shortDescription() const
SIP_HOLDGIL;
158 virtual QStringList tags() const
SIP_HOLDGIL {
return QStringList(); }
166 virtual QString shortHelpString() const
SIP_HOLDGIL;
225 virtual
bool canExecute( QString *errorMessage
SIP_OUT =
nullptr ) const;
234 virtual
bool checkParameterValues( const QVariantMap ¶meters,
244 virtual QVariantMap preprocessParameters( const QVariantMap ¶meters );
335 const QVariantMap ¶meters,
337 const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties )
const;
403 virtual QWidget *createCustomParametersWidget( QWidget *parent =
nullptr ) const
SIP_FACTORY;
420 virtual
bool validateInputCrs( const QVariantMap ¶meters,
430 virtual QString asPythonCommand( const QVariantMap ¶meters,
QgsProcessingContext &context ) const;
453 virtual QVariantMap asMap( const QVariantMap ¶meters,
QgsProcessingContext &context ) const;
487 virtual
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) = 0;
512 void removeParameter( const QString &name )
SIP_HOLDGIL;
624 QString parameterAsString( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
629 QString parameterAsExpression( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
634 double parameterAsDouble( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
639 int parameterAsInt( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
645 QList<
int> parameterAsInts( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
650 int parameterAsEnum( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
655 QList<
int> parameterAsEnums( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
661 QString parameterAsEnumString( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
667 QStringList parameterAsEnumStrings( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
672 bool parameterAsBool( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
678 bool parameterAsBoolean( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
728 QString parameterAsCompatibleSourceLayerPath( const QVariantMap ¶meters, const QString &name,
760 QString parameterAsCompatibleSourceLayerPathAndLayerName( const QVariantMap ¶meters, const QString &name,
795 QString parameterAsOutputLayer( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
800 QString parameterAsFileOutput( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
886 QString parameterAsFile( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
892 QVariantList parameterAsMatrix( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
905 QStringList parameterAsFileList( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
910 QList<
double> parameterAsRange( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
924 QStringList parameterAsStrings( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
951 QColor parameterAsColor( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
958 QString parameterAsConnectionName( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
965 QString parameterAsSchema( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
972 QString parameterAsDatabaseTableName( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
979 QDateTime parameterAsDateTime( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
1021 static QString invalidSourceError( const QVariantMap ¶meters, const QString &name );
1036 static QString invalidRasterError( const QVariantMap ¶meters, const QString &name );
1051 static QString invalidSinkError( const QVariantMap ¶meters, const QString &name );
1066 static QString invalidPointCloudError( const QVariantMap ¶meters, const QString &name );
1079 static QString writeFeatureError(
QgsFeatureSink *sink, const QVariantMap ¶meters, const QString &name );
1088 virtual
bool supportInPlaceEdit( const
QgsMapLayer *layer ) const;
1095 bool mHasPrepared = false;
1096 bool mHasExecuted = false;
1097 bool mHasPostProcessed = false;
1104 friend class TestQgsProcessing;
1105 friend class QgsProcessingModelAlgorithm;
1175 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
1184 virtual QString inputParameterName() const
SIP_HOLDGIL;
1193 virtual QString inputParameterDescription() const
SIP_HOLDGIL;
1207 virtual QList<
int> inputLayerTypes() const
SIP_HOLDGIL;
1213 virtual
Qgis::ProcessingSourceType outputLayerType() const
SIP_HOLDGIL;
1218 virtual
Qgis::ProcessingFeatureSourceFlags sourceFlags() const
SIP_HOLDGIL;
1263 virtual
void initParameters( const QVariantMap &configuration = QVariantMap() );
1288 bool supportInPlaceEdit( const
QgsMapLayer *layer ) const override;
1298 const QVariantMap ¶meters,
The Qgis class provides global constants for use throughout the application.
ProcessingPropertyAvailability
Property availability, used for QgsProcessingAlgorithm::VectorProperties in order to determine if pro...
@ NotAvailable
Properties are not available.
QFlags< ProcessingAlgorithmFlag > ProcessingAlgorithmFlags
Flags indicating how and when an algorithm operates and should be exposed to users.
WkbType
The WKB type describes the number of dimensions a geometry has.
Represents a map layer containing a set of georeferenced annotations, e.g.
This class represents a coordinate reference system (CRS).
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
This class wraps a request for features to a vector layer (or directly its vector data provider).
An interface for objects which accept features via addFeature(s) methods.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Container of fields for a vector layer.
A geometry is the spatial representation of a feature.
Base class for graphical items within a QgsLayout.
Base class for all map layer types.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Represents a map layer supporting display of point clouds.
A class to represent a 2D point.
Print layout, a QgsLayout subclass for static or atlas-based layouts.
Abstract base class for processing algorithms.
virtual QString groupId() const
Returns the unique ID of the group this algorithm belongs to.
QgsProcessingAlgorithm(const QgsProcessingAlgorithm &other)=delete
Algorithms cannot be copied - create() should be used instead.
QgsProcessingAlgorithm & operator=(const QgsProcessingAlgorithm &other)=delete
Algorithms cannot be copied- create() should be used instead.
QgsProcessingAlgorithm()=default
Constructor for QgsProcessingAlgorithm.
Contains information about the context in which a processing algorithm is executed.
Custom exception class for processing related exceptions.
An abstract QgsProcessingAlgorithm base class for processing algorithms which operate "feature-by-fea...
QgsProcessingFeatureBasedAlgorithm()=default
Constructor for QgsProcessingFeatureBasedAlgorithm.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
Base class for providing feedback from a processing algorithm.
Base class for the definition of processing outputs.
Base class for the definition of processing parameters.
Abstract base class for processing providers.
Contains enumerations and other constants for use in processing algorithms and parameters.
Represents a raster layer.
A rectangle specified with double values.
Represents a vector layer which manages a vector based data sets.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_VIRTUALERRORHANDLER(name)
#define SIP_THROW(name,...)
QList< QgsFeature > QgsFeatureList
QList< const QgsProcessingOutputDefinition * > QgsProcessingOutputDefinitions
List of processing parameters.
QList< const QgsProcessingParameterDefinition * > QgsProcessingParameterDefinitions
List of processing parameters.
const QgsCoordinateReferenceSystem & outputCrs
const QgsCoordinateReferenceSystem & crs
Properties of a vector source or sink used in an algorithm.
QgsCoordinateReferenceSystem crs
Coordinate Reference System.