-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimulator.h
More file actions
89 lines (66 loc) · 1.94 KB
/
simulator.h
File metadata and controls
89 lines (66 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#ifndef SIMULATOR_H
#define SIMULATOR_H
#include <QMainWindow>
#include <QLabel>
#include <QGridLayout>
#include <QPushButton>
#include <QLineEdit>
#include <QCheckBox>
#include <QSpinBox>
#include <QLCDNumber>
#include <QGroupBox>
#include <QHBoxLayout>
#include <QButtonGroup>
#include <QReadWriteLock>
#include <QWaitCondition>
#include <QThread>
#include <QVector>
#include <QTimeEdit>
#include "canvas.h"
#include "workerthread.h"
class Simulator : public QMainWindow
{
Q_OBJECT
public:
Simulator(QWidget *parent = nullptr);
~Simulator();
public slots:
void generateRandom();
void resetStatusBar();
void updateMap();
void calculusDone();
void startSimulation();
void record_box_change(int state);
void refreshDone();
void abordButton();
void restart();
void serializeData();
void readData();
void selectionEditionMapButton(int button);
void selectionWindDirection(int button);
private:
QButtonGroup *map_edition_group, *wind_direction_group;
QReadWriteLock lock;
QWaitCondition cond;
QWidget *window;
QPushButton *start_simulation, *abort_simulation, *random_map, *restart_button, *open_file, *save_file;
QCheckBox *record, *save_to_csv;
QSpinBox *density, *trees_density, *wind_strengh, *ambientHumidity, *ambientTemperature;
QLabel *state_label, *wind_name;
QLCDNumber *steps_number;
Canvas *canvas;
WorkerThread *thread1, *thread2, *thread3, *thread4, *thread5;
QLineEdit *simulation_name;
QTimeEdit *time_simulation_computed;
// QVector<QPushButton*> buttons_edition_map;
static void setRed(QLabel *pointer);
static void setGreen(QLabel *pointer);
static QLabel* createLabel(const QString &text);
void saveScreenshot();
int voisinage(int i, int j, int state);
int calculusState, nbThreadDone;
QString simulation_name_record;
bool record_bool;
bool isStarted, isRunning;
};
#endif // SIMULATOR_H