Newer
Older
PrismSoftware / ECTrainer2 / ECTrainer.h
#pragma once

#include <Windows.h>
#include <tchar.h>
#include "myOpenCV.h"

class ECTrainerGUI;
class SceneCamera;
class Stimulus;
class Marker;
class ImageProc;
class EyeTrack;

class ECTrainer
{
private:
	ECTrainerGUI* _pGui;
	SceneCamera* _pSceneCam;
	Stimulus* _pStimulus;
	Marker* _pMarker;
	ImageProc* _pImageProc;
	EyeTrack* _pEyeTrack;
	bool _Running;
	bool _HomographyOK;
	// スレッド開始点
	static DWORD SceneCamThreadEntry(LPVOID lpParameter);
	static DWORD StimulusThreadEntry(LPVOID lpParameter);
	static DWORD ImageProcThreadEntry(LPVOID lpParameter);

public:
	ECTrainer();
	~ECTrainer();
	bool Process();
	void Calib();
	void Start();
	void SetSceneBuffer(cv::Mat& img);
	void SetDispBuffer(cv::Mat& img);
	// インライン関数
	bool IsRunning() { return _Running; }
	void Stop() { _Running = false; }
	void SetHomographyStatus(bool ok) { _HomographyOK = ok; }
	bool GetHomographyStatus() { return _HomographyOK; }
};