From aa2c9d14b1b4058639d938ef7f943c7c7fc7c210 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 14 八月 2025 14:57:08 +0800
Subject: [PATCH] 1. 离线全部执行和在线执行时可以选择启用或禁用侧面检功能

---
 EdgeInspector_App/Recipe/HardwareSettings.cpp |  342 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 197 insertions(+), 145 deletions(-)

diff --git a/EdgeInspector_App/Recipe/HardwareSettings.cpp b/EdgeInspector_App/Recipe/HardwareSettings.cpp
index 2a5f35c..f5f9d15 100644
--- a/EdgeInspector_App/Recipe/HardwareSettings.cpp
+++ b/EdgeInspector_App/Recipe/HardwareSettings.cpp
@@ -1,4 +1,4 @@
-#include "StdAfx.h"
+锘�#include "StdAfx.h"
 #include "HardwareSettings.h"
 
 //////////////////////////////////////////////////////////////////////////
@@ -1034,6 +1034,9 @@
 		// ly,2025.07.10
 		m_bSaveResultByHour = rhs.m_bSaveResultByHour;
 
+		// ly,2025.08.14
+		m_bUseRipInspection = rhs.m_bUseRipInspection;
+
 		// ly,2025.07.07
 		m_bEnableAutoCopy = rhs.m_bEnableAutoCopy;
 		m_strCopyToolExePath = rhs.m_strCopyToolExePath;
