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