Subversion Repositories seema-scanner

Rev

Rev 1 | Rev 8 | 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 "SMTriangulationWorker.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 onReceiveNewFrameSet(std::vector<cv::Mat > frameSet);

private:
    Ui::SMScanner *ui;

    QSettings settings;

    SMPreferenceDialog preferenceDialog;

    SMCaptureWorker *captureWorker;
    QThread *captureWorkerThread;

    SMTriangulationWorker *triangulationWorker;
    QThread *triangulationWorkerThread;

    std::vector< std::pair<cv::Mat, cv::Mat> > calibrationData;
    std::vector< std::vector< std::pair<cv::Mat, cv::Mat> > > captureData;
    std::vector< pcl::PointCloud<pcl::PointXYZRGB>::Ptr > pointClouds;
};

#endif // SMSCANNER_H