#include "stdafx.h" #include #include "OTSParticleClr.h" #include "PosXrayClr.h" #include "OTSClassifyEngineClr.h" namespace OTSCLRINTERFACE { using namespace msclr::interop; using namespace OTSCLRINTERFACE; COTSClassifyEngineClr::COTSClassifyEngineClr(EngineType engineType, System::String^ libFileName) { std::string file = marshal_as (libFileName); switch (engineType) { case EngineType::ParticleClassifyEng: engine = GetParticleEngine(file).get(); break; case EngineType::InclutionEng: engine = GetInclutionEngine().get(); break; case EngineType::CurveCompare: engine = GetCurveCompareEngine(file).get(); break; default: break; } } bool COTSClassifyEngineClr::ReloadEngineDB() { return engine->Init(); } bool COTSClassifyEngineClr::Classify(COTSParticleClr^ particle) { auto part = particle->GetOTSParticlePtr(); auto xraydata = part->GetXrayInfo(); return engine->Classify(part, xraydata); } bool COTSClassifyEngineClr::Classify(COTSParticleClr^ particle, int SteelTech) { auto part = particle->GetOTSParticlePtr(); auto xraydata = part->GetXrayInfo(); return engine->Classify(part, SteelTech, xraydata); } double COTSClassifyEngineClr::IfNeedMaxEDS(COTSParticleClr^ particle) { auto part = particle->GetOTSParticlePtr(); auto xraydata = part->GetXrayInfo(); double MaxEDSTime; engine->IfNeedMaxEDS(part, xraydata, MaxEDSTime); return MaxEDSTime; } }