Rev 27 | Rev 41 | 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 "Codec.h"
#include <QObject>
#include <opencv2/opencv.hpp>
enum mode {
modeIdle,
modeSMCalibrationSet,
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(SMCalibrationSet frameSet);
void newFrameSequence(SMFrameSequence frameSequence);
void rotatedTo(float angle);
void busy();
void done();
void finished();
private:
bool working;
int delay;
QString codec;
Projector* projector;
Camera* camera0;
Camera* camera1;
RotationStage* rotationStage;
Encoder* encoder;
};
#endif // SMCaptureWorker_H