Subversion Repositories seema-scanner

Rev

Rev 225 | Rev 232 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 225 Rev 227
1
#ifndef SMSCANNER_H
1
#ifndef SMSCANNER_H
2
#define SMSCANNER_H
2
#define SMSCANNER_H
3
 
3
 
4
#include <QMainWindow>
4
#include <QMainWindow>
5
#include <QSettings>
5
#include <QSettings>
6
#include <QThread>
6
#include <QThread>
7
#include <QCloseEvent>
7
#include <QCloseEvent>
8
#include <QModelIndex>
8
#include <QModelIndex>
9
#include <QListWidgetItem>
9
#include <QListWidgetItem>
10
 
10
 
11
#include "SMPreferenceDialog.h"
11
#include "SMPreferenceDialog.h"
12
#include "SMLogDialog.h"
12
#include "SMLogDialog.h"
13
#include "SMCaptureWorker.h"
13
#include "SMCaptureWorker.h"
14
#include "SMCalibrationWorker.h"
14
#include "SMCalibrationWorker.h"
15
#include "SMReconstructionWorker.h"
15
#include "SMReconstructionWorker.h"
16
//#include "SMMeshingWorker.h"
16
//#include "SMMeshingWorker.h"
17
 
17
 
18
#include <opencv2/opencv.hpp>
18
#include <opencv2/opencv.hpp>
19
#include <pcl/point_cloud.h>
19
#include <pcl/point_cloud.h>
20
#include <pcl/point_types.h>
20
#include <pcl/point_types.h>
21
 
21
 
22
 
22
 
23
namespace Ui {
23
namespace Ui {
24
    class SMScanner;
24
    class SMScanner;
25
}
25
}
26
 
26
 
