InclutionClassifyEngine.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #include "stdafx.h"
  3. #include "InclutionClassifyEngine.h"
  4. #include "IClassifyEngine.h"
  5. #include "InclutionEngine/STDFileMgr.h"
  6. #include "InclutionEngine/OTSClassifyEng.h"
  7. namespace OTSClassifyEngine
  8. {
  9. bool InclutionClassifyEngine::Init()
  10. {
  11. CSTDFileMgrPtr stdfile = CSTDFileMgrPtr(new CSTDFileMgr());
  12. stdfile->Load();
  13. myStd = stdfile-> GenerateSTDLib(IDENTIFY_KIND::ALL);
  14. return true;
  15. }
  16. bool InclutionClassifyEngine::Classify(COTSParticlePtr particle, CPosXrayPtr xray)
  17. {
  18. return false;
  19. }
  20. bool InclutionClassifyEngine::Classify(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray)
  21. {
  22. if (particle == nullptr || xray == nullptr) return false;
  23. int Id;
  24. auto result=COTSClassifyEng::ClassifyXray(myStd, (OTSDATA::STEEL_TECHNOLOGY)SteelTech, xray->GetElementQuantifyData(), Id);
  25. auto stditm = myStd->GetSTDItemById(Id);
  26. if (Id ==(int) OTS_PARTICLE_TYPE::NOT_IDENTIFIED)
  27. {
  28. particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
  29. particle->TypeName("Not Identified");
  30. }
  31. else
  32. {
  33. if (stditm != nullptr)
  34. {
  35. particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
  36. particle->SetClassifyId(Id);
  37. particle->TypeColor(stditm->GetColor().GetBuffer());
  38. particle->TypeName(stditm->GetName().GetBuffer());
  39. }
  40. else
  41. {
  42. particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
  43. particle->TypeName("Not Identified");
  44. }
  45. }
  46. return result;
  47. }
  48. bool InclutionClassifyEngine::IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime)
  49. {
  50. throw std::logic_error("The method or operation is not implemented.");
  51. }
  52. OTSClassifyEngine::CLEEnginePtr CreateInclutionEngine()
  53. {
  54. return CLEEnginePtr(new InclutionClassifyEngine());
  55. }
  56. OTSClassifyEngine::CLEEnginePtr GetInclutionEngine()
  57. {
  58. static CLEEnginePtr engine;
  59. if (engine == NULL)
  60. {
  61. engine = CLEEnginePtr( new InclutionClassifyEngine());
  62. engine->Init();
  63. }
  64. return engine;
  65. }
  66. }