18 #ifndef QGSMESHCALCNODE_H 
   19 #define QGSMESHCALCNODE_H 
   27 #include <QStringList> 
   31 #include "qgis_core.h" 
   42 class CORE_EXPORT QgsMeshCalcNode
 
   91     QgsMeshCalcNode( 
double number );
 
   99     QgsMeshCalcNode( Operator op, QgsMeshCalcNode *left, QgsMeshCalcNode *right );
 
  107     QgsMeshCalcNode( QgsMeshCalcNode *condition ,
 
  108                      QgsMeshCalcNode *left ,
 
  109                      QgsMeshCalcNode *right  );
 
  115     QgsMeshCalcNode( 
const QString &datasetGroupName );
 
  124     void setLeft( QgsMeshCalcNode *left );
 
  127     void setRight( QgsMeshCalcNode *right );
 
  138     QStringList usedDatasetGroupNames() 
const;
 
  146     static QgsMeshCalcNode *parseMeshCalcString( 
const QString &str, QString &parserErrorMsg );
 
  152     bool isNonTemporal() 
const;
 
  155     Q_DISABLE_COPY( QgsMeshCalcNode )
 
  157     Type mType = tNoData;
 
  158     std::unique_ptr<QgsMeshCalcNode> mLeft;
 
  159     std::unique_ptr<QgsMeshCalcNode> mRight;
 
  160     std::unique_ptr<QgsMeshCalcNode> mCondition;
 
  161     double mNumber = std::numeric_limits<double>::quiet_NaN();
 
  162     QString mDatasetGroupName;
 
  163     Operator mOperator = opNONE;
 
  168 #endif // QGSMESHCALCNODE_H