@@ -1138,84 +1141,97 @@
 
 BOOL CHardwareSettings::SetCameraCount(int nCameraCount,int nScanCount)
 {
-	CCameraSettings *ptmpSet = NULL;
-	int				nBackCamCnt = 0,nBackScanCnt = 0;
-	int				iLoop;
-
-	if(m_pCameraSettings != NULL)
-	{
-		if((m_nCameraCount*m_nScanCount) > 0)
-		{
-			ptmpSet = new CCameraSettings[m_nCameraCount*m_nScanCount];
-
-			for(iLoop=0;iLoop<m_nCameraCount*m_nScanCount;iLoop++)
-			{
-				ptmpSet[iLoop] = m_pCameraSettings[iLoop];
-			}
-			nBackCamCnt = m_nCameraCount;
-			nBackScanCnt = m_nScanCount;
-		}
-		delete[] m_pCameraSettings, m_pCameraSettings=NULL;		
-	}
-
-	m_nCameraCount = nCameraCount;
-	m_nScanCount = nScanCount;			
-
-	if(m_nCameraCount <= 0 || m_nScanCount <= 0)
+	if (nCameraCount <= 0 || nScanCount <= 0) {
 		return FALSE;
+	}
 
-	m_pCameraSettings = new CCameraSettings[m_nCameraCount*m_nScanCount];
+	// 鍏堜繚瀛樻棫鐨勭浉鏈哄拰鎵弿鏁�
+	static int nOldCameraCount = m_nCameraCount;
+	static int nOldScanCount = m_nScanCount;
 
-	int			iCam,iScan;
-
-	iLoop=0;
-	for(iCam=0;iCam<m_nCameraCount;iCam++)
-	{		
-		for(iScan=0;iScan<m_nScanCount;iScan++)
-		{
-			m_pCameraSettings[iLoop].m_iCamera = iCam;
-			m_pCameraSettings[iLoop].m_iScan = iScan;			
-			iLoop++;
+	// 淇濆瓨鏃ц缃暟鎹�
+	CCameraSettings* pOldSettings = nullptr;
+	if (m_pCameraSettings != nullptr && nOldCameraCount > 0 && nOldScanCount > 0)
+	{
+		pOldSettings = new CCameraSettings[nOldCameraCount * nOldScanCount];
+		for (int i = 0; i < nOldCameraCount * nOldScanCount; ++i) {
+			pOldSettings[i] = m_pCameraSettings[i];
 		}
 	}
 
-	if(ptmpSet != NULL)
-	{
-		for(iLoop=0;iLoop<nBackCamCnt*nBackScanCnt;iLoop++)
-		{
-			SetCameraSettings(&ptmpSet[iLoop]);			
-		}	
-		delete[] ptmpSet, ptmpSet=NULL;
+	// 鏇存柊鎴愬憳鍙橀噺
+	m_nCameraCount = nCameraCount;
+	m_nScanCount = nScanCount;
+
+	// 閲嶆柊鍒嗛厤鏂扮粨鏋�
+	int nNewCount = m_nCameraCount * m_nScanCount;
+	int nOldCount = nOldCameraCount * nOldScanCount;
+	if (m_pCameraSettings != nullptr) {
+		delete[] m_pCameraSettings;
+		m_pCameraSettings = nullptr;
 	}
+	m_pCameraSettings = new CCameraSettings[m_nCameraCount * m_nScanCount];
+
+	// 鍒濆鍖栨柊缁撴瀯
+	int iIndex = 0;
+	for (int iCam = 0; iCam < m_nCameraCount; ++iCam) {
+		for (int iScan = 0; iScan < m_nScanCount; ++iScan, ++iIndex) {
+			m_pCameraSettings[iIndex].m_iCamera = iCam;
+			m_pCameraSettings[iIndex].m_iScan = iScan;
+		}
+	}
+
+	// 鎷疯礉鍥炴棫璁剧疆
+	if (pOldSettings != nullptr) {
+		for (int iCam = 0; iCam < nOldCameraCount; ++iCam) {
+			for (int iScan = 0; iScan < nOldScanCount; ++iScan) {
+				if (iCam < m_nCameraCount && iScan < m_nScanCount) {
+					int nNewIndex = iCam * m_nScanCount + iScan;
+					int nOldIndex = iCam * nOldScanCount + iScan;
+
+					if (nNewIndex < nNewCount && nOldIndex < nOldCount)
+					{
+						SetCameraSettings(&pOldSettings[nOldIndex]);
+					}
+				}
+			}
+		}
+		delete[] pOldSettings;
+	}
+
+	// 鏇存柊鏃х殑鐩告満鍜屾壂鎻忔暟
+	nOldCameraCount = m_nCameraCount;
+	nOldScanCount = m_nScanCount;
 
 	return TRUE;
 }
 
-CCameraSettings	*CHardwareSettings::GetCameraSettings(int iCamera,int iScan)
+CCameraSettings* CHardwareSettings::GetCameraSettings(int iCamera,int iScan)
 {
-	if(iCamera >= m_nCameraCount || iScan >= m_nScanCount 
-		|| m_nCameraCount <= 0 || m_nScanCount <= 0)
-		return NULL;
-
-	for(int iLoop=0;iLoop<m_nCameraCount*m_nScanCount;iLoop++)
-	{
-		if(m_pCameraSettings[iLoop].m_iCamera == iCamera && m_pCameraSettings[iLoop].m_iScan == iScan)
-			return &m_pCameraSettings[iLoop];
+	if (nullptr == m_pCameraSettings || iCamera < 0 || iScan < 0) {
+		return nullptr;
 	}
 
-	return NULL;
+	if (iCamera >= m_nCameraCount || iScan >= m_nScanCount) {
+		return nullptr;
+	}
+
+	int nIndex = iCamera * m_nScanCount + iScan;
+	return &m_pCameraSettings[nIndex];
 }
 
 BOOL CHardwareSettings::SetCameraSettings(CCameraSettings *pCamera)
 {
-	if(pCamera == NULL || m_nCameraCount <= 0 || m_nScanCount <= 0)
+	if (pCamera == nullptr || m_pCameraSettings == nullptr) {
 		return FALSE;
+	}
 
-	CCameraSettings	*pOrgCam = GetCameraSettings(pCamera->m_iCamera,pCamera->m_iScan);
-	if(pOrgCam == NULL)
+	CCameraSettings* pTarget = GetCameraSettings(pCamera->m_iCamera, pCamera->m_iScan);
+	if (pTarget == nullptr) {
 		return FALSE;
+	}
 
-	*pOrgCam = *pCamera;
+	*pTarget = *pCamera;
 
 	return TRUE;
 }
@@ -1268,6 +1284,10 @@
 	// ly,2025.07.10
 	else if ((void*)&m_bSaveResultByHour == pValue)
 		str = _T("SAVE_RESULT_BY_HOUR");
+
+	// ly,2025.08.14
+	else if ((void*)&m_bUseRipInspection == pValue)
+		str = _T("USE_RIP_INSPECTION");
 
 	// ly,2025.07.07
 	else if ((void*)&m_bEnableAutoCopy == pValue)
@@ -1438,6 +1458,12 @@
 	if (str.IsEmpty() == TRUE)
 		return FALSE;
 	BasicInfoFile.GetItemValue((TCHAR*)(LPCTSTR)str, m_bSaveResultByHour, FALSE);
+
+	// ly,2025.08.14
+	str = GetFileString((void*)&m_bUseRipInspection);
+	if (str.IsEmpty() == TRUE)
+		return FALSE;
+	BasicInfoFile.GetItemValue((TCHAR*)(LPCTSTR)str, m_bUseRipInspection, FALSE);
 
 	// ly,2025.07.07
 	str = GetFileString((void*)&m_bEnableAutoCopy);
@@ -1619,6 +1645,12 @@
 		return FALSE;
 	Register.GetItemValue((TCHAR*)(LPCTSTR)str, m_bSaveResultByHour, FALSE);
 
+	// ly,2025.08.14
+	str = GetFileString((void*)&m_bUseRipInspection);
+	if (str.IsEmpty() == TRUE)
+		return FALSE;
+	Register.GetItemValue((TCHAR*)(LPCTSTR)str, m_bUseRipInspection, FALSE);
+
 	// ly,2025.07.07
 	str = GetFileString((void*)&m_bEnableAutoCopy);
 	if (str.IsEmpty() == TRUE)
@@ -1782,6 +1814,12 @@
 		return FALSE;
 	Register.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bSaveResultByHour);
 
+	// ly,2025.08.14
+	str = GetFileString((void*)&m_bUseRipInspection);
+	if (str.IsEmpty() == TRUE)
+		return FALSE;
+	Register.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bUseRipInspection);
+
 	// ly,2025.07.07
 	str = GetFileString((void*)&m_bEnableAutoCopy);
 	if (str.IsEmpty() == TRUE)
@@ -1813,33 +1851,39 @@
 
 BOOL CHardwareSettings::WriteHardwareSettingsFile(CString strFilePath)
 {
-	CConfig		BasicInfoFile;
-	CString				str;
-	int					iCam,iScan,iLight,iLoop;	
+	g_pLog->DisplayMessage(_T("HWSettings Start writing hardware settings to file: %s"), strFilePath);
 
-	if(BasicInfoFile.SetRegiConfig(NULL, NULL, (TCHAR*)(LPCTSTR)strFilePath, FileMap_Mode) == FALSE)
-	{
+	int	iCam, iScan, iLight, iLoop;
+
+	CConfig	BasicInfoFile;
+	if(BasicInfoFile.SetRegiConfig(NULL, NULL, (TCHAR*)(LPCTSTR)strFilePath, FileMap_Mode) == FALSE) {
 		CFile File;
-		if (!File.Open((TCHAR*)(LPCTSTR)strFilePath, CFile::modeCreate))
-		{			
+		if (!File.Open((TCHAR*)(LPCTSTR)strFilePath, CFile::modeCreate)) {
+			DWORD dwErr = GetLastError();
+			g_pLog->DisplayMessage(_T("HWSettings failed | Path=%s | Error=%lu"), strFilePath, dwErr);
 			return FALSE;
 		}
 		File.Close();
 	}
 
+	CString	str;
 	str = GetFileString((void *)&m_nCameraCount);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
+
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nCameraCount);
 
 	str = GetFileString((void *)&m_nScanCount);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nScanCount);	
 
 	str = GetFileString((void *)&m_nBoardType);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nBoardType);	
 	
 	// 	str = GetFileString((void *)&m_dOneScanTime);
@@ -1848,198 +1892,206 @@
 	// 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_dOneScanTime);	
 
 	str = GetFileString((void *)&m_strMachineName);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
-	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strMachineName);	
+	}
+	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strMachineName);
 
 	str = GetFileString((void *)&m_strLineID);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
