| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- #include "stdafx.h"
- #include "OTSFieldMgrClr.h"
- namespace OTSINTERFACE {
- COTSFieldMgrClr::COTSFieldMgrClr()
- {
- mFieldMgr =new COTSFieldMgrPtr( new COTSFieldMgr());
- }
- COTSFieldMgrClr::COTSFieldMgrClr(COTSFieldMgrPtr a_pOTSFieldMgr)
- {
-
- mFieldMgr = new COTSFieldMgrPtr(a_pOTSFieldMgr);
-
- }
- COTSFieldMgrPtr COTSFieldMgrClr::GetCFiledMgrPtr()
- {
-
- return *mFieldMgr;
- }
- COTSFieldMgrClr::~COTSFieldMgrClr()
- {
- if (mFieldMgr != nullptr)
- {
- delete mFieldMgr;
- mFieldMgr = nullptr;
- }
- }
- COTSFieldMgrClr::!COTSFieldMgrClr()
- {
- if (mFieldMgr != nullptr)
- {
- delete mFieldMgr;
- mFieldMgr = nullptr;
- }
- }
-
- void COTSFieldMgrClr::SetOTSFieldData(COTSFieldDataClr^ a_pOTSFieldData)
- {
- ASSERT(a_pOTSFieldData);
- if (!a_pOTSFieldData)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("SetOTSFieldData: invalid OTS field data pointer."));
- return;
- }
- mFieldMgr->get()->SetOTSFieldData( a_pOTSFieldData->GetOTSFieldDataPtr());
- }
- void COTSFieldMgrClr::SetBSEImage(CBSEImgClr^ a_pBSEImg)
- {
- ASSERT(a_pBSEImg);
- if (!a_pBSEImg)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("SetOTSFieldData: invalid OTS field data pointer."));
- return;
- }
- mFieldMgr->get()->SetBSEImage( a_pBSEImg->GetBSEImgPtr ());
- }
- // delete BackGround
- bool COTSFieldMgrClr::RemoveBSEImageBG(COTSImgProcPrmClr^ a_pImageProcessParam, CBSEImgClr^% a_pBSEImg)
- {
- COTSFieldMgrPtr pOTSFieldMgr = GetCFiledMgrPtr();
- ASSERT(pOTSFieldMgr);
- if (!pOTSFieldMgr)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("DeleteBSEBackGround: invalid field mgr pointer."));
- return false;
- }
- ASSERT(a_pImageProcessParam);
- if (!a_pImageProcessParam)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("DeleteBSEBackGround: invalide image process pointer."));
- return false;
- }
- COTSImageProcessParamPtr pImgProc = a_pImageProcessParam->GetImgPrcPrmPtr();
- ASSERT(pImgProc);
- if (!pImgProc)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("DeleteBSEBackGround: can't get image process param pointer."));
- return false;
- }
- bool bRet = pOTSFieldMgr->RemoveBSEImageBG(pImgProc);
- return bRet;
- }
- bool COTSFieldMgrClr::IdentifyParticle(COTSImgProcPrmClr^ a_pImageProcessParam, System::Collections::Generic::List<Point>^% a_listXRayPos)
- {
-
- COTSFieldMgrPtr pOTSFieldMgr = GetCFiledMgrPtr();
- ASSERT(pOTSFieldMgr);
- if (!pOTSFieldMgr)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("IdentifySmlOrBigParticle: invalid field mgr pointer."));
- return false;
- }
- ASSERT(a_pImageProcessParam);
- if (!a_pImageProcessParam)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("IdentifySmlOrBigParticle: invalide image process pointer."));
- return false;
- }
- COTSImageProcessParamPtr pImgProc = a_pImageProcessParam->GetImgPrcPrmPtr();
- ASSERT(pImgProc);
- if (!pImgProc)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("IdentifySmlOrBigParticle: can't get image process param pointer."));
- return false;
- }
- CPosXraysList listXRayPos;
- a_listXRayPos->Clear();
- bool bRet = pOTSFieldMgr->IdentifyParticle(pImgProc, listXRayPos);
-
- for (auto ptXRay : listXRayPos)
- {
- Point pt;
- pt.X = ptXRay->GetPosition().x;
- pt.Y = ptXRay->GetPosition().y;
- a_listXRayPos->Add(pt);
- }
- return bRet;
- }
- CPosXrayListClr ^ COTSFieldMgrClr::GetSearchPosXrayList()
- {
- auto xlist = gcnew CPosXrayListClr();
- auto xrayList = mFieldMgr->get()->GetSearchPosXrayList();
- for each(auto xray in xrayList)
- {
- xlist->Add(gcnew CPosXrayClr(xray));
- }
- return xlist;
- }
- void COTSFieldMgrClr::SetSearchPosXayList(CPosXrayListClr^ a_listPosXray, bool a_bClear)
- {
-
- ASSERT(a_listPosXray);
- if (!a_listPosXray)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("SetSearchPosXayList: invalid pos xray list."));
- return;
- }
- CPosXraysList xList;
- for(int i = 0; i< (int)a_listPosXray->Count; i++)
- {
-
- xList.push_back (a_listPosXray[i]->GetPosXrayPtr());
- }
- mFieldMgr->get()->SetAnalysisPosXayList(xList,a_bClear);
- }
- CPosXrayListClr ^ COTSFieldMgrClr::GetAnalysisPosXrayList()
- {
- CPosXrayListClr^ xList = gcnew CPosXrayListClr();
- auto xrayList = mFieldMgr->get()->GetAnalysisPosXrayList();
- for each (auto x in xrayList)
- {
- xList->Add(gcnew CPosXrayClr(x));
- }
- return xList;
- }
- // analysis x ray list
- void COTSFieldMgrClr::SetAnalysisPosXayList(CPosXrayListClr^ a_listPosXray, bool a_bClear)
- {
-
- ASSERT(a_listPosXray);
- if (!a_listPosXray)
- {
- LogErrorTrace(__FILE__, __LINE__, _T("SetAnalysisPosXayList: invalid pos xray list."));
- return;
- }
- CPosXraysList xList;
- for (int i = 0; i < (int)a_listPosXray->Count; i++)
- {
-
- xList.push_back(a_listPosXray[i]->GetPosXrayPtr());
- }
- mFieldMgr->get()->SetAnalysisPosXayList(xList);
- }
-
- }
|