/**************************************************************************************************
|
Copyright 2020-2022 ÉîÛÚÊаËÁãÁªºÏ×°±¸ÓÐÏÞ¹«Ë¾
|
All rights reserved.
|
|
Author: zhenbin,jiang
|
Date: 2021-03-23
|
Version: V1.0.0
|
|
Description:
|
±¾Ä£¿éÖ÷ÒªÊÇÏÔʾ»ùÀ࣬°üÀ¨´´½¨ROI,±à¼ROIµÈ
|
|
***************************************************************************************************/
|
#ifndef I_CLS_DISPLAY_H
|
#define I_CLS_DISPLAY_H
|
|
typedef enum DISP_TYPE
|
{
|
DISP_OBJECT = 0, //ÍⲿÏÔʾµÄÌØÕ÷£¬ ÈçDispObj();
|
DISP_REGION = 1, //ROIÇøÓò£¬ ÈçDispRegion();
|
DISP_CROSS = 2, //ÏÔʾʮ×Ö£¬ÈçDispCross()
|
DISP_SELECT = 3 //ÏÔʾÐýת£¬ ÈçDispSelect()
|
}DISP_TYPE;
|
|
typedef enum BOOUNION_MOUSE_EVENT
|
{
|
NO_EVENT = -1, //ÎÞʼþ
|
LEFT_MOUSE_BUTTON_DOWN = 0, //×ó¼ü°´ÏÂ
|
LEFT_MOUSE_BUTTON_UP = 1, //×ó¼ü°´ÉÏ
|
LEFT_MOUSE_BUTTON_DOUBLE = 2, //×ó¼üË«»÷
|
RIGHT_MOUSE_BUTTON_DOWN = 3, //ÓÒ¼ü°´ÏÂ
|
RIGHT_MOUSE_BUTTON_UP = 4, //ÓÒ¼ü°´ÉÏ
|
WHEEL_MOUSE_BUTTON = 5, //¹ö¶¯Ê¼þ
|
MOUSE_BUTTON_MOVE = 6, //Êó±êÒÆ¶¯
|
DRAG_SCROLL_MOVE = 7 //Í϶¯Ê¼þ
|
}BOOUNION_MOUSE_EVENT;
|
|
typedef struct _InfRegion
|
{
|
int tyShape; //1ÊǾØÐÎ1£»2ÊǾØÐÎ2£»4ÊÇÔ²ÐΣ»8ÊÇÈÎÒâÐÎ×´
|
std::vector<double> vInfPos; //λÖÃÐÅÏ¢
|
}InfRegion;
|
|
//ÏÔʾλÖᢱÈÀý¡¢ÏñËØÖµ
|
typedef std::function<void(int msgEvent, int x, int y, double rate, int pixel)> ImageOperateCallback;
|
class IClsDisplay
|
{
|
public:
|
virtual ~IClsDisplay() {};
|
|
//0. ´´½¨´°Ìå
|
virtual void OpenWindow(__int64 id, int width, int height) = 0;
|
|
//1. ×Ô¶¯´°Ìå´óС
|
virtual void AutoWindowSize(int width, int height) = 0;
|
|
//2. ÉèÖÃÀàÐÍ
|
virtual void SetShapeType(int shape) = 0;
|
|
//3. ÏÔʾ¶ÔÏó
|
virtual void DispObj(HalconCpp::HObject &hObject) = 0;
|
|
//4. ÇåÀí´°Ìå
|
virtual void ClearWindow(void) = 0;
|
|
//5. ÏÔʾ·¶Î§
|
virtual void SetPart(int x1, int y1, int x2, int y2) = 0;
|
|
//6. ÉèÖÃ×ÖÌå
|
virtual void SetFont(int font) = 0;
|
|
//7. ÏÔʾ×Ö·û
|
virtual void DispMessage(int x, int y, std::string str, std::string strColor, std::string strBox) = 0;
|
|
//8. »Í¼
|
virtual void DrawRegion(void) = 0;
|
|
//9. ±à¼ÇøÓò
|
virtual void EditRegion(void) = 0;
|
|
//10. ÏÔʾͼÏñ
|
virtual void DispImage(void) = 0;
|
|
//11. ÏÔʾROIÇøÓò
|
virtual void DispRegion(void) = 0;
|
|
//12. ÏÔʾÆÁ±ÎÇøÓò
|
virtual void DispCross(void) = 0;
|
|
//13. ´°ÌåÊÇ·ñ´æÔÚ
|
virtual bool WindowIsExist(void) = 0;
|
|
//14. ¹Ø±Õ´°Ìå
|
virtual void CloseWindow(void) = 0;
|
|
//15. ¼ÓÔØÏÔʾͼ
|
virtual void GenImage(const unsigned char* data, int imgType, int width, int height) = 0;
|
|
//16. »ñȡͼÏñ
|
virtual HalconCpp::HObject& GetImage(void) = 0;
|
|
//17. »ñÈ¡ÇøÓò
|
virtual HalconCpp::HObject& GetRegion(void) = 0;
|
|
//18. »ñȡѡÔñÇøÓò
|
virtual HalconCpp::HObject& GetSelect(void) = 0;
|
|
//19. ÉèÖÃͼÏñ
|
virtual void SetImage(HalconCpp::HObject &hObject) = 0;
|
|
//20. ÉèÖÃÇøÓò
|
virtual void SetRegion(HalconCpp::HObject &hRegion) = 0;
|
|
//21. ÉèÖÃÑ¡ÔñÇøÓò
|
virtual void SetSelect(HalconCpp::HObject &hRegion) = 0;
|
|
//22. ÉèÖÃÑÕÉ«
|
virtual void SetColor(std::string color, DISP_TYPE disp) = 0;
|
|
//23. ÉèÖÃģʽ
|
virtual void SetDraw(std::string draw, DISP_TYPE disp) = 0;
|
|
//24. ÏÔʾѡÔñ
|
virtual void DispSelect(void) = 0;
|
|
//25. ÉèÖõ±Ç°µÄ²Ù×÷״̬
|
virtual void SetOperFlag(OPER_FLAG flag) = 0;
|
|
//26 »Øµ÷º¯Êý
|
virtual void SetOperatorCallback(ImageOperateCallback callback) = 0;
|
|
//27. »ñȡʮ×Ö
|
virtual HalconCpp::HObject& GetCross(void) = 0;
|
|
//28. ÉèÖÃÊ®×Ö
|
virtual void SetCross(HalconCpp::HObject &cross) = 0;
|
|
//29. ÉèÖñ³¾°ÑÕÉ«
|
virtual void SetBackgroundColor(std::string strColor) = 0;
|
|
//30. ÉèÖÃÏÔʾÏßµÄÀàÐÍ. <1ΪʵÏߣ¬ ·ñÔòΪÐéÏß
|
virtual void SetLineStyle(int lineStyle, DISP_TYPE disp) = 0;
|
|
//31. ͼÏñ×ø±êת»»Îª´°ÌåµÄ×ø±ê
|
virtual Point2I PixelToClient(Point2I pos) = 0;
|
|
//32. ˢв»Ê¹ÄÜ
|
virtual void UnableFlush(void) = 0;
|
|
//33. Ë¢ÐÂʹÄÜ
|
virtual void AbleFlush(void) = 0;
|
|
//34. µ±Ç°µÄ±à¼×´Ì¬
|
virtual OPER_FLAG GetOperMode(void) = 0;
|
|
//35. ´°ÌåID
|
virtual int GetDisplayID(void) = 0;
|
|
//36. λÖÃÐÅÏ¢
|
virtual InfRegion GetInfRegion(void) = 0;
|
|
//37. ÉèÖÃλÖÃÐÅÏ¢
|
virtual void SetInfRegion(InfRegion inf) = 0;
|
|
//38. ÉèÖÃ×óÉ϶¨µã×ø±ê
|
virtual void SetLtPoint(int xPos, int yPos) = 0;
|
|
//39. »ñÈ¡×óÉϵãµÄ×ø±ê
|
virtual Point2I GetLtPoint(void) = 0;
|
};
|
|
#endif
|