-
Notifications
You must be signed in to change notification settings - Fork 1
/
topfactory.h
65 lines (47 loc) · 1.45 KB
/
topfactory.h
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
#ifndef TOPFACTORY_H
#define TOPFACTORY_H
#include <QObject>
#include <QTime>
#include <QTimer>
#include "tools.h"
#include "h2discreteflowfactorythread.h"
class ActionHandler; class MathsContainer;
class TopFactory : public QObject
{
Q_OBJECT
friend class MathsContainer;
friend class ActionHandler;
public:
TopFactory(MathsContainer *const mathsContainer, ActionHandler *const handler);
TopFactory(const TopFactory &) = delete;
TopFactory & operator=(TopFactory) = delete;
~TopFactory();
void setGenus(uint genus);
void setMeshDepth(uint meshDepth);
void setNiceRhoDomain();
void setNiceRhoImage();
void setRhoDomain(const std::vector<double> & FNlengths, const std::vector<double> FNtwists);
void setRhoImage(const std::vector<double> & FNlengths, const std::vector<double> FNtwists);
void resetRhoDomain();
void resetRhoImage();
void decideEmittingMeshCreated();
void resetH2Flow();
void runH2Flow(int flowChoice);
void iterateH2Flow(int flowChoice, uint N);
void stopH2Flow();
uint getNbIterations() const;
private slots:
void finishedComputing();
void sendLiveMessageForStatusBar();
void sendFinishedMessageForStatusBar();
private:
void startTimers();
void stopTimers();
uint nbVertices;
uint nbIterations;
ActionHandler *const handler;
H2DiscreteFlowFactoryThread h2factory;
QTime *time;
QTimer *timer;
};
#endif // TOPFACTORY_H