27
class SMScanner : public QMainWindow{
27
class SMScanner : public QMainWindow{
28
    Q_OBJECT
28
    Q_OBJECT
29
 
29
 
30
    public:
30
    public:
31
        explicit SMScanner(QWidget *parent = 0);
31
        explicit SMScanner(QWidget *parent = 0);
32
        void closeEvent(QCloseEvent *event);
32
        void closeEvent(QCloseEvent *event);
33
        ~SMScanner();
33
        ~SMScanner();
34
 
34
 
35
    private slots:
35
    private slots:
36
        void on_actionPreferences_triggered();
36
        void on_actionPreferences_triggered();
37
        void onPreferencesChanged();
37
        void onPreferencesChanged();
38
 
38
 
39
        void onReceiveFrame(unsigned int camId, cv::Mat frame);
39
        void onReceiveFrame(unsigned int camId, cv::Mat frame);
40
        void onReceiveCalibrationSet(SMCalibrationSet calibrationSet);
40
        void onReceiveCalibrationSet(SMCalibrationSet calibrationSet);
41
        void onReceiveFrameSequence(SMFrameSequence frameSequence);
41
        void onReceiveFrameSequence(SMFrameSequence frameSequence);
42
        void onReceiveRotatedTo(float angle);
42
        void onReceiveRotatedTo(float angle);
43
 
43
 
44
        void onReceiveCheckerboardResult(int idx, SMCalibrationSet set);
44
        void onReceiveCheckerboardResult(int idx, SMCalibrationSet set);
45
 
45
 
46
        void on_singleCalibrationButton_clicked();
46
        void on_singleCalibrationButton_clicked();
47
 
47
 
48
        void on_calibrateCamerasButton_clicked();
48
        void on_calibrateCamerasButton_clicked();
49
 
49
 
50
        void onReceiveCalibrationDone();
50
        void onReceiveCalibrationDone();
51
        void on_calibrationListWidget_itemSelectionChanged();
51
        void on_calibrationListWidget_itemSelectionChanged();
52
 
52
 
53
        void on_singleCaptureButton_clicked();
53
        void on_singleCaptureButton_clicked();
54
 
54
 
55
        void on_calibrationRotationDial_sliderReleased();
55
        void on_calibrationRotationDial_sliderReleased();
56
 
56
 
57
        void on_captureRotationDial_sliderReleased();
57
        void on_captureRotationDial_sliderReleased();
58
 
58
 
59
        void on_captureTreeWidget_itemSelectionChanged();
59
        void on_captureTreeWidget_itemSelectionChanged();
60
 
60
 
61
        void on_batchCalibrationButton_clicked();
61
        void on_batchCalibrationButton_clicked();
62
 
62
 
63
        void on_batchCaptureButton_clicked();
63
        void on_batchCaptureButton_clicked();
64
 
64
 
65
        void on_actionExport_Sets_triggered();
65
        void on_actionExport_Sets_triggered();
66
 
66
 
67
        void on_actionExport_Sequences_triggered();
67
        void on_actionExport_Sequences_triggered();
68
 
68
 
69
        void onReceivePointCloud(SMPointCloud pc);
69
        void onReceivePointCloud(SMPointCloud pc);
70
 
70
 
71
        void on_actionExport_Point_Clouds_triggered();
71
        void on_actionExport_Point_Clouds_triggered();
72
 
72
 
73
        void on_pointCloudsListWidget_itemChanged(QListWidgetItem *item);
73
        void on_pointCloudsListWidget_itemChanged(QListWidgetItem *item);
74
 
74
 
75
        void on_actionExport_Parameters_triggered();
75
        void on_actionExport_Parameters_triggered();
76
 
76
 
77
        void on_actionClear_Sequences_triggered();
77
        void on_actionClear_Sequences_triggered();
78
 
78
 
79
        void on_actionExport_White_Frames_triggered();
79
        void on_actionExport_White_Frames_triggered();
80
 
80
 
81
        void on_actionImport_Parameters_triggered();
81
        void on_actionImport_Parameters_triggered();
82
 
82
 
83
        void on_actionImport_Sets_triggered();
83
        void on_actionImport_Sets_triggered();
84
 
84
 
85
        void on_actionImport_Sequences_triggered();
85
        void on_actionImport_Sequences_triggered();
86
 
86
 
87
        void on_actionClear_Point_Clouds_triggered();
87
        void on_actionClear_Point_Clouds_triggered();
88
 
88
 
89
        void on_calibrationRotationSpinBox_editingFinished();
89
        void on_calibrationRotationSpinBox_editingFinished();
90
 
90
 
91
        void on_captureRotationSpinBox_editingFinished();
91
        void on_captureRotationSpinBox_editingFinished();
92
 
92
 
93
        void on_actionProject_Focusing_Pattern_triggered();
93
        void on_actionProject_Focusing_Pattern_triggered();
94
 
94
 
95
        void on_calibrateRotationStageButton_clicked();
95
        void on_calibrateRotationStageButton_clicked();
96
 
96
 
97
        void on_actionView_Log_Messages_triggered();
97
        void on_actionView_Log_Messages_triggered();
98
 
98
 
-
 
99
        void on_tabWidget_currentChanged(int index);
-
 
100
 
99
private:
101
private:
100
        Ui::SMScanner *ui;
102
        Ui::SMScanner *ui;
101
 
103
 
102
        QSettings settings;
104
        QSettings settings;
103
 
105
 
104
        SMPreferenceDialog preferenceDialog;
106
        SMPreferenceDialog preferenceDialog;
105
        SMLogDialog logDialog;
107
        SMLogDialog logDialog;
106
 
108
 
107
        SMCaptureWorker *captureWorker;
109
        SMCaptureWorker *captureWorker;
108
        QThread *captureWorkerThread;
110
        QThread *captureWorkerThread;
109
 
111
 
110
        SMCalibrationWorker *calibrationWorker;
112
        SMCalibrationWorker *calibrationWorker;
111
        QThread *calibrationWorkerThread;
113
        QThread *calibrationWorkerThread;
112
 
114
 
113
        SMReconstructionWorker *reconstructionWorker;
115
        SMReconstructionWorker *reconstructionWorker;
114
        QThread *reconstructionWorkerThread;
116
        QThread *reconstructionWorkerThread;
115
 
117
 
116
        std::vector< SMCalibrationSet > calibrationData;
118
        std::vector< SMCalibrationSet > calibrationData;
117
 
119
 
118
        std::vector< SMFrameSequence > captureData;
120
        std::vector< SMFrameSequence > captureData;
119
        std::vector< SMPointCloud > pointCloudData;
121
        std::vector< SMPointCloud > pointCloudData;
120
 
122
 
121
        bool calibrationReviewMode;
123
        bool calibrationReviewMode;
122
        bool captureReviewMode;
124
        bool captureReviewMode;
123
        int lastCaptureId;
125
        int lastCaptureId;
124
 
126
 
125
};
127
};
126
 
128
 
127
#endif // SMSCANNER_H
129
#endif // SMSCANNER_H
128
 
130