#pragma once #include "otsdataconst.h" #include "StandardItem.h" #include using namespace OTSDATA; namespace OTSClassifyEngine { class __declspec(dllexport) CSTDLib { public: CSTDLib(std::string dbName); CSTDLib(const CSTDLib& a_oSource); CSTDLib(CSTDLib* a_poSource); ~CSTDLib(); void Init(); bool LoadSpectrumSTDFromDB(std::string dbName); CSTDLib& operator= (const CSTDLib& a_oSource); BOOL operator== (const CSTDLib& a_oSource); void SetName(CString strName); CString GetName(); bool AddItem(CSTDSpectrumItemPtr stdMineral); // 从0开始数, 在第iIndex位置之前插入一个记录 bool InsertItem(CSTDSpectrumItemPtr stdMineral, int iIndex); CSTDSpectrumItemPtr GetSTDItem(int iIndex); int GetSTDItemCount(); void Clear(); bool CreateSpectrumSTDItemByXrayDATA(COTSParticlePtr part, COLORREF color); bool UpdateNewSTDItemToDB(CSTDSpectrumItemPtr itm); protected: CString GetDifferItemName(CString strMineralName); bool HasSameItemName(CString strMineralName); void Cleanup(); void Duplicate(const CSTDLib& a_oSource); private: CString m_dbName; CSTDSpectrumItemList m_listSTDItems; }; typedef std::shared_ptr __declspec(dllexport) CSTDLibPtr; typedef std::vector __declspec(dllexport) CSTDLibList; }