#pragma once #include #include "OTSParticle.h" #include "PosXrayInfo.h" #include namespace OTSClassifyEngine { using std::string; using namespace OTSDATA; //define interface class __declspec(dllexport) IClassifyEngine { public: IClassifyEngine() //成员列表初始化参数 {}; virtual ~IClassifyEngine() {}; virtual bool Init() = 0;// //virtual bool ClassifyByXrayInfo(COTSParticlePtr particle, CPosXrayInfoPtr xrayInfo) = 0;// virtual bool Classify(COTSParticlePtr particle, CPosXrayPtr xray) = 0;// virtual bool Classify(COTSParticlePtr particle,int SteelTech, CPosXrayPtr xray) = 0;// virtual bool IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime) = 0; }; typedef std::shared_ptr __declspec(dllexport) CLEEnginePtr; __declspec(dllexport) CLEEnginePtr GetInclutionEngine();//will be initialized at the first time.and it's a singleton object. __declspec(dllexport) CLEEnginePtr GetParticleEngine(std::string libName);//will be initialized at the first time.and it's a singleton object. __declspec(dllexport) CLEEnginePtr GetCurveCompareEngine(std::string libName);//will be initialized at the first time.and it's a singleton object. }