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






class QgsRasterCalcNode
{
%Docstring(signature="appended")
Represents a node in a raster calculator.
%End

%TypeHeaderCode
#include "qgsrastercalcnode.h"
%End
  public:
    enum Type
    {
      tOperator,
      tNumber,
      tRasterRef,
      tMatrix,
      tFunction
    };

    enum Operator
    {
      opPLUS,
      opMINUS,
      opMUL,
      opDIV,
      opPOW,
      opSQRT,
      opSIN,
      opCOS,
      opTAN,
      opASIN,
      opACOS,
      opATAN,
      opEQ,
      opNE,
      opGT,
      opLT,
      opGE,
      opLE,
      opAND,
      opOR,
      opSIGN,
      opLOG,
      opLOG10,
      opABS,
      opMAX,
      opMIN,
      opNONE,
    };

    QgsRasterCalcNode();
%Docstring
Constructor for QgsRasterCalcNode.
%End

    QgsRasterCalcNode( double number );
    QgsRasterCalcNode( QgsRasterMatrix *matrix );
    QgsRasterCalcNode( Operator op, QgsRasterCalcNode *left, QgsRasterCalcNode *right );
    QgsRasterCalcNode( QString functionName, QVector <QgsRasterCalcNode *> functionArgs );
%Docstring
Constructor for the tFunction type
%End
    QgsRasterCalcNode( const QString &rasterName );
    ~QgsRasterCalcNode();


    Type type() const;
%Docstring
QgsRasterCalcNode cannot be copied
%End

    void setLeft( QgsRasterCalcNode *left );
    void setRight( QgsRasterCalcNode *right );


    QString toString( bool cStyle = false ) const;
%Docstring
Returns a string representation of the expression

:param cStyle: if ``True`` operators will follow C syntax

.. versionadded:: 3.6
%End

    QList<const QgsRasterCalcNode *> findNodes( const QgsRasterCalcNode::Type type ) const;
%Docstring
Returns a list of nodes of a specific ``type``

.. versionadded:: 3.6
%End

    static QgsRasterCalcNode *parseRasterCalcString( const QString &str, QString &parserErrorMsg ) /Factory/;

    QStringList referencedLayerNames( );
%Docstring
Returns a list of raster layer names that are referenced in the formula without the quotation marks.
It uses QgsRasterCalcNode.cleanRasterReferences

.. note::

   since QGIS 3.22
%End

    QStringList cleanRasterReferences();
%Docstring
Returns a list of raster layer references that are addressed in the formula, without quotation marks.

.. note::

   since QGIS 3.22
%End

  private:
    QgsRasterCalcNode( const QgsRasterCalcNode &rh );
};


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