QGIS API Documentation 3.41.0-Master (fda2aa46e9a)
Loading...
Searching...
No Matches
qgsnativealgorithms.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsnativealgorithms.cpp
3 ---------------------
4 begin : April 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#include "qgsnativealgorithms.h"
19#include "moc_qgsnativealgorithms.cpp"
20#include "qgsruntimeprofiler.h"
32#include "qgsalgorithmaspect.h"
40#include "qgsalgorithmbuffer.h"
46#include "qgsalgorithmclip.h"
66#include "qgsalgorithmdrape.h"
76#include "qgsalgorithmexplode.h"
96#include "qgsalgorithmfilter.h"
101#include "qgsalgorithmforcerhr.h"
105#if QT_CONFIG(process)
107#endif
108#include "qgsalgorithmgrid.h"
142#include "qgsalgorithmpackage.h"
186#include "qgsalgorithmrotate.h"
191#include "qgsalgorithmsavelog.h"
205#include "qgsalgorithmsimplify.h"
207#include "qgsalgorithmslope.h"
208#include "qgsalgorithmsmooth.h"
221#include "qgsalgorithmswapxy.h"
225#include "qgsalgorithmtransect.h"
229#include "qgsalgorithmunion.h"
238#include "qgsalgorithmxyztiles.h"
245#include "qgsstylealgorithms.h"
246
248
250 : QgsProcessingProvider( parent )
251{}
252
253QIcon QgsNativeAlgorithms::icon() const
254{
255 return QgsApplication::getThemeIcon( QStringLiteral( "/providerQgis.svg" ) );
256}
257
259{
260 return QgsApplication::iconPath( QStringLiteral( "providerQgis.svg" ) );
261}
262
263QString QgsNativeAlgorithms::id() const
264{
265 return QStringLiteral( "native" );
266}
267
268QString QgsNativeAlgorithms::helpId() const
269{
270 return QStringLiteral( "qgis" );
271}
272
273QString QgsNativeAlgorithms::name() const
274{
275 return tr( "QGIS (native c++)" );
276}
277
279{
280 return true;
281}
282
284{
286}
287
289{
290 const QgsScopedRuntimeProfile profile( QObject::tr( "QGIS native provider" ) );
291 addAlgorithm( new QgsAddIncrementalFieldAlgorithm() );
292 addAlgorithm( new QgsAddTableFieldAlgorithm() );
293 addAlgorithm( new QgsAddXYFieldsAlgorithm() );
294 addAlgorithm( new QgsAddUniqueValueIndexAlgorithm() );
295 addAlgorithm( new QgsAffineTransformationAlgorithm() );
296 addAlgorithm( new QgsAggregateAlgorithm() );
297 addAlgorithm( new QgsAlignRastersAlgorithm() );
298 addAlgorithm( new QgsAlignSingleRasterAlgorithm() );
299 addAlgorithm( new QgsAngleToNearestAlgorithm() );
300 addAlgorithm( new QgsApplyLayerStyleAlgorithm() );
301 addAlgorithm( new QgsArrayTranslatedFeaturesAlgorithm() );
302 addAlgorithm( new QgsAspectAlgorithm() );
303 addAlgorithm( new QgsAssignProjectionAlgorithm() );
304 addAlgorithm( new QgsAttributeIndexAlgorithm() );
305 addAlgorithm( new QgsB3DMToGltfAlgorithm() );
306 addAlgorithm( new QgsBasicStatisticsAlgorithm() );
307 addAlgorithm( new QgsBatchNominatimGeocodeAlgorithm() );
308 addAlgorithm( new QgsBookmarksToLayerAlgorithm() );
309 addAlgorithm( new QgsBoundaryAlgorithm() );
310 addAlgorithm( new QgsBoundingBoxAlgorithm() );
311 addAlgorithm( new QgsBufferAlgorithm() );
312 addAlgorithm( new QgsCalculateExpressionAlgorithm() );
313 addAlgorithm( new QgsCalculateVectorOverlapsAlgorithm() );
314 addAlgorithm( new QgsCategorizeUsingStyleAlgorithm() );
315 addAlgorithm( new QgsCellStatisticsAlgorithm() );
316 addAlgorithm( new QgsCellStatisticsPercentileAlgorithm() );
317 addAlgorithm( new QgsCellStatisticsPercentRankFromRasterAlgorithm() );
318 addAlgorithm( new QgsCellStatisticsPercentRankFromValueAlgorithm() );
319 addAlgorithm( new QgsCentroidAlgorithm() );
320 addAlgorithm( new QgsClipAlgorithm() );
321 addAlgorithm( new QgsCollectAlgorithm() );
322 addAlgorithm( new QgsCombineStylesAlgorithm() );
323 addAlgorithm( new QgsConcaveHullAlgorithm() );
324 addAlgorithm( new QgsConditionalBranchAlgorithm() );
325 addAlgorithm( new QgsConstantRasterAlgorithm() );
326 addAlgorithm( new QgsConvertToCurvesAlgorithm() );
327 addAlgorithm( new QgsConvexHullAlgorithm() );
328 addAlgorithm( new QgsCoverageSimplifyAlgorithm() );
329 addAlgorithm( new QgsCoverageUnionAlgorithm() );
330 addAlgorithm( new QgsCoverageValidateAlgorithm() );
331 addAlgorithm( new QgsCreateDirectoryAlgorithm() );
332 addAlgorithm( new QgsDbscanClusteringAlgorithm() );
333 addAlgorithm( new QgsDelaunayTriangulationAlgorithm() );
334 addAlgorithm( new QgsDeleteDuplicateGeometriesAlgorithm() );
335 addAlgorithm( new QgsDetectVectorChangesAlgorithm() );
336 addAlgorithm( new QgsDifferenceAlgorithm() );
337 addAlgorithm( new QgsDissolveAlgorithm() );
338 addAlgorithm( new QgsDownloadVectorTilesAlgorithm() );
339 addAlgorithm( new QgsDrapeToMAlgorithm() );
340 addAlgorithm( new QgsDrapeToZAlgorithm() );
341 addAlgorithm( new QgsDropTableFieldsAlgorithm() );
342 addAlgorithm( new QgsDropGeometryAlgorithm() );
343 addAlgorithm( new QgsDropMZValuesAlgorithm() );
344 addAlgorithm( new QgsDxfExportAlgorithm() );
345 addAlgorithm( new QgsExecutePostgisQueryAlgorithm() );
346 addAlgorithm( new QgsExecuteRegisteredSpatialiteQueryAlgorithm() );
347 addAlgorithm( new QgsExecuteSpatialiteQueryAlgorithm() );
348 addAlgorithm( new QgsExplodeAlgorithm() );
349 addAlgorithm( new QgsExplodeHstoreAlgorithm() );
350 addAlgorithm( new QgsExportLayersInformationAlgorithm() );
351 addAlgorithm( new QgsExportMeshVerticesAlgorithm );
352 addAlgorithm( new QgsExportMeshFacesAlgorithm );
353 addAlgorithm( new QgsExportMeshEdgesAlgorithm );
354 addAlgorithm( new QgsExportMeshOnGridAlgorithm );
355 addAlgorithm( new QgsExportToPostgresqlAlgorithm );
356 addAlgorithm( new QgsExportToSpreadsheetAlgorithm() );
357 addAlgorithm( new QgsExtendLinesAlgorithm() );
358 addAlgorithm( new QgsExtentFromLayerAlgorithm() );
359 addAlgorithm( new QgsExtentToLayerAlgorithm() );
360 addAlgorithm( new QgsExtractBinaryFieldAlgorithm() );
361 addAlgorithm( new QgsExtractByAttributeAlgorithm() );
362 addAlgorithm( new QgsExtractByExpressionAlgorithm() );
363 addAlgorithm( new QgsExtractByExtentAlgorithm() );
364 addAlgorithm( new QgsExtractByLocationAlgorithm() );
365 addAlgorithm( new QgsExtractLabelsAlgorithm() );
366 addAlgorithm( new QgsExtractMValuesAlgorithm() );
367 addAlgorithm( new QgsExtractVerticesAlgorithm() );
368 addAlgorithm( new QgsExtractSpecificVerticesAlgorithm() );
369 addAlgorithm( new QgsExtractWithinDistanceAlgorithm() );
370 addAlgorithm( new QgsExtractZValuesAlgorithm() );
371 addAlgorithm( new QgsFieldCalculatorAlgorithm() );
372 addAlgorithm( new QgsFileDownloaderAlgorithm() );
373 addAlgorithm( new QgsFillNoDataAlgorithm() );
374 addAlgorithm( new QgsFilterAlgorithm() );
375 addAlgorithm( new QgsFilterByGeometryAlgorithm() );
376 addAlgorithm( new QgsFilterByLayerTypeAlgorithm() );
377 addAlgorithm( new QgsFilterVerticesByM() );
378 addAlgorithm( new QgsFilterVerticesByZ() );
379 addAlgorithm( new QgsFixGeometriesAlgorithm() );
380 addAlgorithm( new QgsFlattenRelationshipsAlgorithm() );
381 addAlgorithm( new QgsForceRHRAlgorithm() );
382 addAlgorithm( new QgsFuzzifyRasterLinearMembershipAlgorithm() );
383 addAlgorithm( new QgsFuzzifyRasterPowerMembershipAlgorithm() );
384 addAlgorithm( new QgsFuzzifyRasterLargeMembershipAlgorithm() );
385 addAlgorithm( new QgsFuzzifyRasterSmallMembershipAlgorithm() );
386 addAlgorithm( new QgsFuzzifyRasterGaussianMembershipAlgorithm() );
387 addAlgorithm( new QgsFuzzifyRasterNearMembershipAlgorithm() );
388 addAlgorithm( new QgsGeometryByExpressionAlgorithm() );
389 addAlgorithm( new QgsGltfToVectorFeaturesAlgorithm() );
390#if QT_CONFIG(process)
391 addAlgorithm( new QgsConvertGpxFeatureTypeAlgorithm() );
392 addAlgorithm( new QgsConvertGpsDataAlgorithm() );
393 addAlgorithm( new QgsDownloadGpsDataAlgorithm() );
394 addAlgorithm( new QgsUploadGpsDataAlgorithm() );
395#endif
396 addAlgorithm( new QgsGridAlgorithm() );
397 addAlgorithm( new QgsHillshadeAlgorithm() );
398 addAlgorithm( new QgsImportPhotosAlgorithm() );
399 addAlgorithm( new QgsInterpolatePointAlgorithm() );
400 addAlgorithm( new QgsIntersectionAlgorithm() );
401 addAlgorithm( new QgsJoinByAttributeAlgorithm() );
402 addAlgorithm( new QgsJoinByLocationAlgorithm() );
403 addAlgorithm( new QgsJoinByLocationSummaryAlgorithm() );
404 addAlgorithm( new QgsJoinByNearestAlgorithm() );
405 addAlgorithm( new QgsJoinWithLinesAlgorithm() );
406 addAlgorithm( new QgsKeepNBiggestPartsAlgorithm() );
407 addAlgorithm( new QgsKMeansClusteringAlgorithm() );
408 addAlgorithm( new QgsLayerToBookmarksAlgorithm() );
409 addAlgorithm( new QgsLayoutMapExtentToLayerAlgorithm() );
410 addAlgorithm( new QgsLayoutAtlasToImageAlgorithm() );
411 addAlgorithm( new QgsLayoutAtlasToPdfAlgorithm() );
412 addAlgorithm( new QgsLayoutAtlasToMultiplePdfAlgorithm() );
413 addAlgorithm( new QgsLayoutToImageAlgorithm() );
414 addAlgorithm( new QgsLayoutToPdfAlgorithm() );
415 addAlgorithm( new QgsLineDensityAlgorithm() );
416 addAlgorithm( new QgsLineIntersectionAlgorithm() );
417 addAlgorithm( new QgsLineSubstringAlgorithm() );
418 addAlgorithm( new QgsLoadLayerAlgorithm() );
419 addAlgorithm( new QgsMeanCoordinatesAlgorithm() );
420 addAlgorithm( new QgsMergeLinesAlgorithm() );
421 addAlgorithm( new QgsMergeVectorAlgorithm() );
422 addAlgorithm( new QgsMeshRasterizeAlgorithm );
423 addAlgorithm( new QgsMeshContoursAlgorithm );
424 addAlgorithm( new QgsMeshExportCrossSection );
425 addAlgorithm( new QgsMeshExportTimeSeries );
426 addAlgorithm( new QgsMinimumEnclosingCircleAlgorithm() );
427 addAlgorithm( new QgsMultiDifferenceAlgorithm() );
428 addAlgorithm( new QgsMultiIntersectionAlgorithm() );
429 addAlgorithm( new QgsMultipartToSinglepartAlgorithm() );
430 addAlgorithm( new QgsMultiRingConstantBufferAlgorithm() );
431 addAlgorithm( new QgsMultiUnionAlgorithm() );
432 addAlgorithm( new QgsNearestNeighbourAnalysisAlgorithm() );
433 addAlgorithm( new QgsOffsetLinesAlgorithm() );
434 addAlgorithm( new QgsOrderByExpressionAlgorithm() );
435 addAlgorithm( new QgsOrientedMinimumBoundingBoxAlgorithm() );
436 addAlgorithm( new QgsOrthogonalizeAlgorithm() );
437 addAlgorithm( new QgsPackageAlgorithm() );
438 addAlgorithm( new QgsPixelCentroidsFromPolygonsAlgorithm() );
439 addAlgorithm( new QgsCreateArrayOffsetLinesAlgorithm() );
440 addAlgorithm( new QgsPointsInPolygonAlgorithm() );
441 addAlgorithm( new QgsPointOnSurfaceAlgorithm() );
442 addAlgorithm( new QgsPointToLayerAlgorithm() );
443 addAlgorithm( new QgsPointsAlongGeometryAlgorithm() );
444 addAlgorithm( new QgsPointsLayerFromTableAlgorithm() );
445 addAlgorithm( new QgsPointsToPathsAlgorithm() );
446 addAlgorithm( new QgsPoleOfInaccessibilityAlgorithm() );
447 addAlgorithm( new QgsPolygonizeAlgorithm() );
448 addAlgorithm( new QgsProjectPointCartesianAlgorithm() );
449 addAlgorithm( new QgsPromoteToMultipartAlgorithm() );
450 addAlgorithm( new QgsRaiseExceptionAlgorithm() );
451 addAlgorithm( new QgsRaiseWarningAlgorithm() );
452 addAlgorithm( new QgsRaiseMessageAlgorithm() );
453 addAlgorithm( new QgsRandomBinomialRasterAlgorithm() );
454 addAlgorithm( new QgsRandomExponentialRasterAlgorithm() );
455 addAlgorithm( new QgsRandomExtractAlgorithm() );
456 addAlgorithm( new QgsRandomGammaRasterAlgorithm() );
457 addAlgorithm( new QgsRandomGeometricRasterAlgorithm() );
458 addAlgorithm( new QgsRandomNegativeBinomialRasterAlgorithm() );
459 addAlgorithm( new QgsRandomNormalRasterAlgorithm() );
460 addAlgorithm( new QgsRandomPointsExtentAlgorithm() );
461 addAlgorithm( new QgsRandomPointsInPolygonsAlgorithm() );
462 addAlgorithm( new QgsRandomPointsOnLinesAlgorithm() );
463 addAlgorithm( new QgsRandomPoissonRasterAlgorithm() );
464 addAlgorithm( new QgsRandomUniformRasterAlgorithm() );
465 addAlgorithm( new QgsRasterCalculatorAlgorithm() );
466 addAlgorithm( new QgsRasterCalculatorModelerAlgorithm() );
467 addAlgorithm( new QgsRasterDtmSlopeBasedFilterAlgorithm() );
468 addAlgorithm( new QgsRasterFrequencyByEqualOperatorAlgorithm() );
469 addAlgorithm( new QgsRasterFrequencyByGreaterThanOperatorAlgorithm() );
470 addAlgorithm( new QgsRasterFrequencyByLessThanOperatorAlgorithm() );
471 addAlgorithm( new QgsRasterLayerPropertiesAlgorithm() );
472 addAlgorithm( new QgsRasterLayerUniqueValuesReportAlgorithm() );
473 addAlgorithm( new QgsRasterLayerZonalStatsAlgorithm() );
474 addAlgorithm( new QgsRasterLogicalAndAlgorithm() );
475 addAlgorithm( new QgsRasterLogicalOrAlgorithm() );
476 addAlgorithm( new QgsRasterMinMaxAlgorithm() );
477 addAlgorithm( new QgsRasterizeAlgorithm() );
478 addAlgorithm( new QgsRasterPixelsToPointsAlgorithm() );
479 addAlgorithm( new QgsRasterPixelsToPolygonsAlgorithm() );
480 addAlgorithm( new QgsRasterSamplingAlgorithm() );
481 addAlgorithm( new QgsRasterStackHighestPositionAlgorithm() );
482 addAlgorithm( new QgsRasterStackLowestPositionAlgorithm() );
483 addAlgorithm( new QgsRasterStatisticsAlgorithm() );
484 addAlgorithm( new QgsRasterSurfaceVolumeAlgorithm() );
485 addAlgorithm( new QgsAlgorithmRemoveDuplicateVertices() );
486 addAlgorithm( new QgsReclassifyByLayerAlgorithm() );
487 addAlgorithm( new QgsReclassifyByTableAlgorithm() );
488 addAlgorithm( new QgsRectanglesOvalsDiamondsAlgorithm() );
489 addAlgorithm( new QgsRefactorFieldsAlgorithm() );
490 addAlgorithm( new QgsRemoveDuplicatesByAttributeAlgorithm() );
491 addAlgorithm( new QgsRemoveHolesAlgorithm() );
492 addAlgorithm( new QgsRemoveNullGeometryAlgorithm() );
493 addAlgorithm( new QgsRenameLayerAlgorithm() );
494 addAlgorithm( new QgsRenameTableFieldAlgorithm() );
495 addAlgorithm( new QgsRepairShapefileAlgorithm() );
496 addAlgorithm( new QgsRescaleRasterAlgorithm() );
497 addAlgorithm( new QgsRetainTableFieldsAlgorithm() );
498 addAlgorithm( new QgsReverseLineDirectionAlgorithm() );
499 addAlgorithm( new QgsRotateFeaturesAlgorithm() );
500 addAlgorithm( new QgsRoundnessAlgorithm() );
501 addAlgorithm( new QgsRoundRasterValuesAlgorithm() );
502 addAlgorithm( new QgsRuggednessAlgorithm() );
503 addAlgorithm( new QgsSaveFeaturesAlgorithm() );
504 addAlgorithm( new QgsSaveLogToFileAlgorithm() );
505 addAlgorithm( new QgsSaveSelectedFeatures() );
506 addAlgorithm( new QgsSegmentizeByMaximumAngleAlgorithm() );
507 addAlgorithm( new QgsSegmentizeByMaximumDistanceAlgorithm() );
508 addAlgorithm( new QgsSelectByLocationAlgorithm() );
509 addAlgorithm( new QgsSelectWithinDistanceAlgorithm() );
510 addAlgorithm( new QgsServiceAreaFromLayerAlgorithm() );
511 addAlgorithm( new QgsServiceAreaFromPointAlgorithm() );
512 addAlgorithm( new QgsSetLayerEncodingAlgorithm() );
513 addAlgorithm( new QgsSetMValueAlgorithm() );
514 addAlgorithm( new QgsSetProjectVariableAlgorithm() );
515 addAlgorithm( new QgsSetZValueAlgorithm() );
516 addAlgorithm( new QgsShapefileEncodingInfoAlgorithm() );
517 addAlgorithm( new QgsShortestLineAlgorithm() );
518 addAlgorithm( new QgsShortestPathLayerToPointAlgorithm() );
519 addAlgorithm( new QgsShortestPathPointToLayerAlgorithm() );
520 addAlgorithm( new QgsShortestPathPointToPointAlgorithm() );
521 addAlgorithm( new QgsSimplifyAlgorithm() );
522 addAlgorithm( new QgsSingleSidedBufferAlgorithm() );
523 addAlgorithm( new QgsSlopeAlgorithm() );
524 addAlgorithm( new QgsSmoothAlgorithm() );
525 addAlgorithm( new QgsSnapGeometriesAlgorithm() );
526 addAlgorithm( new QgsSnapToGridAlgorithm() );
527 addAlgorithm( new QgsSpatialIndexAlgorithm() );
528 addAlgorithm( new QgsSplitFeaturesByAttributeCharacterAlgorithm() );
529 addAlgorithm( new QgsSplitGeometryAtAntimeridianAlgorithm() );
530 addAlgorithm( new QgsSplitLinesByLengthAlgorithm() );
531 addAlgorithm( new QgsSplitVectorLayerAlgorithm() );
532 addAlgorithm( new QgsSplitWithLinesAlgorithm() );
533 addAlgorithm( new QgsStDbscanClusteringAlgorithm() );
534 addAlgorithm( new QgsStringConcatenationAlgorithm() );
535 addAlgorithm( new QgsStyleFromProjectAlgorithm() );
536 addAlgorithm( new QgsSubdivideAlgorithm() );
537 addAlgorithm( new QgsSumLineLengthAlgorithm() );
538 addAlgorithm( new QgsSwapXYAlgorithm() );
539 addAlgorithm( new QgsSymmetricalDifferenceAlgorithm() );
540 addAlgorithm( new QgsTaperedBufferAlgorithm() );
541 addAlgorithm( new QgsTinMeshCreationAlgorithm() );
542 addAlgorithm( new QgsTransectAlgorithm() );
543 addAlgorithm( new QgsTransferAnnotationsFromMainAlgorithm() );
544 addAlgorithm( new QgsTransformAlgorithm() );
545 addAlgorithm( new QgsTranslateAlgorithm() );
546 addAlgorithm( new QgsTruncateTableAlgorithm() );
547 addAlgorithm( new QgsUnionAlgorithm() );
548 addAlgorithm( new QgsOpenUrlAlgorithm() );
549 addAlgorithm( new QgsHttpRequestAlgorithm() );
550 addAlgorithm( new QgsVariableWidthBufferByMAlgorithm() );
551 addAlgorithm( new QgsVirtualRasterCalculatorAlgorithm() );
552 addAlgorithm( new QgsVirtualRasterCalculatorModelerAlgorithm() );
553 addAlgorithm( new QgsVoronoiPolygonsAlgorithm() );
554 addAlgorithm( new QgsWedgeBuffersAlgorithm() );
555 addAlgorithm( new QgsWriteVectorTilesXyzAlgorithm() );
556 addAlgorithm( new QgsWriteVectorTilesMbtilesAlgorithm() );
557 addAlgorithm( new QgsXyzTilesDirectoryAlgorithm() );
558 addAlgorithm( new QgsXyzTilesMbtilesAlgorithm() );
559 addAlgorithm( new QgsZonalHistogramAlgorithm() );
560 addAlgorithm( new QgsZonalStatisticsAlgorithm() );
561 addAlgorithm( new QgsZonalStatisticsFeatureBasedAlgorithm() );
562 addAlgorithm( new QgsPolygonsToLinesAlgorithm() );
563 addAlgorithm( new QgsDensifyGeometriesByIntervalAlgorithm() );
564 addAlgorithm( new QgsDensifyGeometriesByCountAlgorithm() );
565}
566
@ CompatibleWithVirtualRaster
The processing provider's algorithms can work with QGIS virtualraster data provider.
QFlags< ProcessingProviderFlag > ProcessingProviderFlags
Flags indicating how and when an processing provider operates and should be exposed to users.
Definition qgis.h:3301
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
static QString iconPath(const QString &iconFile)
Returns path to the desired icon file.
void loadAlgorithms() override
Loads all algorithms belonging to this provider.
QString helpId() const override
Returns the provider help id string, used for creating QgsHelp urls for algorithms belong to this pro...
QString id() const override
Returns the unique provider id, used for identifying the provider.
bool supportsNonFileBasedOutput() const override
Returns true if the provider supports non-file based outputs (such as memory layers or direct databas...
QString svgIconPath() const override
Returns a path to an SVG version of the provider's icon.
QString name() const override
Returns the provider name, which is used to describe the provider within the GUI.
QIcon icon() const override
Returns an icon for the provider.
QgsNativeAlgorithms(QObject *parent=nullptr)
Constructor for QgsNativeAlgorithms.
Qgis::ProcessingProviderFlags flags() const override
Returns the flags indicating how and when the provider operates and should be exposed to users.
Abstract base class for processing providers.
bool addAlgorithm(QgsProcessingAlgorithm *algorithm)
Adds an algorithm to the provider.
Scoped object for logging of the runtime for a single operation or group of operations.