Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsprocessing.h 3 : : --------------- 4 : : begin : July 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 : : #ifndef QGSPROCESSING_H 19 : : #define QGSPROCESSING_H 20 : : 21 : : #include "qgis_core.h" 22 : : #include <QString> 23 : : 24 : : // 25 : : // Output definitions 26 : : // 27 : : 28 : : /** 29 : : * \class QgsProcessing 30 : : * \ingroup core 31 : : * 32 : : * \brief Contains enumerations and other constants for use in processing algorithms 33 : : * and parameters. 34 : : * 35 : : * \since QGIS 3.0 36 : : */ 37 : : 38 : : class CORE_EXPORT QgsProcessing 39 : : { 40 : : 41 : : public: 42 : : 43 : : //! Data source types enum 44 : : enum SourceType 45 : : { 46 : : TypeMapLayer = -2, //!< Any map layer type (raster or vector or mesh) 47 : : TypeVectorAnyGeometry = -1, //!< Any vector layer with geometry 48 : : TypeVectorPoint = 0, //!< Vector point layers 49 : : TypeVectorLine = 1, //!< Vector line layers 50 : : TypeVectorPolygon = 2, //!< Vector polygon layers 51 : : TypeRaster = 3, //!< Raster layers 52 : : TypeFile = 4, //!< Files (i.e. non map layer sources, such as text files) 53 : : TypeVector = 5, //!< Tables (i.e. vector layers with or without geometry). When used for a sink this indicates the sink has no geometry. 54 : : TypeMesh = 6 //!< Mesh layers \since QGIS 3.6 55 : : }; 56 : : 57 : : //! Available Python output types 58 : : enum PythonOutputType 59 : : { 60 : : PythonQgsProcessingAlgorithmSubclass, //!< Full Python QgsProcessingAlgorithm subclass 61 : : }; 62 : : 63 : : /** 64 : : * Converts a source \a type to a string representation. 65 : : * 66 : : * \since QGIS 3.6 67 : : */ 68 : 0 : static QString sourceTypeToString( SourceType type ) 69 : : { 70 : 0 : switch ( type ) 71 : : { 72 : : case QgsProcessing::TypeMapLayer: 73 : 0 : return QStringLiteral( "TypeMapLayer" ); 74 : : case QgsProcessing::TypeVectorAnyGeometry: 75 : 0 : return QStringLiteral( "TypeVectorAnyGeometry" ); 76 : : case QgsProcessing::TypeVectorPoint: 77 : 0 : return QStringLiteral( "TypeVectorPoint" ); 78 : : case QgsProcessing::TypeVectorLine: 79 : 0 : return QStringLiteral( "TypeVectorLine" ); 80 : : case QgsProcessing::TypeVectorPolygon: 81 : 0 : return QStringLiteral( "TypeVectorPolygon" ); 82 : : case QgsProcessing::TypeRaster: 83 : 0 : return QStringLiteral( "TypeRaster" ); 84 : : case QgsProcessing::TypeFile: 85 : 0 : return QStringLiteral( "TypeFile" ); 86 : : case QgsProcessing::TypeVector: 87 : 0 : return QStringLiteral( "TypeVector" ); 88 : : case QgsProcessing::TypeMesh: 89 : 0 : return QStringLiteral( "TypeMesh" ); 90 : : } 91 : 0 : return QString(); 92 : 0 : } 93 : : 94 : : /** 95 : : * Constant used to indicate that a Processing algorithm output should be a temporary layer/file. 96 : : * 97 : : * \since QGIS 3.6 98 : : */ 99 : : static const QString TEMPORARY_OUTPUT; 100 : : }; 101 : : 102 : : #endif // QGSPROCESSING_H