/************************************************************************************************** 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 vInfPos; //λÖÃÐÅÏ¢ }InfRegion; //ÏÔʾλÖᢱÈÀý¡¢ÏñËØÖµ typedef std::function 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 HalconCpp::HTuple 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