+
 		return FALSE;
-	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strLineID);	
+	}
+	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strLineID);
 
 	str = GetFileString((void *)&m_nPLCSignalRetry);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nPLCSignalRetry);	
 
 	str = GetFileString((void *)&m_bInsDirReverse);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bInsDirReverse);
 
 	str = GetFileString((void *)&m_bUseColorVisual);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bUseColorVisual);
 
 	str = GetFileString((void *)&m_nSaveImageQuality);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nSaveImageQuality);	
 
-	if(m_pCameraSettings != NULL)
-	{
+	if (m_pCameraSettings != NULL) {
 		iLoop = 0;
-		for(iCam=0;iCam<m_nCameraCount;iCam++)
-		{
-			for(iScan=0;iScan<m_nScanCount;iScan++)
-			{
-				m_pCameraSettings[iLoop].WriteHardwareSettingsFile(&BasicInfoFile);	
+		for (iCam = 0; iCam < m_nCameraCount; iCam++) {
+			for (iScan = 0; iScan < m_nScanCount; iScan++) {
+				m_pCameraSettings[iLoop].WriteHardwareSettingsFile(&BasicInfoFile);
 				iLoop++;
 			}
 		}
 	}
 
 	str = GetFileString((void *)&m_nLightCount_Trans);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nLightCount_Trans);	
 
 	str = GetFileString((void *)&m_nLightCount_Reflect);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nLightCount_Reflect);
 
 	str = GetFileString((void *)&m_nFolderRemoveDay);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nFolderRemoveDay);
 
