18 #ifndef QGSMESHCALCNODE_H    19 #define QGSMESHCALCNODE_H    27 #include <QStringList>    31 #include "qgis_analysis.h"    35 struct QgsMeshMemoryDatasetGroup;
    44 class ANALYSIS_EXPORT QgsMeshCalcNode
    93     QgsMeshCalcNode( 
double number );
   101     QgsMeshCalcNode( Operator op, QgsMeshCalcNode *left, QgsMeshCalcNode *right );
   109     QgsMeshCalcNode( QgsMeshCalcNode *condition ,
   110                      QgsMeshCalcNode *left ,
   111                      QgsMeshCalcNode *right  );
   117     QgsMeshCalcNode( 
const QString &datasetGroupName );
   126     void setLeft( QgsMeshCalcNode *left );
   129     void setRight( QgsMeshCalcNode *right );
   137     bool calculate( 
const QgsMeshCalcUtils &dsu, QgsMeshMemoryDatasetGroup &result ) 
const;
   140     QStringList usedDatasetGroupNames() 
const;
   148     static QgsMeshCalcNode *parseMeshCalcString( 
const QString &str, QString &parserErrorMsg );
   151     Q_DISABLE_COPY( QgsMeshCalcNode )
   153     Type mType = tNoData;
   154     std::unique_ptr<QgsMeshCalcNode> mLeft;
   155     std::unique_ptr<QgsMeshCalcNode> mRight;
   156     std::unique_ptr<QgsMeshCalcNode> mCondition;
   157     double mNumber = std::numeric_limits<double>::quiet_NaN();
   158     QString mDatasetGroupName;
   159     Operator mOperator = opNONE;
   164 #endif // QGSMESHCALCNODE_H