#pragma once #include "afx.h" #include "PosXrayInfo.h" namespace OTSDATA { class __declspec(dllexport) CPosXray : public CPosXrayInfo { public: CPosXray(); // constructor CPosXray(const CPoint); // constructor CPosXray(CPosXrayInfo*); // constructor CPosXray(const CPosXray&); // copy constructor CPosXray(CPosXray*); // copy constructor CPosXray& operator=(const CPosXray&); // =operator virtual ~CPosXray(); // destructor // serialization //void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // channels long GetChannelsNo() const { return GENERALXRAYCHANNELS; } // x-ray data DWORD* GetXrayData() const { return (DWORD*)m_nXrayData; } void SetXrayData(DWORD* a_pnXrayData); DWORD GetTotalCount() const; void GetMaxHeightPosition(long& a_nMaxHeight, long& a_nPosition) const; // clear the x-ray data // if start position is [0, GENERALXRAYCHANNELS - 1], will do the clear void ClearXrayData(const long a_nStartPos = -1); // set x-ray data at channel void SetXrayDataAtChannel(DWORD a_nXray, const long a_nChannel); static CElementChemistriesList RemoveFe(CElementChemistriesList a_listElementChemistries); static CElementChemistriesList RemoveC(CElementChemistriesList a_listElementChemistries); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CPosXray& a_oSource); // x-ray data DWORD m_nXrayData[GENERALXRAYCHANNELS]; }; typedef std::shared_ptr __declspec(dllexport) CPosXrayPtr; typedef std::vector __declspec(dllexport) CPosXraysList; }