-	if(m_pLightSettings != NULL)
-	{		
-		for(iLight=0;iLight<m_nLightCount_Trans+m_nLightCount_Reflect;iLight++)
-		{
+	if (m_pLightSettings != NULL) {
+		for (iLight = 0; iLight < m_nLightCount_Trans + m_nLightCount_Reflect; iLight++) {
 			m_pLightSettings[iLight].WriteHardwareSettingsFile(&BasicInfoFile);
-		}		
+		}
 	}
 
 	m_PLCSettings.WriteHardwareSettingsFile(&BasicInfoFile);
-
 	m_SoftWareSettings.WriteHardwareSettingsFile(&BasicInfoFile);
 
-
 	str = GetFileString((void *)&m_bUseFreerun);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(int) m_bUseFreerun);
 
 	str = GetFileString((void *)&m_nFreerunPeriod);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nFreerunPeriod);
 
 	str = GetFileString((void *)&m_nFreerunExposureTime);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nFreerunExposureTime);
 
 	str = GetFileString((void *)&m_bUse_MvsolTriggerControl);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bUse_MvsolTriggerControl);
 
 	str = GetFileString((void *)&m_nPort_MvsolTriggerControl);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nPort_MvsolTriggerControl);
 
 	str = GetFileString((void *)&m_bUse_SaveDebugImage);
-	if(str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bUse_SaveDebugImage);
 
 	// ly,2025.07.10
 	str = GetFileString((void*)&m_bSaveResultByHour);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bSaveResultByHour);
