123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #pragma once
- #include "stdafx.h" //prepare the base things that will be used. typically this header file will include a lot of base header file.
- #include "Domain.h"
- #include "SEMDataMsr.h"
- #include "OTSFieldData.h"
- #include "MsrParams.h"
- #include <MsrSampleStatus.h>
- #include <MsrResults.h>
- #include "PropItem.h"
- namespace OTSMODEL {
- const CString NOT_APPLIED = _T("N/A");
- class __declspec(dllexport) COTSSample : public xmls::ISlo
- {
-
- public:
- COTSSample(); // constructor
- COTSSample(const COTSSample&); // copy constructor
- COTSSample(COTSSample*); // copy constructor
- COTSSample& operator=(const COTSSample&); // =operator
- BOOL operator==(const COTSSample&); // ==operator
- virtual ~COTSSample(); // destructor
-
-
- void Serialize(bool isStoring, tinyxml2::XMLDocument* classDoc, tinyxml2::XMLElement* rootNode);
- COTSParticleList GetAllParticles();
- // name
- CString GetName() { return m_strName; }
- void SetName(CString a_strName) { m_strName = a_strName; }
- // sample hole
- CString GetSampleHoleName() { return m_strHoleName; }
- void SetSampleHoleName(CString a_strHoleName) { m_strHoleName = a_strHoleName; }
- // param modify lock
- BOOL GetParamLock() { return m_bParamLock; }
- void SetParamLock(BOOL a_bParamLock) { m_bParamLock = a_bParamLock; }
- // switch
- BOOL GetSwitch() { return m_bSwitch; }
- void SetSwitch(BOOL a_bSwitch) { m_bSwitch = a_bSwitch; }
- // measurement parameter
- CMsrParamsPtr GetMsrParams() { return m_poMsrParams; }
- void SetMsrParams(CMsrParamsPtr a_poMsrParams);
- // measurement area
- CDomainPtr GetMsrArea() { return m_poMsrArea; }
- void SetMsrArea(CDomainPtr a_poMsrArea);
-
- // SEM data (measurement)
- CSEMDataMsrPtr GetSEMDataMsr() { return m_poSEMDataMsr; }
- void SetSEMDataMsr(CSEMDataMsrPtr a_poSEMDataMsr);
- // measure status
- CMsrSampleStatusPtr GetMsrStatus() { return m_poMsrStatus; }
- void SetMsrStatus(CMsrSampleStatusPtr a_poMsrStatus);
- // fields
- COTSFieldDataList& GetFieldsData() { return m_listFieldData; }
- void SetFieldsData(COTSFieldDataList& a_listFieldData);
- // measure results
- CMsrResultsPtr GetMsrResults() { return m_poMsrResults; }
- void SetMsrResults(CMsrResultsPtr a_poMsrResults);
- // has measure results test
- BOOL HasMeasureResult();
-
- double CalculateAFieldArea();
- // calculate pixel size
- void SetPixelSize(double pixelsize) { m_pixelsize = pixelsize; }
- // calculate field area
- double GetPixelSize() { return m_pixelsize; };
- BOOL GetBSESize(int& a_nWidth, int& a_nHeight);
- void SetBSESize(int a_nWidth, int a_nHeight) { m_BseSize.cx = a_nWidth; m_BseSize.cy = a_nHeight; }
-
- protected:
- // cleanup
- void Cleanup();
- // initialization
- void Init();
- // duplication
- void Duplicate(const COTSSample& a_oSource);
-
- // calculate scan field size
- int CalculateScanFieldSize();
- // name
- CString m_strName;
- // sample hole name
- CString m_strHoleName;
- // param modify lock
- BOOL m_bParamLock;
- // switch
- BOOL m_bSwitch;
- // measurement area
- CDomainPtr m_poMsrArea;
- // SEM data (measurement)
- CSEMDataMsrPtr m_poSEMDataMsr;
- CMsrParamsPtr m_poMsrParams;
- // fields
- COTSFieldDataList m_listFieldData;
- // measure status
- CMsrSampleStatusPtr m_poMsrStatus;
- // measure results
- CMsrResultsPtr m_poMsrResults;
- // property item groups list
- CPropItemGrpsList m_listPropItemGrps;
- double m_pixelsize;
- CSize m_BseSize;
- };
- typedef std::shared_ptr<COTSSample> __declspec(dllexport) COTSSamplePtr;
- typedef std::vector<COTSSamplePtr> __declspec(dllexport) COTSSamplesList;
- }
|