From 7a7f5a677f5bddb571273c8f490ca88ca9653d67 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 월, 18 10월 2021 18:25:48 +0900
Subject: [PATCH] Ongoing90 #3684 CF AOI Review 전설비 Review History Defect이미지 클릭시 Offset 자동 계산 기능 추가

---
 ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp |   90 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp b/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp
index 20870db..d58cbe4 100644
--- a/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp
+++ b/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp
@@ -54,6 +54,11 @@
 CReveiwHistoryDlg::CReveiwHistoryDlg(CWnd* pParent /*=nullptr*/)
 	: CDialogEx(IDD_DLG_REVIEWHISTORY, pParent)
 	, m_nFileCount(0)
+	, m_nEditCamIdx(0)
+	, m_nEditScanIdx(0)
+	, m_dEditOffsetX(0)
+	, m_dEditOffsetY(0)
+	, m_strGantryIdx(_T(""))
 {
 	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
 
@@ -73,6 +78,10 @@
 	m_nImageCount = 0;
 	m_nCellCount = 0;
 	m_bAsending = FALSE;
+	/*< LYW 20211018 - #3684 ADD Start >*/
+	m_dCurDefectIdx = 0;
+	m_dCurDefectID = 0;
+	/*< LYW 20211018 - #3684 ADD End >*/
 
 	for (int i = 0; i < 105; i++)
 	{
@@ -97,6 +106,11 @@
 	DDX_Text(pDX, IDC_EDIT_FILE_COUNT, m_nFileCount);
 	DDX_Control(pDX, IDC_EDIT_FILE_COUNT, m_ctlFileCount);
 	DDX_Control(pDX, IDC_PROGRESS_LOAD, m_ctlProgress);
+	DDX_Text(pDX, IDC_EDIT_OFFSET_CAM_IDX, m_nEditCamIdx);
+	DDX_Text(pDX, IDC_EDIT_OFFSET_SCAN_IDX, m_nEditScanIdx);
+	DDX_Text(pDX, IDC_EDIT_OFFSET_X, m_dEditOffsetX);
+	DDX_Text(pDX, IDC_EDIT_OFFSET_Y, m_dEditOffsetY);
+	DDX_Text(pDX, IDC_EDIT_DFFSET_GANTRY_IDX, m_strGantryIdx);
 }
 
 BEGIN_MESSAGE_MAP(CReveiwHistoryDlg, CDialogEx)
@@ -109,6 +123,7 @@
 	ON_BN_CLICKED(IDC_BUTTON_MAPVIEW_FIT, &CReveiwHistoryDlg::OnBnClickedButtonMapviewFit)
 	ON_MESSAGE(UM_FORMMAP_DEFECTSELECT, OnMapDefectSelected)
 	ON_MESSAGE(UM_FORMMAP_DEFECTMOUSEOVER, OnMapDefectMouseOver)
+	ON_MESSAGE(UM_FORMMAP_IMAGEMOUSECLICK, OnImageClick)
 	ON_COMMAND(ID_OPTION_PATHSETTING, &CReveiwHistoryDlg::OnOptionPathsetting)
 	ON_COMMAND(ID_VIEW_ALLDEFECT, &CReveiwHistoryDlg::OnViewAlldefect)
 	ON_COMMAND(ID_VIEW_REVIEWDEFECT, &CReveiwHistoryDlg::OnViewReviewdefect)
@@ -121,6 +136,7 @@
 	ON_BN_CLICKED(IDC_CHK_REVIEW_DEFECT, &CReveiwHistoryDlg::OnClickedChkReviewDefect)
 	ON_BN_CLICKED(IDC_CHK_SINGLE, &CReveiwHistoryDlg::OnClickedChkSingle)
 	ON_EN_CHANGE(IDC_EDIT_FILE_COUNT, &CReveiwHistoryDlg::OnChangeEditFileCount)
+	ON_WM_KEYDOWN()
 END_MESSAGE_MAP()
 
 // CReveiwHistoryDlg 硫붿떆吏� 泥섎━湲�
@@ -738,7 +754,7 @@
 
 			return TRUE;
 		}
