#include "StdAfx.h" #include "CHDefectPicker/DefectPicker_Range.h" #include "CHReviewRecipe/RcpSchedulingInfo.h" CDefectPicker_Range::CDefectPicker_Range(void) { Reset(); } CDefectPicker_Range::~CDefectPicker_Range(void) { Reset(); } void CDefectPicker_Range::Reset() { m_vecPickingResult.clear(); m_vecPickingResultWsi.clear(); } int CDefectPicker_Range::DefectPicking(VectorSReviewResult* vecSorterResult, CRcpSchedulingInfo* pScheduleInfo, BOOL bWsi/*=FALSE*/) { if (vecSorterResult==NULL || pScheduleInfo==NULL) return 0; int nDefectMaxCount = 0, nPickingCount = 0; // review if (!bWsi) { int nRangeLeftCount = pScheduleInfo->GetRangePointCount(Range_Left); int nRangeLeftStartX = pScheduleInfo->GetRangeStartX(Range_Left); int nRangeLeftEndX = pScheduleInfo->GetRangeEndX(Range_Left); int nRangeMidCount = pScheduleInfo->GetRangePointCount(Range_Middle); int nRangeMidStartX = pScheduleInfo->GetRangeStartX(Range_Middle); int nRangeMidEndX = pScheduleInfo->GetRangeEndX(Range_Middle); int nRangeRightCount = pScheduleInfo->GetRangePointCount(Range_Right); int nRangeRightStartX = pScheduleInfo->GetRangeStartX(Range_Right); int nRangeRightEndX = pScheduleInfo->GetRangeEndX(Range_Right); int nRangeLeftAddCount=0, nRangeMidAddCount=0, nRangeRightAddCount=0; for (int nIdx=0; nIdxsize()); nIdx++) { SReviewResult dataResult = vecSorterResult->at(nIdx); // add left if ((dataResult.nUMOriginX>=nRangeLeftStartX&&dataResult.nUMOriginX=nRangeMidStartX&&dataResult.nUMOriginX=nRangeRightStartX&&dataResult.nUMOriginXGetMaxWsiPointCount(); nPickingCount = min(int(vecSorterResult->size()), nDefectMaxCount); if (nPickingCount <= 0) return 0; m_vecPickingResultWsi.clear(); for (int nIdx=0; nIdxat(nIdx); m_vecPickingResultWsi.push_back(dataResult); } return int(m_vecPickingResultWsi.size()); } return 0; }