/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/analysis/raster/qgsrastercalculator.h                            *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/





class QgsRasterCalculatorEntry
{
%Docstring(signature="appended")
Represents an individual raster layer/band number entry within a raster
calculation.
%End

%TypeHeaderCode
#include "qgsrastercalculator.h"
%End
  public:
    static QVector<QgsRasterCalculatorEntry> rasterEntries();
%Docstring
Creates a list of raster entries from the current project.

If there is more than one layer with the same data source only one of
them is added to the list, duplicate names are also handled by appending
an _n integer to the base name.

:return: the list of raster entries form the current project

.. versionadded:: 3.6
%End

    QString ref;

    QgsRasterLayer *raster;

    int bandNumber;
};

class QgsRasterCalculator
{
%Docstring(signature="appended")
Performs raster layer calculations.
%End

%TypeHeaderCode
#include "qgsrastercalculator.h"
%End
  public:
    enum Result /BaseType=IntEnum/
    {
      Success,
      CreateOutputError,
      InputLayerError,
      Canceled,
      ParserError,
      MemoryError,
      BandError,
      CalculationError,
    };


    QgsRasterCalculator( const QString &formulaString, const QString &outputFile, const QString &outputFormat, const QgsRectangle &outputExtent, int nOutputColumns, int nOutputRows, const QVector<QgsRasterCalculatorEntry> &rasterEntries, const QgsCoordinateTransformContext &transformContext );
%Docstring
QgsRasterCalculator constructor.

:param formulaString: formula for raster calculation
:param outputFile: output file path
:param outputFormat: output file format
:param outputExtent: output extent. CRS for output is taken from first
                     entry in rasterEntries.
:param nOutputColumns: number of columns in output raster
:param nOutputRows: number of rows in output raster
:param rasterEntries: list of referenced raster layers
:param transformContext: coordinate transformation context

.. versionadded:: 3.8
%End

    QgsRasterCalculator( const QString &formulaString, const QString &outputFile, const QString &outputFormat, const QgsRectangle &outputExtent, const QgsCoordinateReferenceSystem &outputCrs, int nOutputColumns, int nOutputRows, const QVector<QgsRasterCalculatorEntry> &rasterEntries, const QgsCoordinateTransformContext &transformContext );
%Docstring
QgsRasterCalculator constructor.

:param formulaString: formula for raster calculation
:param outputFile: output file path
:param outputFormat: output file format
:param outputExtent: output extent, CRS is specified by outputCrs
                     parameter
:param outputCrs: destination CRS for output raster
:param nOutputColumns: number of columns in output raster
:param nOutputRows: number of rows in output raster
:param rasterEntries: list of referenced raster layers
:param transformContext: coordinate transformation context

.. versionadded:: 3.8
%End


 QgsRasterCalculator( const QString &formulaString, const QString &outputFile, const QString &outputFormat, const QgsRectangle &outputExtent, int nOutputColumns, int nOutputRows, const QVector<QgsRasterCalculatorEntry> &rasterEntries ) /Deprecated/;
%Docstring
QgsRasterCalculator constructor.

:param formulaString: formula for raster calculation
:param outputFile: output file path
:param outputFormat: output file format
:param outputExtent: output extent. CRS for output is taken from first
                     entry in rasterEntries.
:param nOutputColumns: number of columns in output raster
:param nOutputRows: number of rows in output raster
:param rasterEntries: list of referenced raster layers

.. deprecated:: 3.8

   Use the version with transformContext instead.
%End

 QgsRasterCalculator( const QString &formulaString, const QString &outputFile, const QString &outputFormat, const QgsRectangle &outputExtent, const QgsCoordinateReferenceSystem &outputCrs, int nOutputColumns, int nOutputRows, const QVector<QgsRasterCalculatorEntry> &rasterEntries ) /Deprecated/;
%Docstring
QgsRasterCalculator constructor.

:param formulaString: formula for raster calculation
:param outputFile: output file path
:param outputFormat: output file format
:param outputExtent: output extent, CRS is specified by outputCrs
                     parameter
:param outputCrs: destination CRS for output raster
:param nOutputColumns: number of columns in output raster
:param nOutputRows: number of rows in output raster
:param rasterEntries: list of referenced raster layers

.. deprecated:: 3.8

   Use the version with transformContext instead.
%End

    Result processCalculation( QgsFeedback *feedback = 0 );
%Docstring
Starts the calculation and writes a new raster.

The optional ``feedback`` argument can be used for progress reporting
and cancellation support.

:return: QgsRasterCalculator.Success in case of success. If an error is
         encountered then a description of the error can be obtained by
         calling :py:func:`~QgsRasterCalculator.lastError`.
%End

    QString lastError() const;
%Docstring
Returns a description of the last error encountered.

.. versionadded:: 3.4
%End

};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/analysis/raster/qgsrastercalculator.h                            *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
