#pragma once #include "XMLSerialization.h" namespace OTSMODEL { __declspec(dllexport) const double DEFAULT_RADIO = 1.0; // CMsrResultItem command target class __declspec(dllexport) CMsrResultItem : public xmls::ISlo { public: CMsrResultItem(); // constructor CMsrResultItem(const CMsrResultItem&); // copy constructor CMsrResultItem(CMsrResultItem*); // copy constructor CMsrResultItem& operator=(const CMsrResultItem&); // =operator BOOL operator==(const CMsrResultItem&); // ==operator virtual ~CMsrResultItem(); // destructor // serialization //void Serialize(CArchive& ar); void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // Type ID int GetTypeId() { return m_nTypeId; } void SetTypeId(int a_nTypeId) { m_nTypeId = a_nTypeId; } // area (micros) double GetArea() { return m_nArea; } void SetArea(double a_nArea) { m_nArea = a_nArea; } // particle number DWORD GetNumber() { return m_nNumber; } void SetNumber(DWORD a_nNumber) { m_nNumber = a_nNumber; } std::string GetName() const { return m_sName; } void SetName(std::string val) { m_sName = val; } protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CMsrResultItem& a_oSource); // Type ID int m_nTypeId; // area (micros) double m_nArea; // particle number DWORD m_nNumber; std::string m_sName; }; typedef std::shared_ptr __declspec(dllexport) CMsrResultItemPtr; typedef std::vector __declspec(dllexport) CMsrResultItemsList; // CMsrResults command target class __declspec(dllexport) CMsrResults : public xmls::ISlo { public: CMsrResults(); // constructor CMsrResults(const CMsrResults&); // copy constructor CMsrResults(CMsrResults*); // copy constructor CMsrResults& operator=(const CMsrResults&); // =operator BOOL operator==(const CMsrResults&); // ==operator virtual ~CMsrResults(); // destructor // serialization void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // radio double GetRadio() { return m_dRadio; } void SetRadio(double a_dRadio) { m_dRadio = a_dRadio; } // measured area (micros) DWORD GetMeasuredArea() { return m_nMeasuredArea; } void SetMeasuredArea(DWORD a_nMeasuredArea) { m_nMeasuredArea = a_nMeasuredArea; } void CumulateMeasuredArea(DWORD a_nMeasuredArea){ m_nMeasuredArea += a_nMeasuredArea; } // results items list CMsrResultItemsList& GetResultItems() { return m_listResultItems; } void SetResultItems(CMsrResultItemsList& a_listResultItems); DWORD GetTotalParticleArea(); DWORD GetTotalparticleIdentifyArea(); DWORD GetTotalParticleNumber(); // calculate display ratio double CalDisplayRadio(); // cumulate measure results void CumulateMeasureResults(CMsrResultItemPtr a_poResultItems); void CumulateMeasureResults(CMsrResultItemsList& a_listResultItems); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CMsrResults& a_oSource); // radio double m_dRadio; // measured area (micros) DWORD m_nMeasuredArea; // result items list CMsrResultItemsList m_listResultItems; }; typedef std::shared_ptr __declspec(dllexport) CMsrResultsPtr; typedef std::vector __declspec(dllexport) CMsrResultsList; }