-		else if (NM_CLICK == pDispInfo->hdr.code)
+		else if (NM_CLICK == pDispInfo->hdr.code || LVN_ITEMCHANGING == pDispInfo->hdr.code)
 		{
 			if (pDispInfo->item.row == 0)
 			{
@@ -864,7 +880,7 @@
 
 			return TRUE;
 		}
-		else if (NM_CLICK == pDispInfo->hdr.code)
+		else if (NM_CLICK == pDispInfo->hdr.code || LVN_ITEMCHANGING == pDispInfo->hdr.code)
 		{
 			if (pDispInfo->item.row == 0)
 			{
@@ -1218,6 +1234,61 @@
 
 	return 0;
 }
+
+/*< LYW 20211018 - #3684 ADD Start >*/
+LRESULT CReveiwHistoryDlg::OnImageClick(WPARAM wParam, LPARAM lParam)
+{
+	CPathSettingDlg* lpDlg = CPathSettingDlg::GetMgr();
+	if (lpDlg == NULL) return 0;
+	
+	_akDefect			*pDefect;
+ 	pDefect = &m_Formation.m_vecDefects[m_dCurDefectIdx];
+	if (pDefect == NULL) return 0;
+
+	CPoint Point;
+	Point.x = GET_X_LPARAM(lParam);
+	Point.y = GET_Y_LPARAM(lParam);
+
+	int dOffsetDrectionX;
+	int dOffsetDrectionY;
+
+	if (lpDlg->m_comboDirectionX.GetCurSel() == 1) dOffsetDrectionX = -1;
+	else dOffsetDrectionX = 1;
+
+	if (lpDlg->m_comboDirectionY.GetCurSel() == 1) dOffsetDrectionY = -1;
+	else dOffsetDrectionY = 1;
+
+	if (pDefect->m_nDefectID == m_dCurDefectID)
+	{
+		m_nEditCamIdx = pDefect->m_nCameraID;
+		m_nEditScanIdx = pDefect->m_nScanIdx;
+		if (pDefect->m_nModelIdx == 0)
+		{
+			m_strGantryIdx = _T("Left");
+			m_dEditOffsetX = (double)(dOffsetDrectionX * (Point.x / 5)) / 1000;
+			m_dEditOffsetY = (double)-(dOffsetDrectionY * (Point.y / 5)) / 1000;
+		}
+		else if (pDefect->m_nModelIdx == 1)
+		{
+			m_strGantryIdx = _T("Right");
+			m_dEditOffsetX = (double)-(dOffsetDrectionX * (Point.x / 5)) / 1000;
+			m_dEditOffsetY = (double)-(dOffsetDrectionY * (Point.y / 5)) / 1000;
+		}
+		else AfxMessageBox(_T("寃먰듃由� �씤�뜳�뒪媛� 鍮꾩젙�긽 �엯�땲�떎."), MB_OK | MB_ICONWARNING);
+	}
+
+	else
+	{
+		if (IDOK == AfxMessageBox(_T("�씠誘몄� �씤�뜳�뒪媛� �씪移섑븯吏� �븡�뒿�땲�떎."), MB_OK | MB_ICONWARNING))
+		{
+			return 0;
+		}
+	}
+
+	UpdateData(FALSE);
+	return 0;
+}
+/*< LYW 20211018 - #3684 ADD End >*/
 
 LRESULT CReveiwHistoryDlg::OnMapDefectMouseOver(WPARAM wParam, LPARAM lParam)
 {
@@ -2021,6 +2092,13 @@
 		}
 	}
 	_akReviewList* pImageInfo = &m_Formation.m_vecImage[nIndex];
+	m_dCurDefectID = pImageInfo->m_nDefectID;
+ 	m_dCurDefectIdx = nIndex;
+// 	_akDefect			*pDefect;
+// 	pDefect = &m_Formation.m_vecDefects[nIndex];
+// 	m_dCurDefectCam = pDefect->m_nCameraID;
+// 	m_dCurDefectModuleIdx = pDefect->m_nModelIdx;
+// 	m_dCurDefectScan = pDefect->m_nScanIdx;
 	//紐� 踰덉㎏ �씤吏� �뜕吏꾨떎.
 
 	CString wekfjlwe = pImageInfo->m_strReviewImageName;
@@ -3828,3 +3906,11 @@
 	}
 	m_Formation.m_vecHeaderTemp.clear();
 }
+
+
+void CReveiwHistoryDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
+{
+	// TODO: �뿬湲곗뿉 硫붿떆吏� 泥섎━湲� 肄붾뱶瑜� 異붽� 諛�/�삉�뒗 湲곕낯媛믪쓣 �샇異쒗빀�땲�떎.
+
+	CDialogEx::OnKeyDown(nChar, nRepCnt, nFlags);
+}

--
Gitblit v1.9.3