Subversion Repositories seema-scanner

Rev

Rev 30 | Rev 113 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9 jakw 1
 
2
#ifndef SMCaptureWorker_H
3
#define SMCaptureWorker_H
4
 
23 jakw 5
#include "SMTypes.h"
6
#include "ProjectorOpenGL.h"
7
#include "Camera.h"
8
#include "RotationStage.h"
41 jakw 9
#include "Algorithm.h"
23 jakw 10
 
9 jakw 11
#include <QObject>
12
#include <opencv2/opencv.hpp>
13
 
23 jakw 14
enum mode {
15
    modeIdle,
27 jakw 16
    modeSMCalibrationSet,
23 jakw 17
    modeFrameSequence
18
};
9 jakw 19
 
20
class SMCaptureWorker : public QObject{
21
    Q_OBJECT
22
 
23
    public:
23 jakw 24
        SMCaptureWorker(){}
9 jakw 25
        ~SMCaptureWorker();
26
    public slots:
27
        void setup();
28
        void doWork();
23 jakw 29
        void rotateTo(float angle);
30
        void acquireCalibrationSet(float angle);
31
        void acquireCalibrationSets(std::vector<float> angles);
32
        void acquireFrameSequence(float angle);
33
        void acquireFrameSequences(std::vector<float> angles);
34
        void abort();
35
        void stopWork();
9 jakw 36
    signals:
37
        void newFrame(unsigned int camID, cv::Mat frame);
27 jakw 38
        void newCalibrationSet(SMCalibrationSet frameSet);
39
        void newFrameSequence(SMFrameSequence frameSequence);
30 jakw 40
        void rotatedTo(float angle);
23 jakw 41
        void busy();
42
        void done();
9 jakw 43
        void finished();
44
    private:
23 jakw 45
        bool working;
27 jakw 46
        int delay;
47
        QString codec;
23 jakw 48
        Projector* projector;
9 jakw 49
        Camera* camera0;
50
        Camera* camera1;
23 jakw 51
        RotationStage* rotationStage;
41 jakw 52
        Algorithm* algorithm;
9 jakw 53
};
54
 
55
#endif // SMCaptureWorker_H