浏览代码

add ZeroElementProcess API in the ExpressionClassifyEng

gsp 1 年之前
父节点
当前提交
bc6e4653b5

+ 7 - 0
OTSCPP/OTSClassifyEngine/ExpressionClassifyEngine.cpp

@@ -616,6 +616,13 @@ void ExpressionClassifyEngine::ProcessImgPropertiesWithParticleData(std::string&
 	}
 }
 
+bool ExpressionClassifyEngine::ZeroElementProcess(COTSParticlePtr particle)
+{
+	auto chems = ZeroElementProcess(particle, particle->GetXrayInfo());
+	particle->GetXrayInfo()->SetElementQuantifyData(chems);
+	return true;
+}
+
 bool ExpressionClassifyEngine::ClassifyBySpectrum(COTSParticlePtr particle, CPosXrayPtr xray)
 {
 	return false;

+ 5 - 0
OTSCPP/OTSClassifyEngine/ExpressionClassifyEngine.h

@@ -18,6 +18,8 @@ public:
 	virtual bool ClassifyExpression(COTSParticlePtr particle, CPosXrayPtr xray) override;
 	virtual bool ClassifyByExpressionTemporarySpectrum(COTSParticlePtr particle, CPosXrayPtr xray) override;
 	virtual bool ClassifyIncA(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray) override;
+	// Inherited via IClassifyEngine
+	virtual bool ZeroElementProcess(COTSParticlePtr particle) override;
 private:
 	ParticleSTDPtr m_std;
 	string m_StrName;
@@ -32,6 +34,9 @@ private:
 
 
 
+
+
+
 };
 
 }

+ 2 - 0
OTSCPP/OTSClassifyEngine/IClassifyEngine.h

@@ -23,6 +23,8 @@ public:
 	virtual bool ClassifyIncA(COTSParticlePtr particle,int SteelTech, CPosXrayPtr xray) = 0;//belong to inca engine
 	virtual bool IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime) = 0;//belong to expression engine
 
+	virtual bool ZeroElementProcess(COTSParticlePtr particle)=0;
+
 };
 
 

+ 7 - 0
OTSCPP/OTSClassifyEngine/InclutionClassifyEngine.cpp

@@ -129,6 +129,13 @@ namespace OTSClassifyEngine
 			return result;
 	}
 
+	bool InclutionClassifyEngine::ZeroElementProcess(COTSParticlePtr particle)
+	{
+		auto chems = particle->GetXrayInfo()->GetElementQuantifyData();
+		m_Engine->NominateElChemsList(chems, chems);
+		return true;
+	}
+
 	bool InclutionClassifyEngine::IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime)
 	{
 		throw std::logic_error("The method or operation is not implemented.");

+ 5 - 0
OTSCPP/OTSClassifyEngine/InclutionClassifyEngine.h

@@ -22,11 +22,16 @@ namespace OTSClassifyEngine
 			 virtual bool ClassifyExpression(COTSParticlePtr particle, CPosXrayPtr xray) override;
 			 virtual bool ClassifyByExpressionTemporarySpectrum(COTSParticlePtr particle, CPosXrayPtr xray) override;
 			 virtual bool ClassifyIncA(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray) override;
+			 // Inherited via IClassifyEngine
+			 virtual bool ZeroElementProcess(COTSParticlePtr particle) override;
 		private:
 			CInclutionSTDDataPtr myStd;
 			string m_StrName;
 			COTSClassifyEng* m_Engine;
 
 			
+
+			
+
 	};
 }

+ 1 - 1
OTSCPP/OTSClassifyEngine/InclutionEngine/OTSClassifyEng.cpp

@@ -1330,7 +1330,7 @@ namespace OTSClassifyEngine
 	
 
 	// nominate element chemistries list 
-	BOOL COTSClassifyEng::NomiNateElChemsList( CElementChemistriesList& a_listElChemsInc, 
+	BOOL COTSClassifyEng::NominateElChemsList( CElementChemistriesList& a_listElChemsInc, 
 											   CElementChemistriesList& a_listNomiElChemsInc)
 	{
 		// return FALSE if nothing in the input list

+ 4 - 4
OTSCPP/OTSClassifyEngine/InclutionEngine/OTSClassifyEng.h

@@ -65,7 +65,9 @@ namespace OTSClassifyEngine
 									 double a_dMolarSumNoFe,
 									 int& a_nIncId);
 
-		
+		 //  nominate element chemistries list 
+		 BOOL NominateElChemsList(CElementChemistriesList& a_listElChemsInc,
+			 CElementChemistriesList& a_listNomiElChemsInc);
 	
 	
 	protected:
@@ -120,9 +122,7 @@ namespace OTSClassifyEngine
 		CSTDItemsList listNitrideSTD;
 		CSTDItemsList listCarbonSTD;
 	
-		//  nominate element chemistries list 
-		BOOL NomiNateElChemsList(CElementChemistriesList& a_listElChemsInc,
-			CElementChemistriesList& a_listNomiElChemsInc);
+		
 		// get classify STD items
 		BOOL GetClassifySTDItem(CInclutionSTDDataPtr a_pPartSTDDataPtr, INC_CLASSIFY_TYPE a_nClassifyType, CSTDItemsList& a_listSTDItems);
 		BOOL GetClassifyTypeOfSTDItem(int a_nIncId, INC_CLASSIFY_TYPE& a_nClassifyType);

+ 5 - 0
OTSCPP/OTSClassifyEngine/SpectrumCompareEngine.cpp

@@ -110,6 +110,11 @@ bool CurveCompareEngine::ClassifyIncA(COTSParticlePtr particle, int SteelTech, C
 	return false;
 }
 
+bool CurveCompareEngine::ZeroElementProcess(COTSParticlePtr particle)
+{
+	return false;
+}
+
 
 OTSClassifyEngine::CLEEnginePtr GetCurveCompareEngine(std::string libName)
 {

+ 2 - 0
OTSCPP/OTSClassifyEngine/SpectrumCompareEngine.h

@@ -20,6 +20,8 @@ public:
 	virtual bool ClassifyExpression(COTSParticlePtr particle, CPosXrayPtr xray) override;
 	virtual bool ClassifyByExpressionTemporarySpectrum(COTSParticlePtr particle, CPosXrayPtr xray) override;
 	virtual bool ClassifyIncA(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray) override;
+	// Inherited via IClassifyEngine
+	virtual bool ZeroElementProcess(COTSParticlePtr particle) override;
 private:
 	CSTDLibPtr myLib;
 	CClassifyOnSpectrumCompEng* m_Engine;

+ 5 - 0
OTSCPP/OTSClrInterface/ClassificationClr/OTSClassifyEngineClr.cpp

@@ -100,4 +100,9 @@ namespace OTSCLRINTERFACE {
 		 engine->IfNeedMaxEDS(part, xraydata, MaxEDSTime);
 		return MaxEDSTime;
 	}
+	bool COTSClassifyEngineClr::ZeroElementProcess(COTSParticleClr^ particle)
+	{
+		return engine->ZeroElementProcess(particle->GetOTSParticlePtr());
+		
+	}
 }

+ 2 - 0
OTSCPP/OTSClrInterface/ClassificationClr/OTSClassifyEngineClr.h

@@ -34,6 +34,8 @@ namespace OTSCLRINTERFACE {
 		bool ClassifyIncA(COTSParticleClr^ particle, int SteelTech);//
 
 		double IfNeedMaxEDS(COTSParticleClr^ particle);
+
+		bool ZeroElementProcess(COTSParticleClr^ particle);
 	private:
 		IClassifyEngine* engine;
 	};