18#ifndef QGSRANDOMRASTERALGORITHM_H 
   19#define QGSRANDOMRASTERALGORITHM_H 
   33    QString 
group() 
const final;
 
   35    void initAlgorithm( 
const QVariantMap &configuration = QVariantMap() ) 
final;
 
   42    virtual void addAlgorithmParams() = 0;
 
   50    virtual bool prepareRandomParameters( 
const QVariantMap ¶meters, 
QgsProcessingContext &context ) = 0;
 
   60    virtual long generateRandomLongValue( std::mt19937 &mersenneTwister ) = 0;
 
   61    virtual double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) = 0;
 
   66    double mPixelSize = 0;
 
   71class QgsRandomUniformRasterAlgorithm : 
public QgsRandomRasterAlgorithmBase
 
   74    QgsRandomUniformRasterAlgorithm() = 
default;
 
   76    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmRandomRaster.svg" ) ); }
 
   77    QString name() 
const override;
 
   78    QString displayName() 
const override;
 
   79    QStringList tags() 
const override;
 
   80    QString shortHelpString() 
const override;
 
   81    QString shortDescription() 
const override;
 
   82    QgsRandomUniformRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
   85    void addAlgorithmParams() final;
 
   86    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
   87    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
   88    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
   89    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
   92    double mRandomUpperBound = 0;
 
   93    double mRandomLowerBound = 0;
 
   94    std::uniform_int_distribution<
long> mRandomUniformIntDistribution;
 
   95    std::uniform_real_distribution<
double> mRandomUniformDoubleDistribution;
 
   98class QgsRandomBinomialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  101    QgsRandomBinomialRasterAlgorithm() = 
default;
 
  103    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmRandomNormalRaster.svg" ) ); }
 
  104    QString name() 
const override;
 
  105    QString displayName() 
const override;
 
  106    QStringList tags() 
const override;
 
  107    QString shortHelpString() 
const override;
 
  108    QString shortDescription() 
const override;
 
  109    QgsRandomBinomialRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  112    void addAlgorithmParams() final;
 
  113    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
  114    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
  115    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
  116    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
  119    std::binomial_distribution<
long> mRandombinomialDistribution;
 
  122class QgsRandomExponentialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  125    QgsRandomExponentialRasterAlgorithm() = 