+
+	// ly,2025.08.14
+	str = GetFileString((void*)&m_bUseRipInspection);
+	if (str.IsEmpty() == TRUE) {
+		return FALSE;
+	}
+	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bUseRipInspection);
 
 	// ly,2025.07.07
 	str = GetFileString((void*)&m_bEnableAutoCopy);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bEnableAutoCopy);
+
 	str = GetFileString((void*)&m_strCopyToolExePath);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strCopyToolExePath);
+
 	str = GetFileString((void*)&m_strCopyToolConfigPath);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strCopyToolConfigPath);
+
 	str = GetFileString((void*)&m_bEnableAutoDelete);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bEnableAutoDelete);
+
 	str = GetFileString((void*)&m_strDeleteToolExePath);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
+	}
+
 	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolExePath);
 	str = GetFileString((void*)&m_strDeleteToolConfigPath);
-	if (str.IsEmpty() == TRUE)
+	if (str.IsEmpty() == TRUE) {
 		return FALSE;
-	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath);
+	}
 
+	BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath);
 	BasicInfoFile.WriteToFile();
+
+	g_pLog->DisplayMessage(_T("HWSettings Finished writing hardware settings file: %s"), strFilePath);
 
 	return TRUE;
 }
 
-
 int CHardwareSettings::GetScanToDimension(DimensionDir eDir)
 {
-	int			iScan,iFindScan;
-	int			iCam;
-	CCameraSettings *pCamera;
-
-	iFindScan = -1;
-	for(iCam=0;iCam<GetCameraCount();iCam++)
-	{
-		for(iScan=0;iScan<GetScanCount();iScan++)
-		{
-			pCamera = GetCameraSettings(iCam,iScan);
-			if(pCamera == NULL)
-				continue;
-
-			if(pCamera->m_eDimension == eDir)
-			{
-				iFindScan = iScan;
-				break;
+	for (int iCam = 0; iCam < GetCameraCount(); ++iCam) {
+		for (int iScan = 0; iScan < GetScanCount(); ++iScan) {
+			CCameraSettings* pCamera = GetCameraSettings(iCam, iScan);
+			if (pCamera != nullptr && pCamera->m_eDimension == eDir) {
+				return iScan;
 			}
 		}
-
-		if(iFindScan != -1)
-			break;
 	}
-	return iFindScan;
+	return -1;
 }
 
-CAMERA_SCANDIR CHardwareSettings::GetScanToScanDir(int iCam,int iScan)
+CAMERA_SCANDIR CHardwareSettings::GetScanToScanDir(int iCam, int iScan)
 {
-	CCameraSettings *pCamera;
-
-	pCamera = GetCameraSettings(iCam,iScan);
-	if(pCamera == NULL)
+	CCameraSettings *pCamera = GetCameraSettings(iCam, iScan);
+	if (pCamera == nullptr) {
 		return SCANGLASS_NONE;
+	}
 
 	return pCamera->m_eScanDir;
 }
 
 int	CHardwareSettings::GetCameraIndexToDimension(DimensionDir eDir)
 {
-	CCameraSettings *pCamera;
-	int			iCam,iScan;
+	if (m_pCameraSettings == nullptr) {
+		return -1;
+	}
 
-	for(iCam=0;iCam<GetCameraCount();iCam++)
-	{
-		for(iScan=0;iScan<GetScanCount();iScan++)
-		{
-			pCamera = GetCameraSettings(iCam,iScan);
-			if(pCamera == NULL)
-				continue;
-
-			if(pCamera->m_eDimension == eDir)
-			{
+	for (int iCam = 0; iCam < GetCameraCount(); ++iCam) {
+		for (int iScan = 0; iScan < GetScanCount(); ++iScan) {
+			CCameraSettings* pCamera = GetCameraSettings(iCam, iScan);
+			if (pCamera && pCamera->m_eDimension == eDir) {
 				return iCam;
 			}
 		}

--
Gitblit v1.9.3