#pragma once #include "afx.h" #include "OTSSegment.h" #include "XMLSerialization.h" namespace OTSDATA { class __declspec(dllexport) COTSFeature : public xmls::ISlo { public: // constructor COTSFeature(); // constructor COTSFeature(const COTSFeature&); // copy constructor COTSFeature(COTSFeature*); // copy constructor COTSFeature& operator=(const COTSFeature&); // =operator BOOL operator==(const COTSFeature&); // ==operator virtual ~COTSFeature(); // destructor //void Serialize(CArchive& ar); // serialization void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // segments list COTSSegmentsList& GetSegmentsList() { return m_listSegments; } void SetSegmentsList(COTSSegmentsList& a_plistSegment, BOOL a_bClear = TRUE); COTSSegmentPtr GetSegmentByIndex(int a_nIndex); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const COTSFeature& a_oSource); // segments list COTSSegmentsList m_listSegments; }; typedef std::shared_ptr COTSFeaturePtr; typedef std::vector COTSFeatureList; }