InclutionClassifyEngine.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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 if (Id == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED_SIC)
  32. {
  33. particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
  34. particle->TypeName("SiC");
  35. particle->SetClassifyId(7);
  36. particle->TypeColor("7B68EE");
  37. }
  38. else if (Id == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED_FEO)
  39. {
  40. particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
  41. particle->TypeName("FeO");
  42. particle->SetClassifyId(8);
  43. particle->TypeColor("FF6347");
  44. }
  45. else
  46. {
  47. if (stditm != nullptr)
  48. {
  49. particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
  50. particle->SetClassifyId(Id);
  51. particle->TypeColor(stditm->GetColor().GetBuffer());
  52. particle->TypeName(stditm->GetName().GetBuffer());
  53. }
  54. else
  55. {
  56. particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
  57. particle->TypeName("Not Identified");
  58. }
  59. }
  60. return result;
  61. }
  62. bool InclutionClassifyEngine::IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime)
  63. {
  64. throw std::logic_error("The method or operation is not implemented.");
  65. }
  66. OTSClassifyEngine::CLEEnginePtr CreateInclutionEngine()
  67. {
  68. return CLEEnginePtr(new InclutionClassifyEngine());
  69. }
  70. OTSClassifyEngine::CLEEnginePtr GetInclutionEngine()
  71. {
  72. static CLEEnginePtr engine;
  73. if (engine == NULL)
  74. {
  75. engine = CLEEnginePtr( new InclutionClassifyEngine());
  76. engine->Init();
  77. }
  78. return engine;
  79. }
  80. }