#pragma once
#include "ILocalizationManager.h"
#include "TypeDef.h"
#include "ILamp.h"
#include "CManageDB.h"

using namespace JVision;
using namespace ns_db;
namespace ns_pr
{
	enum PR_OUTPUT_TYPE {
		LOCALIZATION_TYPE,	//��λ
		CIRCLE_TYPE			//��Բ
	};

	//�˴������ƫ��Ϊ�������ͼ�����Ͻ�����ֵ
	struct FIND_OUTPUT_STRUCT
	{
		PR_OUTPUT_TYPE type;			//��������
		
		double score;						//����
		double x;						//x����ƫ����أ�
		double y;						//y����ƫ����أ�
		union
		{
			double angle;		//�Ƕ�ƫ��ȣ�
			double radius;		//�뾶�����أ�
		};
	};

	class CPixelLocation
	{
	public:
		CPixelLocation();

		//����ͼƬ stOutOffset�����ͼƬ���Ͻǵĵ������ֵ
		// ���� iPrMethod������Id
		// ���� image����Ƭ
		// ���� stOutOffset�����ڴ洢�������ƫ����Ϣ�Ľṹ�����ã�����X��Y�ͽǶ�ƫ��
		// ����ֵ���������������ɹ����� OK��ʧ�ܷ��� FAIL ��
		LONG SearchImageByLocalization(UINT iPrMethod, ImageInfo image, FIND_OUTPUT_STRUCT& stOutOffset);
		LONG EditTemplate(UINT iTemplate);

	private:
		CProduct* m_pCProduct = nullptr;
		ILocalizationManager* m_pLocalizationManager = nullptr;
		bool m_bInitSuccess;

		bool ConvertBMPToImageInfo(const std::string& bmpPath, ImageInfo& imageInfo);
	};
}