-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathmainwindow.h
executable file
·182 lines (125 loc) · 3.76 KB
/
mainwindow.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPlainTextEdit>
#include "gui/aboutdialog.h"
#include "gui/camerasettingsdialog.h"
#include "gui/calibrationstandarddialog.h"
#include "gui/calibrationdialog.h"
#include "gui/projectorsettingsdialog.h"
#include "gui/singlecalibrationdialog.h"
#include "hardware/projector/graycodepattern.h"
#include "hardware/standards/calibrationstandard.h"
#include "geom/binarycompiler.h"
#include "geom/sheet.h"
#include "geom/phasecompiler.h"
namespace Ui {
class MainWindow;
}
/// Represents the main Scan Studio window.
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
/// Create a new MainWindow.
explicit MainWindow(QWidget *parent = 0);
/// Destroy the MainWindow.
~MainWindow();
public slots:
/// Show the About dialog.
void showAbout();
/// Show Scan Studio in fullscreen.
void setFullScreen(bool fs);
/// Show the camera settings dialog.
void showCameraSettings();
void showCamera2Settings();
/// Show the projector settings dialog.
void showProjectorSettings();
/// Show the calibration settings dialog.
void showCalStdSettings();
/// Show the calibration dialog.
void showCalibrationDialog();
/// Quit Scan Studio.
void quitProgram();
/// Adjust the calibration standard.
void adjustCalStd();
/// Take a snapshot.
void takeFrame();
/// Take a sinusoidal snapshot.
void phaseMapCaptured(cv::Mat ph, bool);
/// Write debug info to the side panel.
void debug(QString str);
/// Write debug info to the side panel.
void debug(const char *str);
/// Show the debug window.
void showDebug();
/// User has selected camera settings.
void cameraSettingsChanged(QCamera *first,
QCamera*);
/// Show a debug image.
void debugImage(cv::Mat im,
QCamera*,
QProjector::Pattern*);
/// Show a debug image.
void debugImage(cv::Mat im);
/// Binary image has been computed
void binaryImageCaptured(cv::Mat binary,bool);
void hybridImageCaptured(cv::Mat hybrid);
/// Write debug image 1
void writeDebugImg1(cv::Mat im);
/// Write debug image 2
void writeDebugImg2(cv::Mat im);
/// Save to an STL file
void saveSTL();
/// Set the current scan as background so
/// it will be removed from subsequent scans.
void setAsBackground();
void setShifts(int shifts);
void setBits(int bits);
protected:
/// Quit on close.
void closeEvent(QCloseEvent *);
private:
/// UI
Ui::MainWindow *ui;
/// About dialog
AboutDialog about;
/// Camera settings dialog
CameraSettingsDialog camSettings;
/// Calibration standard dialog
CalibrationStandardDialog stdSettings;
/// Calibration dialog with the two views
CalibrationDialog *calib;
/// Projector settings dialog
ProjectorSettingsDialog projSettings;
/// Enable calibration
void enableCalibrate();
/// Debug window
QPlainTextEdit *debugWin;
/// Capture camera
QCamera *capture;
/// Gray code pattern
GrayCodePattern *graycode;
/// Testing camera capture
QCamera *camera;
QCamera *camera2;
/// Testing projector
QProjector *projector;
/// Image debugger
ImageViewWidget *dbgIm;
BinaryCompiler *compiler;
BinaryCompiler *compiler2;
Sheet *geom;
Sheet *bg;
SingleCalibrationDialog *singleCal;
SingleCalibrationDialog *singleCal2;
CalibrationStandard *standard;
PhaseCompiler *fringer;
uint sinusoidPower;
int sinusoidShifts;
cv::Mat lastBinaryFrame;
cv::Mat lastPhaseMap;
cv::Mat lastCombined;
void computeCombinedGeometry();
};
#endif // MAINWINDOW_H