ReportProjFileMgr.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. #pragma once
  2. #include "GBImgPropCal.h"
  3. #include "ReportProjFile.h"
  4. #include "PropParam.h"
  5. #include "SmplMsrResultFileMgr.h"
  6. #include "GridData.h"
  7. #include "OTSClassifyEng.h"
  8. #include "IncAFileMgr.h"
  9. #include "RptParamFile.h"
  10. namespace OTSMODEL {
  11. using namespace OTSDATA;
  12. const CString UNTITLED_NEW_FILE_NAME = _T("UntitledNew");
  13. const double Pi = 3.14159;
  14. class __declspec(dllexport) CReportProjFileMgr
  15. {
  16. public:
  17. CReportProjFileMgr(CReportProjFilePtr a_pReportProjFile); // constructor
  18. virtual ~CReportProjFileMgr(); // destructor
  19. // New
  20. BOOL NewFile();
  21. // Load
  22. BOOL Load(CString a_strPathname = _T(""));
  23. // Save
  24. BOOL Save();
  25. // Save as
  26. BOOL SaveAs();
  27. BOOL IsValid();
  28. // particle STD data
  29. CPartSTDDataPtr GetPartSTDData();
  30. BOOL SetPartSTDData(CPartSTDDataPtr a_pPartSTDData);
  31. // file modify flag
  32. BOOL IsModified() { return m_bModify; }
  33. void SetModify(BOOL a_bModify = TRUE) { m_bModify = a_bModify; }
  34. // set path name
  35. CString GetPathName() { return m_strPathName; }
  36. void SetPathName(CString a_strPathName) { m_strPathName = a_strPathName; }
  37. // sample measure result files
  38. CSmplMsrResultFileMgrList& GetSmplMsrResultMgrs() { return m_listSmplMgrs; }
  39. void SetSmplMsrResultMgrs(CSmplMsrResultFileMgrList a_listSmplMsrResultFileMgr);
  40. BOOL AddASmplMsrResultMgr(CString a_strPathName = _T(""));
  41. CSmplMsrResultFileMgrPtr GetASmplMsrResultMgrById(int a_nIndex);
  42. CSmplMsrResultFileMgrPtr GetASmplMsrResultMgrByPathName(CString a_strPathName);
  43. CSmplMsrResultFileMgrPtr GetASmplMsrResultMgrByFileName(CString a_strFileName);
  44. BOOL DeleteASmplMsrResultMgrById(int a_nIndex);
  45. BOOL DeleteASmplMsrResultMgrByPathName(CString a_strPathName);
  46. BOOL EditASmplMsrResultMgrById(int a_nIndex, CSmplMsrResultFileMgrPtr);
  47. // Get working sample
  48. CSmplMsrResultFileMgrPtr GetWorkingSmplMsrReslMgr();
  49. CString GetWorkingSampleName();
  50. BOOL SetWorkingSmplMsrReslMgr(CSmplMsrResultFileMgrPtr a_pSmplMsrResultMgr);
  51. // get file name
  52. CString GetFileName();
  53. //param set controller
  54. BOOL GetPartSizeFileList(int& a_nPos, std::vector<CString>& a_listPartSizeName);
  55. BOOL ChangePartSizeFromList(int a_nPos);
  56. // load column name string
  57. void LoadColumnString(std::vector<CString>& a_listStrings, UINT a_nFirstStringID, int nCount);
  58. void SetSelectedPicture(DISPLAY_PICTURE_TYPE a_nType);
  59. // set working sample index
  60. int GetWorkingSampleIndex() { return m_nWorkingSampeIndex; }
  61. void SetWorkingSampleIndex(int a_nWorkingSampleIndex) { m_nWorkingSampeIndex = a_nWorkingSampleIndex; }
  62. // part size index
  63. int GetPartSizeIndex() { return m_nPartSizeIndex; }
  64. void SetPartSizeIndex(int a_nPartSizeIndex) { m_nPartSizeIndex = a_nPartSizeIndex; }
  65. BOOL IsHaveMultiDataSource();
  66. // queryController content
  67. // property parameters
  68. BOOL ResetPropertyParams(BOOL a_bClear = FALSE);
  69. CPropParamsList& GetPropertyParams() { return m_listPropParams; }
  70. CPropParamPtr GetCurrentPropParam() { return m_CurrentPropParam; }
  71. void SetPropertyParams(CPropParamsList listPropertyParams);
  72. CPropParamPtr GetPropertyParamImage();
  73. CPropParamPtr GetPropertyParamGrid();
  74. CPropParamPtr GetPropertyParamChart();
  75. // report project file file
  76. CReportProjFilePtr GetReportProjFile() { return m_pReportProjFile; }
  77. void SetReportProjFile(CReportProjFilePtr a_pReportProjFile) { m_pReportProjFile = a_pReportProjFile; }
  78. // grid computing
  79. // grid computing
  80. CGridDatasList GridDataTransfer();
  81. // reclassify measure result
  82. BOOL ReClassify();
  83. // get inclusion index
  84. double GetInclusionIndex();
  85. COTSParticleList GetAnalysisParticleList(CString a_DataSourceName);
  86. // Get analysis x ray list
  87. CPosXraysList GetAnalysisXrayList(CString a_DataSourceName);
  88. // compute particle size distribution
  89. CGridDatasList CompParticleSizeDistribution();//原来是保护级别,现在改为公有
  90. double GetValueAsMethod(COTSParticlePtr a_pParticle, SIZE_CAL_METHOD_TYPE a_nMethod, double a_dPixelSize);
  91. CRptParamFilePtr GetRptParamFilePtr();
  92. protected:
  93. // property parameters list m_listPropParam contains 3 propParm object contrast to the Image、 Table and Chart tab
  94. CPropParamsList m_listPropParams;
  95. // the current PropParam object will change to the selected choice when the user click on the tab
  96. CPropParamPtr m_CurrentPropParam;
  97. // sample measure result files
  98. CSmplMsrResultFileMgrList m_listSmplMgrs;
  99. // file modify flag
  100. BOOL m_bModify;
  101. // path name
  102. CString m_strPathName;
  103. // working sample index
  104. int m_nWorkingSampeIndex;
  105. // part size index
  106. int m_nPartSizeIndex;
  107. //param file mgr
  108. //CRptParamFileMgr m_rptparamfilemgr;
  109. CRptParamFilePtr m_rptparamfile;
  110. // classify particle
  111. BOOL ClassifyParticles(COTSParticleList& a_listAnalysisParticles, CPosXraysList& a_listAnalysisXRay);
  112. BOOL ClassifyParticle(COTSParticlePtr a_pParticle, CPosXrayPtr a_pXRay);
  113. // get data source name list
  114. std::vector<CString> GetDataSourceNamesList();
  115. // get source name pos list
  116. std::vector<int> GetDataSourcePosList();
  117. // compute particle general information
  118. CGridDatasList CompParticleGenInfo();
  119. CSTDItemPtr GetParticleSTDItem(int STDItemId);
  120. bool GetSTDMapedParticleList( const COTSParticleList & a_listParticle, std::map<int, COTSParticleList>* mapSameSTDItemPartList);
  121. // compute particle general information according to particle list
  122. BOOL GetGenInfoFromParticleList(COTSParticleList a_listParticle, CPosXraysList a_listXray, double a_dPixelSize, CGridDataPtr a_pGridData);
  123. // compute particle component
  124. CGridDatasList CompParticleComponent();
  125. // compute particle component according to particle list
  126. BOOL GetComponentFromParticleList(COTSParticleList a_listParticle, SIZE_CAL_METHOD_TYPE a_nMethod, double a_dPixelSize, CGridDataPtr a_pGridData);
  127. // compute element component
  128. CGridDatasList CompElementComponent();
  129. BOOL GetElementComponentFromParticleList(COTSParticleList a_listParticleAll, CPosXraysList a_listXray, CGridDataPtr a_pGridData);
  130. // compute particle SizeDistribution according to particle list
  131. BOOL GetSizeDistributionFromParticleList(COTSParticleList a_listParticle, CGridDataPtr a_pGridData, double a_dPixelSize);
  132. // compute average element component
  133. CGridDatasList CompAveElemnetComponent();
  134. // compute average element component from particle list
  135. BOOL GetAveElementFromParticleList(COTSParticleList a_listParticleAll, CPosXraysList a_listXray, CGridDataPtr a_pGridData);
  136. // compute sort image class
  137. CGridDatasList CompSortClass();
  138. // compute sort class from particle list
  139. BOOL GetSortClassFromParticleList(COTSParticleList a_listParticleAll, CGridDataPtr a_pGridData);
  140. // compute sort image kind
  141. CGridDatasList CompSortKind();
  142. // compute sort king from particle list
  143. BOOL GetSortKindFromParticleList(COTSParticleList a_listParticleAll, CGridDataPtr a_pGridData);
  144. // compute sort image size
  145. CGridDatasList CompSortSize();
  146. // compute sort size from particle list
  147. BOOL GetSortSizeFromParticleList(COTSParticleList a_listParticleAll, double a_dPixelSize, CGridDataPtr a_pGridData);
  148. // compute sort image size
  149. CGridDatasList CompDistribution();//CGridInPtr a_pGridIn
  150. // compute sort size from particle list
  151. BOOL GetDistributionFromParticleList(CPropParamPtr a_prop, double a_dPixelSize, COTSParticleList a_listParticleAll, CGridDataPtr a_pGridData);
  152. // compute Ternary Phase from particle list
  153. // get element area list from particle list
  154. CElementChemistriesList GetUndefinedElementList(COTSParticleList a_listParticle, CPosXraysList a_listXray);
  155. CGridDatasList CompChartParticleComp();
  156. CGridDatasList CompChartElementComp();
  157. CGridDatasList CompChartParticleSize();
  158. //20190521 add common five classification
  159. BOOL GetCommonFiveFromParticleList(COTSParticleList a_listParticle, CGridDataPtr a_pGridData);
  160. CGridDatasList CompChartCommonFive();
  161. BOOL GetCommonClass( COTSParticlePtr a_pPart, INC_COMMON_CLASSIFY_TYPE& a_nType);
  162. BOOL EstimateShowColumn(CString a_strColName);
  163. protected:
  164. // report project file file
  165. CReportProjFilePtr m_pReportProjFile;
  166. };
  167. typedef std::shared_ptr<CReportProjFileMgr> __declspec(dllexport) CReportProjFileMgrPtr;
  168. }