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