CGBCalculate.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #pragma once
  2. #include "GridData.h"
  3. #include "GBFieldData.h"
  4. #include "ReportMgr.h"
  5. namespace OTSGBCalculate
  6. {
  7. //define String Resources for GB Grid
  8. using namespace OTSMODEL;
  9. const int GB_FIELD_WIDTH = 730;//normally,the number should be 707,we take 730 .Because the particle may be lost when measuring,so we make it a little bigger to compromise it.
  10. class __declspec(dllexport) CGBCalculate
  11. {
  12. public:
  13. CGBCalculate(CReportMgr* rptMgrPtr);
  14. ~CGBCalculate();
  15. CGridDatasList GetGBInclusion();
  16. protected:
  17. // calculate GB fields
  18. CGBFieldList CalGBFields(CSmplMsrResultFileMgrPtr pSmplMgr);
  19. // convert ots fields to gb fields
  20. BOOL OTSFieldToGBField(COTSFieldDataList allOTSFields, CGBFieldList* m_listGBFields, CSize sizePixelImage, int a_nFieldWidth, int a_nFieldHeight);
  21. //get the GB field within thr rectangle
  22. CGBFieldDataPtr GetOneGBField(COTSRect a_rectGBField, COTSFieldDataList& a_listOTSFields, CSize sizePixelImage, int a_nFieldWidth, int nOTSFieldHeight);
  23. // normalize particles for the GBFields
  24. CGBFieldDataPtr NormalizeParticles(COTSRect a_rectGBField, COTSFieldDataList a_listOTSFields, CSize sizePixelImage, int a_nFieldWidth, int a_nFieldHeight);
  25. //计算一个数据源中所获得的GBFields转化的统计数据
  26. CGridDatasList GetGridDataListForOneDataSource(CGBFieldList listCGBField, CALCULATE_TABLE_TYPE tableType);
  27. //计算一个数据源中所获得的GBFields转化的统计数据德标
  28. CGridDatasList GetGridDataListForOneDataSourceDIN(COTSParticleList listParticle, CALCULATE_TABLE_TYPE tableType);
  29. //获得所有计算得到的国标Field及particle的分级信息
  30. CGridDataPtr GetGBFieldGrid(CGBFieldList listCGBField);
  31. std::string GetLevelStr(GB_GRADE_TYPE l);
  32. CGridDataPtr GetGridLevel(CString GridType, int a_nLevel[], int a_nLevel_w[], int a_nLevel_s[]);
  33. CGridDataPtr GetGridDIN(COTSParticleList cotsparticlelistA, set<COTSParticlePtr> cotsparticlelistB, COTSParticleList cotsparticlelistC, COTSParticleList cotsparticlelistD);
  34. CGridDataPtr GetGridDSLevel(CGBFieldList DsFrames);
  35. void SetFrameLevelNo(GB_GRADE_TYPE levela, int nALevel[]);
  36. // particle list
  37. DOUBLE& GetPixSize() { return PixSize; }
  38. void SetPixSize(double p);
  39. DOUBLE PixSize;
  40. //pointer to the whole reportprojfilemgr
  41. CReportMgr* m_rptMgrPtr;
  42. private:
  43. void DisplayDSPartRow(COTSParticlePtr part, CGridColumnsList listCol);
  44. };
  45. }