| 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;}
 |