// PADRegionParm.h: interface for the CPADRegionParm class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_PADREGIONPARM_H__10A29210_3AD6_4C7F_B5A2_C7B7FDE24BF7__INCLUDED_) #define AFX_PADREGIONPARM_H__10A29210_3AD6_4C7F_B5A2_C7B7FDE24BF7__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include //#include "HMRegiConfig.h" #include "MosisPacket.h" class CHMRegiConfig; enum emPADSIDE{SIDE_LEFT=0,SIDE_TOP,SIDE_RIGHT,SIDE_BOTTOM,SIDE_NONE}; enum emPADINSTYPE{PADINSTYPE_PITCH=0,PADINSTYPE_ASG,PADINSTYPE_C2C}; enum emPADPITCHINSDIR{INSDIR_HORI=0,INSDIR_VERT}; class AFX_EXT_CLASS CPADRegionParm { public: CPADRegionParm(); virtual ~CPADRegionParm(); public: virtual void Reset(){}; virtual BOOL GetUseInspect(){return FALSE;} virtual BOOL ReadRegionParm(int iModel,int iRegion,CHMRegiConfig* pFile){return FALSE;} virtual BOOL WriteRegionParm(int iModel,int iRegion,CHMRegiConfig* pFile){return FALSE;} virtual void* GetRegionParm(){return NULL;} virtual void SetRegionParm(void *pParm){} virtual int GetThreshold(){return 0;} virtual BOOL ReadRecipe(CMosisPacket *pPacket){return FALSE;} virtual BOOL WriteRecipe(CMosisPacket *pPacket){return FALSE;} }; typedef struct _PADPARMPITCH { BOOL m_bUseInspect; BOOL m_bUseFPC; emPADPITCHINSDIR m_emInspectDir; double m_dPitchMin; double m_dPitchMax; int m_nPitchCycle; int m_nThreshold; int m_nSuppress; _PADPARMPITCH() { Reset(); } void Reset() { m_bUseInspect = FALSE; m_bUseFPC = FALSE; m_emInspectDir = INSDIR_HORI; m_dPitchMin = m_dPitchMax = 0.; m_nPitchCycle = 1; m_nThreshold = 255; m_nSuppress = 255; } _PADPARMPITCH& operator=(const _PADPARMPITCH &rh) { m_bUseInspect = rh.m_bUseInspect; m_bUseFPC = rh.m_bUseFPC; m_emInspectDir = rh.m_emInspectDir; m_dPitchMin = rh.m_dPitchMin; m_dPitchMax = rh.m_dPitchMax; m_nPitchCycle = rh.m_nPitchCycle; m_nThreshold = rh.m_nThreshold; m_nSuppress = rh.m_nSuppress; return *this; } } PADPARMPITCH, *pPADPARMPITCH; class AFX_EXT_CLASS CPADParmPitch : public CPADRegionParm { public: CPADParmPitch(); virtual ~CPADParmPitch(); CPADParmPitch& operator=(CPADParmPitch& rhs); public: virtual void Reset(); virtual BOOL GetUseInspect(){return m_pPitchParm.m_bUseInspect;} virtual BOOL ReadRegionParm(int iModel,int iRegion,CHMRegiConfig* pFile); virtual BOOL WriteRegionParm(int iModel,int iRegion,CHMRegiConfig* pFile); virtual void* GetRegionParm(){return static_cast(&m_pPitchParm);} virtual void SetRegionParm(void *pParm){ m_pPitchParm=*(static_cast(pParm));} virtual int GetThreshold(){return m_pPitchParm.m_nThreshold;} virtual BOOL ReadRecipe(CMosisPacket *pPacket); virtual BOOL WriteRecipe(CMosisPacket *pPacket); protected: PADPARMPITCH m_pPitchParm; }; typedef struct _PADPARMC2C_PATTERNINFO { BOOL m_bUseFirst; BOOL m_bUseSecond; int m_nCam; int m_nScan; CRect m_FirstRect; CRect m_SecondRect; _PADPARMC2C_PATTERNINFO() { Reset(); } void Reset() { m_bUseFirst = m_bUseSecond = FALSE; m_FirstRect = m_SecondRect = CRect(0,0,0,0); } _PADPARMC2C_PATTERNINFO& operator=(const _PADPARMC2C_PATTERNINFO &rh) { m_bUseFirst = rh.m_bUseFirst; m_bUseSecond = rh.m_bUseSecond; m_nCam = rh.m_nCam; m_nScan = rh.m_nScan; m_FirstRect = rh.m_FirstRect; m_SecondRect = rh.m_SecondRect; return *this; } }PADPARMC2C_PATTERNINFO,*pPADPARMC2C_PATTERNINFO; typedef struct _PADPARMC2C { BOOL m_bUseInspect; int m_nThreshold; int m_nPatternCnt; pPADPARMC2C_PATTERNINFO m_pPatternInfo; _PADPARMC2C() { m_pPatternInfo = NULL; Reset(); } ~_PADPARMC2C() { Reset(); } void Reset() { m_bUseInspect = FALSE; m_nThreshold = 0; m_nPatternCnt = 0; if(m_pPatternInfo != NULL) delete[] m_pPatternInfo, m_pPatternInfo=NULL; } void SetPatternCnt(int nCnt) { m_nPatternCnt = nCnt; if(m_pPatternInfo != NULL) delete[] m_pPatternInfo, m_pPatternInfo=NULL; if(m_nPatternCnt > 0) m_pPatternInfo = new PADPARMC2C_PATTERNINFO[m_nPatternCnt]; } void SetPatternData(int nIndex,PADPARMC2C_PATTERNINFO &pData) { if(nIndex >= m_nPatternCnt || m_pPatternInfo == NULL) return; m_pPatternInfo[nIndex] = pData; } PADPARMC2C_PATTERNINFO *GetPatternData(int nIndex) { if(nIndex >= m_nPatternCnt || m_pPatternInfo == NULL) return NULL; return &m_pPatternInfo[nIndex]; } _PADPARMC2C& operator=(const _PADPARMC2C &rh) { int iLoop; Reset(); m_bUseInspect = rh.m_bUseInspect; m_nThreshold = rh.m_nThreshold; m_nPatternCnt = rh.m_nPatternCnt; if(m_nPatternCnt > 0) m_pPatternInfo = new PADPARMC2C_PATTERNINFO[m_nPatternCnt]; for(iLoop=0;iLoop