#pragma once #include "Hole.h" namespace OTSDATA { class __declspec(dllexport) CStage :public xmls::ISlo { public: CStage(); // constructor CStage(const CStage&); // copy constructor CStage(CStage*); // copy constructor CStage& operator=(const CStage&); // =operator BOOL operator==(const CStage&); // ==operator virtual ~CStage(); // destructor // serialization void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // stage name CString GetName() { return m_strName; } void SetName(CString a_strName) { m_strName = a_strName; } // boundary CDomainPtr GetBoundary() { return m_poBourary; } void SetBoundary(CDomainPtr a_poBourary); // std CDomainPtr GetSTD() { return m_poSTD; } void SetSTD(CDomainPtr a_poSTD); // sample holes list CHolesList& GetHoleList() { return m_listHoles; } void SetHoleList(CHolesList& a_plistHoles, BOOL a_bClear = TRUE); CHolePtr GetHoleByIndex(int a_nIndex); CHolePtr GetHoleByName(CString a_strHoleName); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CStage& a_oSource); // stage name CString m_strName; // boundary CDomainPtr m_poBourary; // std CDomainPtr m_poSTD; // sample holes list CHolesList m_listHoles; }; typedef std::shared_ptr CStagePtr; typedef std::vector CStagesList; }