18 #ifndef QGSPROCESSINGALGORITHM_H
19 #define QGSPROCESSINGALGORITHM_H
21 #include "qgis_core.h"
35 class QgsProcessingModelAlgorithm;
57 if (
dynamic_cast< QgsProcessingModelAlgorithm *
>( sipCpp ) != NULL )
58 sipType = sipType_QgsProcessingModelAlgorithm;
60 sipType = sipType_QgsProcessingFeatureBasedAlgorithm;
62 sipType = sipType_QgsProcessingAlgorithm;
71 FlagHideFromToolbox = 1 << 1,
72 FlagHideFromModeler = 1 << 2,
73 FlagSupportsBatch = 1 << 3,
74 FlagCanCancel = 1 << 4,
75 FlagRequiresMatchingCrs = 1 << 5,
76 FlagNoThreading = 1 << 6,
77 FlagDisplayNameIsLiteral = 1 << 7,
78 FlagSupportsInPlaceEdits = 1 << 8,
79 FlagKnownIssues = 1 << 9,
80 FlagCustomException = 1 << 10,
81 FlagPruneModelBranchesBasedOnAlgorithmResults = 1 << 11,
82 FlagSkipGenericModelLogging = 1 << 12,
83 FlagNotAvailableInStandaloneTool = 1 << 13,
84 FlagRequiresProject = 1 << 14,
85 FlagDeprecated = FlagHideFromToolbox | FlagHideFromModeler,
87 Q_DECLARE_FLAGS( Flags, Flag )
148 virtual QString name() const = 0;
168 virtual QString displayName() const = 0;
175 virtual QString shortDescription() const;
181 virtual QStringList tags()
const {
return QStringList(); }
189 virtual QString shortHelpString()
const;
198 Q_DECL_DEPRECATED
virtual QString helpString() const
SIP_DEPRECATED;
205 virtual QString helpUrl() const;
211 virtual QIcon icon() const;
217 virtual QString svgIconPath() const;
225 virtual QString group()
const {
return QString(); }
234 virtual QString
groupId()
const {
return QString(); }
240 virtual Flags flags()
const;
248 virtual bool canExecute( QString *errorMessage
SIP_OUT =
nullptr )
const;
257 virtual bool checkParameterValues(
const QVariantMap ¶meters,
267 virtual QVariantMap preprocessParameters(
const QVariantMap ¶meters );
293 int countVisibleParameters()
const;
319 bool hasHtmlOutputs()
const;
367 const QVariantMap ¶meters,
369 const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties )
const;
435 virtual QWidget *createCustomParametersWidget( QWidget *parent =
nullptr ) const
SIP_FACTORY;
452 virtual
bool validateInputCrs( const QVariantMap ¶meters,
462 virtual QString asPythonCommand( const QVariantMap ¶meters,
QgsProcessingContext &context ) const;
485 virtual QVariantMap asMap( const QVariantMap ¶meters,
QgsProcessingContext &context ) const;
519 virtual
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) = 0;
544 void removeParameter( const QString &name );
656 QString parameterAsString( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
661 QString parameterAsExpression( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
666 double parameterAsDouble( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
671 int parameterAsInt( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
677 QList<
int> parameterAsInts( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
682 int parameterAsEnum( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
687 QList<
int> parameterAsEnums( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
693 QString parameterAsEnumString( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
699 QStringList parameterAsEnumStrings( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
704 bool parameterAsBool( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
710 bool parameterAsBoolean( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
760 QString parameterAsCompatibleSourceLayerPath( const QVariantMap ¶meters, const QString &name,
792 QString parameterAsCompatibleSourceLayerPathAndLayerName( const QVariantMap ¶meters, const QString &name,
827 QString parameterAsOutputLayer( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
832 QString parameterAsFileOutput( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
918 QString parameterAsFile( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
924 QVariantList parameterAsMatrix( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
936 QStringList parameterAsFileList( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
941 QList<
double> parameterAsRange( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
946 QStringList parameterAsFields( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
973 QColor parameterAsColor( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
980 QString parameterAsConnectionName( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
987 QString parameterAsSchema( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
994 QString parameterAsDatabaseTableName( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
1001 QDateTime parameterAsDateTime( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
1041 static QString invalidSourceError( const QVariantMap ¶meters, const QString &name );
1055 static QString invalidRasterError( const QVariantMap ¶meters, const QString &name );
1069 static QString invalidSinkError( const QVariantMap ¶meters, const QString &name );
1082 static QString writeFeatureError(
QgsFeatureSink *sink, const QVariantMap ¶meters, const QString &name );
1091 virtual
bool supportInPlaceEdit( const
QgsMapLayer *layer ) const;
1098 bool mHasPrepared = false;
1099 bool mHasExecuted = false;
1100 bool mHasPostProcessed = false;
1107 friend class TestQgsProcessing;
1108 friend class QgsProcessingModelAlgorithm;
1152 QgsProcessingAlgorithm::Flags flags()
const override;
1181 void initAlgorithm(
const QVariantMap &configuration = QVariantMap() )
override;
1190 virtual QString inputParameterName()
const;
1199 virtual QString inputParameterDescription()
const;
1213 virtual QList<int> inputLayerTypes()
const;
1231 virtual QgsFeatureSink::SinkFlags sinkFlags()
const;
1269 virtual void initParameters(
const QVariantMap &configuration = QVariantMap() );
1294 bool supportInPlaceEdit(
const QgsMapLayer *layer )
const override;
1304 const QVariantMap ¶meters,
1306 const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties )
const override;
1310 std::unique_ptr< QgsProcessingFeatureSource > mSource;
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.
QgsProcessingOutputDefinitions outputDefinitions() const
Returns an ordered list of output definitions utilized by the algorithm.
PropertyAvailability
Property availability, used for QgsProcessingAlgorithm::VectorProperties in order to determine if pro...
@ NotAvailable
Properties are not available.
@ Available
Properties are available.
virtual QString groupId() const
Returns the unique ID of the group this algorithm belongs to.
QgsProcessingParameterDefinitions parameterDefinitions() const
Returns an ordered list of parameter definitions utilized by the algorithm.
Flag
Flags indicating how and when an algorithm operates and should be exposed to users.
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.
virtual QString outputName() const =0
Returns the translated, user visible name for any layers created by this algorithm.
virtual QgsFeatureList processFeature(const QgsFeature &feature, QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)=0
Processes an individual input feature from the source.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
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.
SourceType
Data source types enum.
Represents a raster layer.
A rectangle specified with double values.
Represents a vector layer which manages a vector based data sets.
Handles storage of information regarding WKB types and their properties.
Type
The WKB type describes the number of dimensions a geometry has.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_VIRTUALERRORHANDLER(name)
QList< QgsFeature > QgsFeatureList
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
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.