#pragma once
|
|
|
// CFrameImg
|
#include <bitset>
|
#include "Global_Define.h"
|
#include "cv.h"
|
#include "GlassRecipe.h"
|
#include "HardwareSettings.h"
|
#include "Glass_Data.h"
|
|
using namespace std;
|
|
#define WM_AREA_ITEM_SELECT_CHANGE WM_USER + 0x18
|
#define WM_AREA_ITEM_MODIFY WM_USER + 0x19
|
#define WM_FRAME_IMG_MOUSE_DN WM_USER + 0x1A
|
|
|
enum eModeFrameImg{MODE_ZOOM_X=0,MODE_ZOOM_Y,MODE_PROFILE_X,MODE_PROFILE_Y,MODE_PROJECTION_X,MODE_PROJECTION_Y,MODE_SAVED_X,MODE_SAVED_Y
|
,MODE_DISTANCE_X,MODE_DISTANCE_Y,MODE_DIAGONAL,MODE_MARK_REG,MODE_MANIFY,MODE_AUTO_MEASURE,MODE_SHOW_MEASURE_LINE,MODE_SHOW_REF_LINE
|
,MODE_SHOW_SUB_LINE,MODE_MODIFY_BRUSH,MODE_SHOW_FRAM_RATE,MODE_COMPARE_PANEL,MODE_USER_DEFECT_AREA,MAX_DISPLAY_MODE,
|
};
|
typedef struct tagMANUAL_MEASURE
|
{
|
BOOL bStart;
|
BOOL bModifyStart;
|
BOOL bModifyEnd;
|
int nTextPos;
|
CPoint ptMeasureStart;
|
CPoint ptMeasureEnd;
|
|
}MANUAL_MEASURE;
|
|
typedef struct tagMARK_REG
|
{
|
BOOL bDown;
|
CPoint ptMark;
|
}MARK_REG;
|
|
class CFrameImg : public CWnd
|
{
|
DECLARE_DYNAMIC(CFrameImg)
|
|
public:
|
CFrameImg();
|
virtual ~CFrameImg();
|
|
protected:
|
afx_msg void OnPaint();
|
afx_msg void OnDestroy();
|
afx_msg void OnProfileCheckall();
|
afx_msg void OnProfileClearall();
|
afx_msg void OnProfileCurrentx();
|
afx_msg void OnProfileCurrenty();
|
afx_msg void OnProfileSavedx();
|
afx_msg void OnProfileSavedy();
|
afx_msg void OnProfileProjectionx();
|
afx_msg void OnProfileProjectiony();
|
afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
afx_msg void OnMeasureCheckall();
|
afx_msg void OnMeasureClearall();
|
afx_msg void OnMeasureDistancex();
|
afx_msg void OnMeasureDistancey();
|
afx_msg void OnMeasureDiagonal();
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
afx_msg void OnImageManify();
|
afx_msg void OnViewCheckall();
|
afx_msg void OnViewClearall();
|
afx_msg void OnViewShowMeasureLine();
|
afx_msg void OnViewShowRefLine();
|
afx_msg void OnViewShowSubLine();
|
afx_msg void OnImgmodifyDrawbrush();
|
DECLARE_MESSAGE_MAP()
|
|
public:
|
void SetEventWnd(HWND hWnd) {m_Wnd_Event = hWnd; }
|
void InitBitMap();
|
void SetImage(BYTE *pImg) {m_pBuffer = pImg; m_szTotBuffer=GetScanBufSize(m_nSide);}
|
void SetGlassData(CGlass_Data *pGlassData);
|
void SetSide(int nSide);
|
int GetSide(){return m_nSide;}
|
int GetSideCamID(int nSide);
|
int GetSideScanIdx(int nSide);
|
void SetImgSize(long nX, long nY) {m_szImg.cx =nX; m_szImg.cy = nY;}
|
void SetMode(int nMode);
|
BOOL GetMode(int nMode);
|
void ResetMode(int nMode);
|
void SetRecipe(CHardwareSettings *pHW,CGlassRecipe *pRecipe);
|
BYTE* GetImage() {return m_pBuffer;}
|
double GetZoomData() {return m_dZoom;}
|
void SetZommMode(double dZoom) {m_dZoom = dZoom;}
|
BOOL IsAutoMeasureMode() {return m_bitModeDisplay[MODE_AUTO_MEASURE];}
|
void ChangeRect();
|
|
void DrawProfile(CDC &dc ,int nMode, CPoint pt);
|
void DrawProfileSaved(CDC &dc ,int nMode, CPoint pt);
|
void DrawMagnify(CDC &dc);
|
void DrawManualMeasure(CDC &dc);
|
void DrawProcessData(CDC &dc);
|
void ViewUpdate(int nOpt = 0);
|
void DrawTest(CDC &dc);
|
//void DrawExpectionAear(CDC &dc);
|
void Draw_Rectangle(CDC &dc,CRect rc, int nMode = 0);
|
void Draw_TrakerRect(CRect rcTracker,CDC &dc);
|
void Draw_CompareRect(CRect rcCompareArea, CDC &dc);
|
void DrawDefect(CDC &dc);
|
void DrawMeasureLine(CDC &dc,CvPoint2D32f *ptMark);
|
|
void DrawStartEndLine(CDC &dc);
|
void DrawReferenceLine(CDC &dc,CvPoint2D32f *ptMark,BOOL *bMark,int nHafMarkW,int nHafMarkH);
|
void DrawCorner(CDC &dc,CvPoint2D32f *ptMark);
|
//void DrawInspectArea(CDC &dc);
|
|
// Tracker Function
|
void SetTrackerModify(BOOL bAlbe) { m_bModify = bAlbe;}
|
void TrackerInsert();
|
void SetTrackerPos(int nTrackerMode,CRect * pRc,CPoint pt , int nMode = 0);
|
BOOL SetAcitveTracker(EXECPTION_AREA *pTracker,BOOL bReDraw = TRUE);
|
int ChkTrackerAear(CRect &rcTracker,CPoint pt);
|
//LRESULT OnSelectExeptionItem(WPARAM wParam, LPARAM lParam);
|
CRect GetMartRect();
|
void SetMarkRect(CRect rc);
|
CRect GetCompareRect(void);
|
void SetMainInterface(IViewInterface2Parent *pI2M){m_pI2M=pI2M;}
|
|
CRect GetMeasureRect();
|
|
private:
|
void GetResolution(double &dH,double &dV);
|
CSize GetScanBufSize(int iSide);
|
|
private:
|
HWND m_Wnd_Event;
|
BOOL m_bModify;
|
BOOL m_bMouseLDown;
|
BOOL m_bVCRDraw;
|
BYTE *m_pBuffer;
|
CSize m_szTotBuffer;
|
BITMAPINFO *m_pBmInfo;
|
double m_dZoom;
|
int m_nModeTracker;
|
CPoint m_ptOldMouse;
|
int m_nCam;
|
int m_nSide;
|
SIZE m_szImg;
|
SIZE m_szMark;
|
MANUAL_MEASURE m_ManualMeausre;
|
CPoint m_ptMouseSaved; // Profile Save ±â´É½Ã »ç¿ë
|
|
IViewInterface2Parent *m_pI2M;
|
bitset<MAX_DISPLAY_MODE> m_bitModeDisplay; // È¸é ¸ðµå bit
|
CRect m_rcROI; // ÇöÁ¦ º¸¿©Áö°í ÀÖ´Â ¿µ¿ª
|
CFont m_sideFont;
|
CImage m_ImageMagnify;
|
EXECPTION_AREA m_refMark;
|
EXECPTION_AREA *m_pCompareArea;
|
_ST_GDI_ITEM m_st_GdiItem;
|
|
CGlass_Data * m_pGlassData;
|
CHardwareSettings* m_pHardware;
|
CGlassRecipe* m_pRecipe;
|
|
public:
|
CPoint m_ptMouseCurrent; // ÇöÀç ¸¶¿ì½º ÁÂÇ¥
|
EXECPTION_AREA *m_pTracker;
|
CRect m_WndRect;
|
POINT m_ptOrg; // Àüü À̹ÌÁö¿¡¼ Display ½ÃÀÛ ÁÂÇ¥
|
|
int m_nModeTrackerVCR;
|
CPoint m_ptOldMouseVCR;
|
};
|