Rev 217 | Rev 227 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef SMSCANNER_H
#define SMSCANNER_H
#include <QMainWindow>
#include <QSettings>
#include <QThread>
#include <QCloseEvent>
#include <QModelIndex>
#include <QListWidgetItem>
#include "SMPreferenceDialog.h"
#include "SMLogDialog.h"
#include "SMCaptureWorker.h"
#include "SMCalibrationWorker.h"
#include "SMReconstructionWorker.h"
//#include "SMMeshingWorker.h"
#include <opencv2/opencv.hpp>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
namespace Ui {
class SMScanner;
}
class SMScanner : public QMainWindow{
Q_OBJECT
public:
explicit SMScanner(QWidget *parent = 0);
void closeEvent(QCloseEvent *event);
~SMScanner();
private slots:
void on_actionPreferences_triggered();
void onPreferencesChanged();
void onReceiveFrame(unsigned int camId, cv::Mat frame);
void onReceiveCalibrationSet(SMCalibrationSet calibrationSet);
void onReceiveFrameSequence(SMFrameSequence frameSequence);
void onReceiveRotatedTo(float angle);
void onReceiveCheckerboardResult(int idx, SMCalibrationSet set);
void on_singleCalibrationButton_clicked();
void on_calibrateCamerasButton_clicked();
void onReceiveCalibrationDone();
void on_calibrationListWidget_itemSelectionChanged();
void on_singleCaptureButton_clicked();
void on_calibrationRotationDial_sliderReleased();
void on_captureRotationDial_sliderReleased();
void on_captureTreeWidget_itemSelectionChanged();
void on_batchCalibrationButton_clicked();
void on_batchCaptureButton_clicked();
void on_actionExport_Sets_triggered();
void on_actionExport_Sequences_triggered();
void onReceivePointCloud(SMPointCloud pc);
void on_actionExport_Point_Clouds_triggered();
void on_pointCloudsListWidget_itemChanged(QListWidgetItem *item);
void on_actionExport_Parameters_triggered();
void on_actionClear_Sequences_triggered();
void on_actionExport_White_Frames_triggered();
void on_actionImport_Parameters_triggered();
void on_actionImport_Sets_triggered();
void on_actionImport_Sequences_triggered();
void on_actionClear_Point_Clouds_triggered();
void on_calibrationRotationSpinBox_editingFinished();
void on_captureRotationSpinBox_editingFinished();
void on_actionProject_Focusing_Pattern_triggered();
void on_calibrateRotationStageButton_clicked();
void on_actionView_Log_Messages_triggered();
private:
Ui::SMScanner *ui;
QSettings settings;
SMPreferenceDialog preferenceDialog;
SMLogDialog logDialog;
SMCaptureWorker *captureWorker;
QThread *captureWorkerThread;
SMCalibrationWorker *calibrationWorker;
QThread *calibrationWorkerThread;
SMReconstructionWorker *reconstructionWorker;
QThread *reconstructionWorkerThread;
std::vector< SMCalibrationSet > calibrationData;
std::vector< SMFrameSequence > captureData;
std::vector< SMPointCloud > pointCloudData;
bool calibrationReviewMode;
bool captureReviewMode;
int lastCaptureId;
};
#endif // SMSCANNER_H