18 #ifndef QGSPROCESSINGUTILS_H 
   19 #define QGSPROCESSINGUTILS_H 
   21 #include "qgis_core.h" 
   64     static QList< QgsRasterLayer * > compatibleRasterLayers( 
QgsProject *project, 
bool sort = 
true );
 
   81     static QList< QgsVectorLayer * > compatibleVectorLayers( 
QgsProject *project,
 
   82         const QList< int > &sourceTypes = QList< int >(),
 
   98     static QList<QgsMeshLayer *> compatibleMeshLayers( 
QgsProject *project, 
bool sort = 
true );
 
  109     static QList< QgsMapLayer * > compatibleLayers( 
QgsProject *project, 
bool sort = 
true );
 
  117     static QString encodeProviderKeyAndUri( 
const QString &providerKey, 
const QString &uri );
 
  130     static bool decodeProviderKeyAndUri( 
const QString &
string, QString &providerKey 
SIP_OUT, QString &uri 
SIP_OUT );
 
  185     static QString normalizeLayerSource( const QString &source );
 
  193     static QString variantToPythonLiteral( const QVariant &value );
 
  200     static QString stringToPythonLiteral( const QString &
string );
 
  225         const QVariantMap &createOptions = QVariantMap(),
 
  226         const QStringList &datasourceOptions = QStringList(),
 
  227         const QStringList &layerOptions = QStringList(),
 
  228         QgsFeatureSink::SinkFlags sinkFlags = QgsFeatureSink::SinkFlags(),
 
  275     static QVariant generateIteratingDestination( const QVariant &input, const QVariant &
id, 
QgsProcessingContext &context );
 
  281     static QString tempFolder();
 
  289     static QString generateTempFilename( const QString &basename );
 
  316     static QString convertToCompatibleFormat( const 
QgsVectorLayer *layer,
 
  317         bool selectedFeaturesOnly,
 
  318         const QString &baseName,
 
  319         const QStringList &compatibleFormats,
 
  320         const QString &preferredFormat,
 
  357     static QString convertToCompatibleFormatAndLayerName( const 
QgsVectorLayer *layer,
 
  358         bool selectedFeaturesOnly,
 
  359         const QString &baseName,
 
  360         const QStringList &compatibleFormats,
 
  361         const QString &preferredFormat,
 
  364         QString &layerName 
SIP_OUT, 
long long featureLimit = -1 );
 
  383     static QList<
int> fieldNamesToIndices( const QStringList &fieldNames, const 
QgsFields &fields );
 
  389     static 
QgsFields indicesToFields( const QList<
int> &indices, const 
QgsFields &fields );
 
  401     static QString defaultVectorExtension();
 
  413     static QString defaultRasterExtension();
 
  420                              const QList< 
int > &sourceTypes = QList< 
int >() );
 
  454     Q_DECL_DEPRECATED static 
QgsMapLayer *loadMapLayerFromString( const QString &
string, LayerHint typeHint = LayerHint::UnknownType ) 
SIP_DEPRECATED ;
 
  456     static 
void parseDestinationString( QString &destination, QString &providerKey, QString &uri, QString &layerName, QString &format, QMap<QString, QVariant> &options, 
bool &useWriter, QString &extension );
 
  458     friend class TestQgsProcessing;
 
  477       FlagSkipGeometryValidityChecks = 1 << 1, 
 
  479     Q_DECLARE_FLAGS( Flags, Flag )
 
  492                                 long long featureLimit = -1 );
 
  509     long long featureCount() 
const override;
 
  510     QString sourceName() 
const override;
 
  511     QSet<QVariant> uniqueValues( 
int fieldIndex, 
int limit = -1 ) 
const override;
 
  512     QVariant minimumValue( 
int fieldIndex ) 
const override;
 
  513     QVariant maximumValue( 
int fieldIndex ) 
const override;
 
  516     SpatialIndexPresence hasSpatialIndex() 
const override;
 
  533     bool mOwnsSource = false;
 
  535     std::function< 
void( const 
QgsFeature & ) > mInvalidGeometryCallback;
 
  536     std::function< 
void( const 
QgsFeature & ) > mTransformErrorCallback;
 
  538     std::function< 
void( const 
QgsFeature & ) > mInvalidGeometryCallbackSkip;
 
  539     std::function< 
void( const 
QgsFeature & ) > mInvalidGeometryCallbackAbort;
 
  541     long long mFeatureLimit = -1;
 
  574     bool addFeature( 
QgsFeature &feature, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) 
override;
 
  575     bool addFeatures( 
QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) 
override;
 
  576     bool addFeatures( 
QgsFeatureIterator &iterator, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) 
override;
 
  582     bool mOwnsSink = 
false;
 
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Wrapper for iterator of features from vector data provider or vector layer.
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.
An interface for objects which provide features via a getFeatures method.
FeatureAvailability
Possible return value for hasFeatures() to determine if a source is empty.
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 storage object for map layers, in which the layers are owned by the store and have their lifetime b...
Base class for all map layer types.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Custom exception class for processing related exceptions.
QgsProxyFeatureSink subclass which reports feature addition errors to a QgsProcessingContext.
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.
Abstract base class for processing providers.
Utility functions for use with processing classes.
LayerHint
Layer type hints.
@ UnknownType
Unknown layer type.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
A simple feature sink which proxies feature addition on to another feature sink.
Represents a raster layer.
A rectangle specified with double values.
Defines the parameters used to remap features when creating a QgsRemappingProxyFeatureSink.
Represents a vector layer which manages a vector based data sets.
Implements a map layer that is dedicated to rendering of vector tiles.
Type
The WKB type describes the number of dimensions a geometry has.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into allowing algorithms to be written in pure substantial changes are required in order to port existing x Processing algorithms for QGIS x The most significant changes are outlined not GeoAlgorithm For algorithms which operate on features one by consider subclassing the QgsProcessingFeatureBasedAlgorithm class This class allows much of the boilerplate code for looping over features from a vector layer to be bypassed and instead requires implementation of a processFeature method Ensure that your algorithm(or algorithm 's parent class) implements the new pure virtual createInstance(self) call
#define SIP_MONKEYPATCH_SCOPEENUM
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
const QgsCoordinateReferenceSystem & crs