Rev 1221 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
671 | werner | 1 | /******************************************************************************************** |
2 | ** iLand - an individual based forest landscape and disturbance model |
||
3 | ** http://iland.boku.ac.at |
||
4 | ** Copyright (C) 2009- Werner Rammer, Rupert Seidl |
||
5 | ** |
||
6 | ** This program is free software: you can redistribute it and/or modify |
||
7 | ** it under the terms of the GNU General Public License as published by |
||
8 | ** the Free Software Foundation, either version 3 of the License, or |
||
9 | ** (at your option) any later version. |
||
10 | ** |
||
11 | ** This program is distributed in the hope that it will be useful, |
||
12 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
13 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
14 | ** GNU General Public License for more details. |
||
15 | ** |
||
16 | ** You should have received a copy of the GNU General Public License |
||
17 | ** along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
18 | ********************************************************************************************/ |
||
19 | |||
242 | werner | 20 | #ifndef CLIMATECONVERTER_H |
21 | #define CLIMATECONVERTER_H |
||
22 | #include <QObject> |
||
793 | werner | 23 | #include <QJSEngine> |
24 | #include <QJSValue> |
||
25 | |||
242 | werner | 26 | #include "expression.h" |
27 | |||
28 | class ClimateConverter : public QObject |
||
29 | { |
||
30 | Q_OBJECT |
||
31 | Q_PROPERTY(QString fileName WRITE setFileName READ fileName); |
||
32 | Q_PROPERTY(QString tableName WRITE setTableName READ tableName); |
||
244 | werner | 33 | Q_PROPERTY(QString database WRITE setDatabase READ database); |
34 | Q_PROPERTY(bool captions WRITE setCaptions READ captions); |
||
35 | |||
36 | |||
242 | werner | 37 | Q_PROPERTY(QString year WRITE setYear READ year); |
38 | Q_PROPERTY(QString month WRITE setMonth READ month); |
||
39 | Q_PROPERTY(QString day WRITE setDay READ day); |
||
40 | Q_PROPERTY(QString temp WRITE setTemp READ temp); |
||
414 | werner | 41 | Q_PROPERTY(QString minTemp WRITE setMinTemp READ minTemp); |
242 | werner | 42 | Q_PROPERTY(QString prec WRITE setPrec READ prec); |
43 | Q_PROPERTY(QString rad WRITE setRad READ rad); |
||
44 | Q_PROPERTY(QString vpd WRITE setVpd READ vpd); |
||
244 | werner | 45 | |
242 | werner | 46 | public: |
47 | ClimateConverter(QObject *parent=0); |
||
793 | werner | 48 | static void addToScriptEngine(QJSEngine &engine); ///< add this class to scripting engine |
242 | werner | 49 | // getters |
50 | const QString fileName() const { return mFileName; } |
||
51 | const QString tableName() const { return mTableName; } |
||
244 | werner | 52 | const QString database() const { return mDatabase; } |
53 | bool captions() const { return mCaptions; } |
||
242 | werner | 54 | const QString year() const { return mYear; } |
55 | const QString month() const { return mMonth; } |
||
56 | const QString day() const { return mDay; } |
||
57 | const QString temp() const { return mTemp; } |
||
414 | werner | 58 | const QString minTemp() const { return mMinTemp; } |
242 | werner | 59 | const QString prec() const { return mPrec; } |
60 | const QString rad() const { return mRad; } |
||
61 | const QString vpd() const { return mVpd; } |
||
62 | |||
63 | // setters |
||
64 | void setFileName(const QString fileName) { mFileName = fileName; } |
||
65 | void setTableName(const QString tableName) { mTableName = tableName; } |
||
244 | werner | 66 | void setDatabase(const QString db) { mDatabase = db; } |
67 | void setCaptions(const bool on) { mCaptions = on; } |
||
242 | werner | 68 | void setYear(const QString value) { mYear = value; } |
69 | void setMonth(const QString value) { mMonth = value; } |
||
70 | void setDay(const QString value) { mDay = value; } |
||
71 | void setTemp(const QString value) { mTemp = value; } |
||
414 | werner | 72 | void setMinTemp(const QString value) { mMinTemp = value; } |
242 | werner | 73 | void setPrec(const QString value) { mPrec = value; } |
74 | void setRad(const QString value) { mRad = value; } |
||
75 | void setVpd(const QString value) { mVpd = value; } |
||
76 | |||
77 | public slots: |
||
78 | void run(); |
||
79 | |||
80 | private: |
||
81 | void bindExpression(Expression &expr, int index); |
||
82 | double *mVars[100]; |
||
83 | QString mFileName; |
||
84 | QString mTableName; |
||
244 | werner | 85 | QString mDatabase; |
86 | bool mCaptions; |
||
242 | werner | 87 | |
88 | QString mYear; |
||
89 | QString mMonth; |
||
90 | QString mDay; |
||
91 | QString mTemp; |
||
414 | werner | 92 | QString mMinTemp; |
242 | werner | 93 | QString mPrec; |
94 | QString mRad; |
||
95 | QString mVpd; |
||
96 | |||
97 | Expression mExpYear; |
||
98 | Expression mExpMonth; |
||
99 | Expression mExpDay; |
||
100 | Expression mExpTemp; |
||
414 | werner | 101 | Expression mExpMinTemp; |
242 | werner | 102 | Expression mExpPrec; |
103 | Expression mExpRad; |
||
104 | Expression mExpVpd; |
||
105 | |||
106 | }; |
||
107 | |||
108 | |||
109 | #endif // CLIMATECONVERTER_H |