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;
 
  496     virtual 
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) = 0;
 
  521     void removeParameter( const QString &name );
 
  633     QString parameterAsString( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  638     QString parameterAsExpression( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  643     double parameterAsDouble( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  648     int parameterAsInt( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  654     QList<
int> parameterAsInts( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  659     int parameterAsEnum( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  664     QList<
int> parameterAsEnums( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  670     QString parameterAsEnumString( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  676     QStringList parameterAsEnumStrings( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  681     bool parameterAsBool( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  687     bool parameterAsBoolean( const QVariantMap ¶meters, const QString &name, const 
QgsProcessingContext &context ) const;
 
  737     QString parameterAsCompatibleSourceLayerPath( const QVariantMap ¶meters, const QString &name,
 
  769     QString parameterAsCompatibleSourceLayerPathAndLayerName( const QVariantMap ¶meters, const QString &name,
 
  804     QString parameterAsOutputLayer( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  809     QString parameterAsFileOutput( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  895     QString parameterAsFile( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  901     QVariantList parameterAsMatrix( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  913     QStringList parameterAsFileList( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  918     QList<
double> parameterAsRange( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  923     QStringList parameterAsFields( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context ) const;
 
  950     QColor parameterAsColor( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context );
 
  957     QString parameterAsConnectionName( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context );
 
  964     QString parameterAsSchema( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context );
 
  971     QString parameterAsDatabaseTableName( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context );
 
  978     QDateTime parameterAsDateTime( const QVariantMap ¶meters, const QString &name, 
QgsProcessingContext &context );
 
 1018     static QString invalidSourceError( const QVariantMap ¶meters, const QString &name );
 
 1032     static QString invalidRasterError( const QVariantMap ¶meters, const QString &name );
 
 1046     static QString invalidSinkError( const QVariantMap ¶meters, const QString &name );
 
 1059     static QString writeFeatureError( 
QgsFeatureSink *sink, const QVariantMap ¶meters, const QString &name );
 
 1068     virtual 
bool supportInPlaceEdit( const 
QgsMapLayer *layer ) const;
 
 1075     bool mHasPrepared = false;
 
 1076     bool mHasExecuted = false;
 
 1077     bool mHasPostProcessed = false;
 
 1084     friend class TestQgsProcessing;
 
 1085     friend class QgsProcessingModelAlgorithm;
 
 1129     QgsProcessingAlgorithm::Flags flags() 
const override;
 
 1158     void initAlgorithm( 
const QVariantMap &configuration = QVariantMap() ) 
override;
 
 1167     virtual QString inputParameterName() 
const;
 
 1176     virtual QString inputParameterDescription() 
const;
 
 1190     virtual QList<int> inputLayerTypes() 
const;
 
 1208     virtual QgsFeatureSink::SinkFlags sinkFlags() 
const;
 
 1246     virtual void initParameters( 
const QVariantMap &configuration = QVariantMap() );
 
 1271     bool supportInPlaceEdit( 
const QgsMapLayer *layer ) 
const override;
 
 1281         const QVariantMap ¶meters,
 
 1283         const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties ) 
const override;
 
 1287     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.