#pragma once #include "DomainClr.h" #include "OTSImgScanPrmClr.h" #include "SEMDataMsrClr.h" #include "FieldMgr.h" namespace OTSINTERFACE { using namespace System; using namespace System::Drawing; using namespace System::Collections::Generic; using namespace OTSMODEL; public ref class CFieldMgrClr : public Object { public: CFieldMgrClr(); // constructor CFieldMgrClr(CFieldMgrPtr); !CFieldMgrClr(); ~CFieldMgrClr(); CFieldMgrPtr GetCFiledMgrPtr(); // initialization bool Init(CDomainClr^ a_pMeasureArea, COTSImgScanPrmClr^ a_poImageScanParam, CSEMDataMsrClr^ a_poSEMDataMsr, List^ a_listMeasuredFieldCentrePoints); // reset bool Reset(CDomainClr^ a_pMeasureArea, COTSImgScanPrmClr^ a_poImageScanParam, CSEMDataMsrClr^ a_poSEMDataMsr, List^ a_listMeasuredFieldCentrePoints); // calculate estimate total fields long CalculateTotalFields(CDomainClr^ a_poMeasureArea, double a_dScanFieldSizeX, Size^ a_sizeResolution); // field centre points list List^ GetFieldCentrePoints(); bool GetFieldRectByIndex(int a_nIndex, System::Drawing::Rectangle^ % a_rctField); int GetTotalFields(); // unmeasured field centre points list List^ GetUnmeasuredFieldCentrePoints(); bool UnmeasuredGetNextField(System::Drawing::Rectangle^ a_rectField); bool GetUnmeasuredRandemField(System::Drawing::Rectangle^ a_rectField); // measured field centre points list List^ GetMeasuredFieldCentrePoints(); void SetMeasuredFieldCentrePoints(List^ a_listMeasuredFieldCentrePoints); // measure area CDomainClr^ GetMeasureArea(); bool SetMeasureArea(CDomainClr^ a_pMeasureArea); // image scan parameter COTSImgScanPrmClr^ GetImageScanParam(); bool SetImageScanParam(COTSImgScanPrmClr^ a_poImageScanParam); // SEM data (measurement) CSEMDataMsrClr^ GetSEMDataMsr(); bool SetSEMDataMsr(CSEMDataMsrClr^ a_poSEMDataMsr); protected: CFieldMgrPtr* m_LpFieldMgr; }; }