Subversion Repositories seema-scanner

Rev

Rev 23 | Rev 27 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed


#ifndef SMCaptureWorker_H
#define SMCaptureWorker_H

#include "SMTypes.h"
#include "ProjectorOpenGL.h"
#include "Camera.h"
#include "RotationStage.h"

#include <QObject>
#include <opencv2/opencv.hpp>

enum mode {
    modeIdle,
    modeCalibrationSet,
    modeFrameSequence
};

class SMCaptureWorker : public QObject{
    Q_OBJECT

    public:
        SMCaptureWorker(){}
        ~SMCaptureWorker();
    public slots:
        void setup();
        void doWork();
        void rotateTo(float angle);
        void acquireCalibrationSet(float angle);
        void acquireCalibrationSets(std::vector<float> angles);
        void acquireFrameSequence(float angle);
        void acquireFrameSequences(std::vector<float> angles);
        void abort();
        void stopWork();
    signals:
        void newFrame(unsigned int camID, cv::Mat frame);
        void newCalibrationSet(CalibrationSet frameSet);
        void newFrameSequence(FrameSequence frameSequence);
        void busy();
        void done();
        void finished();
    private:
        bool working;
        Projector* projector;
        Camera* camera0;
        Camera* camera1;
        RotationStage* rotationStage;
};

#endif // SMCaptureWorker_H