Subversion Repositories seema-scanner

Rev

Rev 24 | Rev 26 | 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 "SMPreferenceDialog.h"
#include "SMCaptureWorker.h"
#include "SMTriangulator.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 onReceiveFrame(unsigned int camId, cv::Mat frame);
        void onReceiveCalibrationSet(CalibrationSet calibrationSet);

        void on_singleCalibrationButton_clicked();

        void on_calibrationRotationDial_sliderReleased();

        void on_calibrationListWidget_currentRowChanged(int currentRow);

        void on_calibrateButton_clicked();

private:
        Ui::SMScanner *ui;

        QSettings settings;

        SMPreferenceDialog preferenceDialog;

        SMCaptureWorker *captureWorker;
        QThread *captureWorkerThread;

        SMTriangulator *triangulator;

        std::vector< CalibrationSet > calibrationData;
        std::vector< FrameSequence > captureData;
        std::vector< pcl::PointCloud<pcl::PointXYZRGB>::Ptr > pointClouds;

        bool calibrationReviewMode;
};

#endif // SMSCANNER_H