123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #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());
- if (!stdfile->Load())
- {
- return false;
- }
- myStd = stdfile-> GenerateSTDLib(IDENTIFY_KIND::ALL);
- if (myStd!=nullptr)
- {
- m_Engine = new COTSClassifyEng(myStd);
- return true;
- }
- else
- {
- return false;
- }
-
-
- }
- bool InclutionClassifyEngine::ClassifyIncA(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray)
- {
- if (particle == nullptr || xray == nullptr) return false;
- int Id;
- int grpId;
- auto result = m_Engine->ClassifyXray((OTSDATA::STEEL_TECHNOLOGY)SteelTech, xray->GetElementQuantifyData(), Id, grpId);
- if (grpId == (int)OTS_PARTICLE_TYPE::INVALID)
- {
- particle->SetType(OTS_PARTICLE_TYPE::INVALID);
- particle->SetClassifyName("Invalid");
- particle->SetColor("#000000");
- particle->SetClassifyId(Id);
- particle->SetGroupId(grpId);
- std::string grpName;
- std::string grpColor;
- m_Engine->GetGroupNameAndColorById(grpId, grpName, grpColor);
- particle->SetGroupName(grpName);
- particle->SetGroupColor(grpColor);
- }
- else if (grpId == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED)
- {
- particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
- particle->SetClassifyName("Not Identified");
- particle->SetColor("#000000");
- particle->SetClassifyId((int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
- particle->SetGroupId(grpId);
- std::string grpName;
- std::string grpColor;
- m_Engine->GetGroupNameAndColorById(grpId, grpName, grpColor);
- particle->SetGroupName(grpName);
- particle->SetGroupColor(grpColor);
- }
- else if (grpId == (int)OTS_PARTICLE_TYPE::ISNOT_INCLUTION)
- {
- if (Id == (int)NOT_INCLUTION_ID::SiC)
- {
- particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
- particle->SetClassifyName("SiC");
- particle->SetClassifyId((int)NOT_INCLUTION_ID::SiC);
- particle->SetColor("#7B68EE");
- }
- else if (Id == (int)NOT_INCLUTION_ID::FeO)
- {
- particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
- particle->SetClassifyName("FeO");
- particle->SetClassifyId((int)NOT_INCLUTION_ID::FeO);
- particle->SetColor("#FF6347");
- }
- std::string grpName;
- std::string grpColor;
- m_Engine->GetGroupNameAndColorById(grpId, grpName, grpColor);
- particle->SetGroupId(grpId);
- particle->SetGroupName(grpName);
- particle->SetGroupColor(grpColor);
- }
- else
- {
- auto stditm = myStd->GetSTDItemById(Id);
- if (stditm != nullptr)
- {
- particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
- particle->SetClassifyId(Id);
- particle->SetColor(stditm->GetColor().GetBuffer());
- particle->SetClassifyName(stditm->GetName().GetBuffer());
- particle->SetGroupId(grpId);
- std::string grpName;
- std::string grpColor;
- m_Engine->GetGroupNameAndColorById(grpId, grpName, grpColor);
- particle->SetGroupName(grpName);
- particle->SetGroupColor(grpColor);
- }
- else
- {
- particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
- particle->SetClassifyName("Not Identified");
- particle->SetColor("#000000");
- particle->SetGroupId(grpId);
- std::string grpName;
- std::string grpColor;
- m_Engine->GetGroupNameAndColorById(grpId, grpName, grpColor);
- particle->SetGroupName(grpName);
- particle->SetGroupColor(grpColor);
- }
- }
- return result;
- }
- bool InclutionClassifyEngine::ZeroElementProcess(COTSParticlePtr particle)
- {
- auto chems = particle->GetXrayInfo()->GetElementQuantifyData();
- CElementChemistriesList chemsOut;
- m_Engine->NominateElChemsList(chems, chemsOut);
- particle->GetXrayInfo()->SetElementQuantifyData(chemsOut);
- return true;
- }
- bool InclutionClassifyEngine::IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime)
- {
- throw std::logic_error("The method or operation is not implemented.");
- }
- bool InclutionClassifyEngine::ClassifyBySpectrum(COTSParticlePtr particle, CPosXrayPtr xray)
- {
- return false;
- }
- bool InclutionClassifyEngine::ClassifyExpression(COTSParticlePtr particle, CPosXrayPtr xray)
- {
- return false;
- }
- bool InclutionClassifyEngine::ClassifyByExpressionTemporarySpectrum(COTSParticlePtr particle, CPosXrayPtr xray)
- {
- return false;
- }
- OTSClassifyEngine::CLEEnginePtr CreateInclutionEngine()
- {
- return CLEEnginePtr(new InclutionClassifyEngine());
- }
- OTSClassifyEngine::CLEEnginePtr GetInclutionEngine()
- {
- static CLEEnginePtr engine;
- if (engine == NULL)
- {
- engine = CLEEnginePtr( new InclutionClassifyEngine());
- if (!engine->Init())
- {
- return NULL;
- }
- }
- return engine;
- }
- }
|