OTSSTDLib.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. #include "otsdataconst.h"
  3. #include "StandardItem.h"
  4. #include <OTSParticle.h>
  5. using namespace OTSDATA;
  6. namespace OTSClassifyEngine
  7. {
  8. class __declspec(dllexport) CSTDLib
  9. {
  10. public:
  11. CSTDLib(std::string dbName);
  12. CSTDLib(const CSTDLib& a_oSource);
  13. CSTDLib(CSTDLib* a_poSource);
  14. ~CSTDLib();
  15. void Init();
  16. bool LoadSpectrumSTDFromDB(std::string dbName);
  17. CSTDLib& operator= (const CSTDLib& a_oSource);
  18. BOOL operator== (const CSTDLib& a_oSource);
  19. void SetName(CString strName);
  20. CString GetName();
  21. bool AddItem(CSpectrumSTDItemPtr stdMineral);
  22. // 从0开始数, 在第iIndex位置之前插入一个记录
  23. bool InsertItem(CSpectrumSTDItemPtr stdMineral, int iIndex);
  24. CSpectrumSTDItemPtr GetSTDItem(int iIndex);
  25. int GetSTDItemCount();
  26. void Clear();
  27. bool CreateSpectrumSTDItemByXrayDATA(COTSParticlePtr part, COLORREF color);
  28. bool UpdateNewSTDItemToDB(CSpectrumSTDItemPtr itm);
  29. protected:
  30. CString GetDifferItemName(CString strMineralName);
  31. bool HasSameItemName(CString strMineralName);
  32. void Cleanup();
  33. void Duplicate(const CSTDLib& a_oSource);
  34. private:
  35. CString m_dbName;
  36. CSpectrumSTDItemList m_listSTDItems;
  37. };
  38. typedef std::shared_ptr<CSTDLib> __declspec(dllexport) CSTDLibPtr;
  39. typedef std::vector<CSTDLibPtr> __declspec(dllexport) CSTDLibList;
  40. }