CGBCalculate.h 2.4 KB

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