// Defect.cpp: implementation of the CInspectDefect class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "InspectDefect.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// //edit by hik //µðÆåÆ® Á¤ÀÇ CLASS CInspectDefect::CInspectDefect() { ResetDefect(); } CInspectDefect::~CInspectDefect() { } // Do not edit the following lines, which are needed by ClassWizard. #if 0 BEGIN_MESSAGE_MAP(CInspectDefect, CObject) //{{AFX_MSG_MAP(CInspectDefect) //}}AFX_MSG_MAP END_MESSAGE_MAP() #endif // 0 void CInspectDefect::ResetDefect() { m_bJudgeDefect = FALSE; m_nCameraIP = -1; m_nCameraID = -1; m_nScanIdx = -1; m_nDir = -1; m_nDefectIdx = -1; m_nPixelConv = 0; m_nPixelScan = 0; m_nPixelSize = 0; m_sPixelWidth = 0; m_sPixelHeight = 0; m_nDefectRScale = 0; m_nLevelSrcMin = 0; m_nLevelSrcMax = 0; m_nLevelSrcAvg = 0; m_nLevelRefMin = 0; m_nLevelRefMax = 0; m_nLevelRefAvg = 0; m_nLevelDiffMin = 0; m_nLevelDiffMax = 0; m_nLevelDiffAvg = 0; m_nProfileIdx = 0; m_sThreshold = 0; m_sDefectPeak = 0; m_sDefectType = 0; m_nPixelGlassStart = 0; m_sDefectLoc = 0; m_sSplineLoc = -1; m_dwTickCount = 0; m_nUMOriginX = -1; m_nUMOriginY = -1; m_nUMSizeX = 0; m_nUMSizeY = 0; m_nUMSize = 0; m_nSideLoc = 0; m_nCameraDir = 0; m_strDefectPath.Empty(); } CInspectDefect::CInspectDefect(const CInspectDefect& rhs) { if (this != &rhs) { m_nGlassDefectIdx = rhs.m_nGlassDefectIdx; m_nProfileIdx = rhs.m_nProfileIdx; m_nCameraID = rhs.m_nCameraID; m_nScanIdx = rhs.m_nScanIdx; m_nDir = rhs.m_nDir; m_nDefectIdx = rhs.m_nDefectIdx; m_nPixelConv = rhs.m_nPixelConv; m_nPixelScan = rhs.m_nPixelScan; m_nPixelSize = rhs.m_nPixelSize; m_sPixelWidth = rhs.m_sPixelWidth; m_sPixelHeight = rhs.m_sPixelHeight; m_nDefectRScale = rhs.m_nDefectRScale; m_nLevelSrcMin = rhs.m_nLevelSrcMin; m_nLevelSrcMax = rhs.m_nLevelSrcMax; m_nLevelSrcAvg = rhs.m_nLevelSrcAvg; m_nLevelRefMin = rhs.m_nLevelRefMin; m_nLevelRefMax = rhs.m_nLevelRefMax; m_nLevelRefAvg = rhs.m_nLevelRefAvg; m_nLevelDiffMin = rhs.m_nLevelDiffMin; m_nLevelDiffMax = rhs.m_nLevelDiffMax; m_nLevelDiffAvg = rhs.m_nLevelDiffAvg; m_nPixelGlassStart = rhs.m_nPixelGlassStart; m_sDefectLoc = rhs.m_sDefectLoc; m_sSplineLoc = rhs.m_sSplineLoc; m_sDefectType = rhs.m_sDefectType; m_sDefectPeak = rhs.m_sDefectPeak; m_sThreshold = rhs.m_sThreshold; m_dwTickCount = rhs.m_dwTickCount; m_nUMOriginX = rhs.m_nUMOriginX; m_nUMOriginY = rhs.m_nUMOriginY; m_nUMSizeX = rhs.m_nUMSizeX; m_nUMSizeY = rhs.m_nUMSizeY; m_nUMSize = rhs.m_nUMSize; m_nSideLoc = rhs.m_nSideLoc; m_nCameraDir = rhs.m_nCameraDir; m_strDefectPath = rhs.m_strDefectPath; m_bJudgeDefect = rhs.m_bJudgeDefect; } } CInspectDefect& CInspectDefect::operator=(const CInspectDefect& rhs) { if (this != &rhs) { m_nGlassDefectIdx = rhs.m_nGlassDefectIdx; m_nProfileIdx = rhs.m_nProfileIdx; m_nCameraID = rhs.m_nCameraID; m_nScanIdx = rhs.m_nScanIdx; m_nDir = rhs.m_nDir; m_nDefectIdx = rhs.m_nDefectIdx; m_nPixelConv = rhs.m_nPixelConv; m_nPixelScan = rhs.m_nPixelScan; m_nPixelSize = rhs.m_nPixelSize; m_sPixelWidth = rhs.m_sPixelWidth; m_sPixelHeight = rhs.m_sPixelHeight; m_nDefectRScale = rhs.m_nDefectRScale; m_nLevelSrcMin = rhs.m_nLevelSrcMin; m_nLevelSrcMax = rhs.m_nLevelSrcMax; m_nLevelSrcAvg = rhs.m_nLevelSrcAvg; m_nLevelRefMin = rhs.m_nLevelRefMin; m_nLevelRefMax = rhs.m_nLevelRefMax; m_nLevelRefAvg = rhs.m_nLevelRefAvg; m_nLevelDiffMin = rhs.m_nLevelDiffMin; m_nLevelDiffMax = rhs.m_nLevelDiffMax; m_nLevelDiffAvg = rhs.m_nLevelDiffAvg; m_nPixelGlassStart = rhs.m_nPixelGlassStart; m_sDefectLoc = rhs.m_sDefectLoc; m_sSplineLoc = rhs.m_sSplineLoc; m_sDefectType = rhs.m_sDefectType; m_sDefectPeak = rhs.m_sDefectPeak; m_sThreshold = rhs.m_sThreshold; m_dwTickCount = rhs.m_dwTickCount; m_nUMOriginX = rhs.m_nUMOriginX; m_nUMOriginY = rhs.m_nUMOriginY; m_nUMSizeX = rhs.m_nUMSizeX; m_nUMSizeY = rhs.m_nUMSizeY; m_nUMSize = rhs.m_nUMSize; m_nSideLoc = rhs.m_nSideLoc; m_nCameraDir = rhs.m_nCameraDir; m_strDefectPath = rhs.m_strDefectPath; m_bJudgeDefect = rhs.m_bJudgeDefect; } return *this; } void CInspectDefect::Merge(const CInspectDefect& rhs) { //¹«°ÔÁß½ÉÀÇ Gray Á¤º¸ -À±Á¤¹Î- m_nPixelConv = (m_nPixelConv + rhs.m_nPixelConv) / 2; m_nPixelScan = (m_nPixelScan + rhs.m_nPixelScan) / 2; m_nPixelSize = m_nPixelSize + rhs.m_nPixelSize; m_sPixelWidth = m_sPixelWidth + rhs.m_sPixelWidth; m_sPixelHeight = m_sPixelHeight + rhs.m_sPixelHeight; m_nDefectRScale = m_nDefectRScale + rhs.m_nDefectRScale; if (m_nLevelSrcMin > rhs.m_nLevelSrcMin) m_nLevelSrcMin = rhs.m_nLevelSrcMin; if (m_nLevelSrcMax < rhs.m_nLevelSrcMax) m_nLevelSrcMax = rhs.m_nLevelSrcMax; m_nLevelSrcAvg = (m_nLevelSrcAvg + rhs.m_nLevelSrcAvg) / 2; if (m_nLevelRefMin > rhs.m_nLevelRefMin) m_nLevelRefMin = rhs.m_nLevelRefMin; if (m_nLevelRefMax < rhs.m_nLevelRefMax) m_nLevelRefMax = rhs.m_nLevelRefMax; m_nLevelRefAvg = (m_nLevelRefAvg + rhs.m_nLevelRefAvg) / 2; if (m_nLevelDiffMin > rhs.m_nLevelDiffMin) m_nLevelDiffMin = rhs.m_nLevelDiffMin; if (m_nLevelDiffMax < rhs.m_nLevelDiffMax) m_nLevelDiffMax = rhs.m_nLevelDiffMax; m_nLevelDiffAvg = (m_nLevelDiffAvg + rhs.m_nLevelDiffAvg) / 2; if (m_sDefectPeak < rhs.m_sDefectPeak) m_sDefectPeak = rhs.m_sDefectPeak; if (m_sThreshold < rhs.m_sThreshold) m_sThreshold = rhs.m_sThreshold; if (m_dwTickCount < rhs.m_dwTickCount) m_dwTickCount = rhs.m_dwTickCount; if (m_nPixelSize < rhs.m_nPixelSize) { m_nUMOriginX = rhs.m_nUMOriginX; m_nUMOriginY = rhs.m_nUMOriginY; } m_nUMSizeX = m_nUMSizeX + rhs.m_nUMSizeX; m_nUMSizeY = m_nUMSizeY + rhs.m_nUMSizeY; m_nUMSize = m_nUMSize + rhs.m_nUMSize; } // + ¿¬»êÀÚ ¿À¹ö·Îµù. CInspectDefect& CInspectDefect::operator+(const CInspectDefect& rhs) { m_nPixelConv = (m_nPixelConv + rhs.m_nPixelConv) / 2; m_nPixelScan = (m_nPixelScan + rhs.m_nPixelScan) / 2; m_nPixelSize = m_nPixelSize + rhs.m_nPixelSize; m_sPixelWidth = m_sPixelWidth + rhs.m_sPixelWidth; m_sPixelHeight = m_sPixelHeight + rhs.m_sPixelHeight; m_nDefectRScale = m_nDefectRScale + rhs.m_nDefectRScale; if (m_nLevelSrcMin > rhs.m_nLevelSrcMin) m_nLevelSrcMin = rhs.m_nLevelSrcMin; if (m_nLevelSrcMax < rhs.m_nLevelSrcMax) m_nLevelSrcMax = rhs.m_nLevelSrcMax; m_nLevelSrcAvg = (m_nLevelSrcAvg + rhs.m_nLevelSrcAvg) / 2; if (m_nLevelRefMin > rhs.m_nLevelRefMin) m_nLevelRefMin = rhs.m_nLevelRefMin; if (m_nLevelRefMax < rhs.m_nLevelRefMax) m_nLevelRefMax = rhs.m_nLevelRefMax; m_nLevelRefAvg = (m_nLevelRefAvg + rhs.m_nLevelRefAvg) / 2; if (m_nLevelDiffMin > rhs.m_nLevelDiffMin) m_nLevelDiffMin = rhs.m_nLevelDiffMin; if (m_nLevelDiffMax < rhs.m_nLevelDiffMax) m_nLevelDiffMax = rhs.m_nLevelDiffMax; m_nLevelDiffAvg = (m_nLevelDiffAvg + rhs.m_nLevelDiffAvg) / 2; if (m_sDefectPeak < rhs.m_sDefectPeak) m_sDefectPeak = rhs.m_sDefectPeak; if (m_sThreshold < rhs.m_sThreshold) m_sThreshold = rhs.m_sThreshold; if (m_dwTickCount < rhs.m_dwTickCount) m_dwTickCount = rhs.m_dwTickCount; if (m_nPixelSize < rhs.m_nPixelSize) { m_nUMOriginX = rhs.m_nUMOriginX; m_nUMOriginY = rhs.m_nUMOriginY; } m_nUMSizeX = m_nUMSizeX + rhs.m_nUMSizeX; m_nUMSizeY = m_nUMSizeY + rhs.m_nUMSizeY; m_nUMSize = m_nUMSize + rhs.m_nUMSize; return *this; }