default;
 
  126    QIcon icon()
 const override { 
return QgsApplication::getThemeIcon( QStringLiteral( 
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
 
  127    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
 
  128    QString name() 
const override;
 
  129    QString displayName() 
const override;
 
  130    QStringList tags() 
const override;
 
  131    QString shortHelpString() 
const override;
 
  132    QString shortDescription() 
const override;
 
  133    QgsRandomExponentialRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  136    void addAlgorithmParams() final;
 
  137    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
  138    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
  139    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
  140    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
  143    std::exponential_distribution<
double> mRandomExponentialDistribution;
 
  147class QgsRandomGammaRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  150    QgsRandomGammaRasterAlgorithm() = 
default;
 
  152    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmRandomGammaRaster.svg" ) ); }
 
  153    QString name() 
const override;
 
  154    QString displayName() 
const override;
 
  155    QStringList tags() 
const override;
 
  156    QString shortHelpString() 
const override;
 
  157    QString shortDescription() 
const override;
 
  158    QgsRandomGammaRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  161    void addAlgorithmParams() final;
 
  162    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
  163    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
  164    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
  165    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
  168    std::gamma_distribution<
double> mRandomGammaDistribution;
 
  171class QgsRandomGeometricRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  174    QgsRandomGeometricRasterAlgorithm() = 
default;
 
  175    QIcon icon()
 const override { 
return QgsApplication::getThemeIcon( QStringLiteral( 
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
 
  176    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
 
  177    QString name() 
const override;
 
  178    QString displayName() 
const override;
 
  179    QStringList tags() 
const override;
 
  180    QString shortHelpString() 
const override;
 
  181    QString shortDescription() 
const override;
 
  182    QgsRandomGeometricRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  185    void addAlgorithmParams() override;
 
  186    Qgis::DataType getRasterDataType( 
int typeId ) override;
 
  187    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) override;
 
  188    long generateRandomLongValue( std::mt19937 &mersenneTwister ) override;
 
  189    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) override;
 
  192    std::geometric_distribution<
long> mRandomGeometricDistribution;
 
  196class QgsRandomNegativeBinomialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  199    QgsRandomNegativeBinomialRasterAlgorithm() = 
default;
 
  201    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmNormalRaster.svg" ) ); }
 
  202    QString name() 
const override;
 
  203    QString displayName() 
const override;
 
  204    QStringList tags() 
const override;
 
  205    QString shortHelpString() 
const override;
 
  206    QString shortDescription() 
const override;
 
  207    QgsRandomNegativeBinomialRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  210    void addAlgorithmParams() final;
 
  211    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
  212    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
  213    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
  214    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
  217    std::negative_binomial_distribution<
long> mRandomNegativeBinomialDistribution;
 
  220class QgsRandomNormalRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  223    QgsRandomNormalRasterAlgorithm() = 
default;
 
  225    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmNormalRaster.svg" ) ); }
 
  226    QString name() 
const override;
 
  227    QString displayName() 
const override;
 
  228    QStringList tags() 
const override;
 
  229    QString shortHelpString() 
const override;
 
  230    QString shortDescription() 
const override;
 
  231    QgsRandomNormalRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  234    void addAlgorithmParams() final;
 
  235    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
  236    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
  237    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
  238    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
  241    std::normal_distribution<
double> mRandomNormalDistribution;
 
  244class QgsRandomPoissonRasterAlgorithm : public QgsRandomRasterAlgorithmBase
 
  247    QgsRandomPoissonRasterAlgorithm() = 
default;
 
  248    QIcon icon()
 const override { 
return QgsApplication::getThemeIcon( QStringLiteral( 
"/algorithms/mAlgorithmRandomPoissonRaster.svg" ) ); }
 
  249    QString svgIconPath()
 const override { 
return QgsApplication::iconPath( QStringLiteral( 
"/algorithms/mAlgorithmRandomPoissonRaster.svg" ) ); }
 
  250    QString name() 
const override;
 
  251    QString displayName() 
const override;
 
  252    QStringList tags() 
const override;
 
  253    QString shortHelpString() 
const override;
 
  254    QString shortDescription() 
const override;
 
  255    QgsRandomPoissonRasterAlgorithm *createInstance() const override 
SIP_FACTORY;
 
  258    void addAlgorithmParams() final;
 
  259    Qgis::DataType getRasterDataType( 
int typeId ) final;
 
  260    bool prepareRandomParameters( const QVariantMap ¶meters, 
QgsProcessingContext &context ) final;
 
  261    long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
 
  262    double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
 
  265    std::poisson_distribution<
long> mRandomPoissonDistribution;
 
Provides global constants and enumerations for use throughout the application.
 
DataType
Raster data types.
 
@ UnknownDataType
Unknown or unspecified type.
 
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.
 
Represents a coordinate reference system (CRS).
 
Abstract base class for processing algorithms.
 
virtual QString group() const
Returns the name of the group this algorithm belongs to.
 
virtual bool prepareAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback)
Prepares the algorithm to run using the specified parameters.
 
virtual QString groupId() const
Returns the unique ID of the group this algorithm belongs to.
 
virtual QVariantMap processAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback)=0
Runs the algorithm using the specified parameters.
 
virtual void initAlgorithm(const QVariantMap &configuration=QVariantMap())=0
Initializes the algorithm using the specified configuration.
 
Contains information about the context in which a processing algorithm is executed.
 
Base class for providing feedback from a processing algorithm.
 
A rectangle specified with double values.