#pragma once #include "akGraph/akGraphBasic3.h" #include "akDefectFormation.h" #define UM_FORMMAP_DEFECTMOUSEOVER WM_USER+0x2001 #define UM_FORMMAP_DEFECTSELECT WM_USER+0x2002 /*< LYW 20211028 - #3684 ADD Start >*/ #define UM_WARNING_OFFSET WM_USER+0x2004 //Thread msg Map #define UM_THREAD_WARNING_OFFSET WM_USER + 0x1001 /*< LYW 20211028 - #3684 ADD End >*/ class CakFormationMap : public CakGraphBasic3 { public: CakFormationMap(); virtual ~CakFormationMap(); public: void clear() { m_pMouseOveredFormation = NULL; m_pSelectedFormation = NULL; m_pMouseOveredDefect = NULL; m_pSelectedDefect = NULL; }; virtual void RenderEnd(Graphics* grfx, CDC* pDC); virtual void RenderSeries(Graphics* grfx, CDC* pDC); virtual void SetAutoScale(); virtual void SetResize(); virtual void OnKeyInput(int key, int mode); virtual void OnMouseInput(akMouseEvent mouseevent, CPoint point); _akDefect* findDefect(double nPosX, double nPosY); _akFormation* findFormation(double nPosX, double nPosY); void setSelectDefect(int nDefectID); void setSelectForm(int nFormID); void AddCellData(); void AddCell(); public: BOOL m_bShowCell; BOOL m_bShowGroupIndex; BOOL m_bShowGroupLine; BOOL m_bShowDefectOutLine; BOOL m_bShowDefectColorType; double m_dGlassSizeWidth; double m_dGlassSizeHeight; std::vector m_vecCellRect; std::vector m_vecTempCellRect; akDefectFormation* m_pDefectFormation; _DefectDisplayOption* m_pDefectDisplayOption; protected: void renderGlass(CDC* pDC); void renderCell(CDC* pDC); void renderDefects(CDC* pDC); void renderDefectsPath(CDC* pDC); void renderFormations(CDC* pDC); void renderMouseoverInfos(CDC* pDC); protected: _akFormation* m_pMouseOveredFormation; _akFormation* m_pSelectedFormation; _akDefect* m_pMouseOveredDefect; _akDefect* m_pSelectedDefect; };