#pragma once #include "stdafx.h" #include "InclutionClassifyEngine.h" #include "IClassifyEngine.h" #include "InclutionEngine/STDFileMgr.h" #include "InclutionEngine/OTSClassifyEng.h" namespace OTSClassifyEngine { bool InclutionClassifyEngine::Init() { CSTDFileMgrPtr stdfile = CSTDFileMgrPtr(new CSTDFileMgr()); stdfile->Load(); myStd = stdfile-> GenerateSTDLib(IDENTIFY_KIND::ALL); return true; } bool InclutionClassifyEngine::Classify(COTSParticlePtr particle, CPosXrayPtr xray) { return false; } bool InclutionClassifyEngine::Classify(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray) { if (particle == nullptr || xray == nullptr) return false; int Id; auto result=COTSClassifyEng::ClassifyXray(myStd, (OTSDATA::STEEL_TECHNOLOGY)SteelTech, xray->GetElementQuantifyData(), Id); auto stditm = myStd->GetSTDItemById(Id); if (Id ==(int) OTS_PARTICLE_TYPE::NOT_IDENTIFIED) { particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED); particle->TypeName("Not Identified"); } else if (Id == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED_SIC) { particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED); particle->TypeName("SiC"); particle->SetClassifyId(7); particle->TypeColor("7B68EE"); } else if (Id == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED_FEO) { particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED); particle->TypeName("FeO"); particle->SetClassifyId(8); particle->TypeColor("FF6347"); } else { if (stditm != nullptr) { particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED); particle->SetClassifyId(Id); particle->TypeColor(stditm->GetColor().GetBuffer()); particle->TypeName(stditm->GetName().GetBuffer()); } else { particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED); particle->TypeName("Not Identified"); } } return result; } bool InclutionClassifyEngine::IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime) { throw std::logic_error("The method or operation is not implemented."); } OTSClassifyEngine::CLEEnginePtr CreateInclutionEngine() { return CLEEnginePtr(new InclutionClassifyEngine()); } OTSClassifyEngine::CLEEnginePtr GetInclutionEngine() { static CLEEnginePtr engine; if (engine == NULL) { engine = CLEEnginePtr( new InclutionClassifyEngine()); engine->Init(); } return engine; } }