CGBCalculate.h 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. class __declspec(dllexport) CGBCalculate
  10. {
  11. public:
  12. CGBCalculate(CReportMgr* rptMgrPtr);
  13. ~CGBCalculate();
  14. CGridDatasList GetGBInclusion();
  15. const int GB_FIELD_WIDTH = 707;
  16. protected:
  17. //计算一个数据源中所获得的GBFields转化的统计数据
  18. CGridDatasList GetGridDataListForOneDataSource(CGBFieldList listCGBField, CALCULATE_TABLE_TYPE tableType);
  19. //计算一个数据源中所获得的GBFields转化的统计数据德标
  20. CGridDatasList GetGridDataListForOneDataSourceDIN(COTSParticleList listParticle, CALCULATE_TABLE_TYPE tableType);
  21. //获得所有计算得到的国标Field及particle的分级信息
  22. CGridDataPtr GetGBFieldGrid(CGBFieldList listCGBField);
  23. std::string GetLevelStr(GB_GRADE_TYPE l);
  24. CGridDataPtr GetGridLevel(CString GridType, int a_nLevel[], int a_nLevel_w[], int a_nLevel_s[]);
  25. CGridDataPtr GetGridDIN(COTSParticleList cotsparticlelistA, set<COTSParticlePtr> cotsparticlelistB, COTSParticleList cotsparticlelistC, COTSParticleList cotsparticlelistD);
  26. CGridDataPtr GetGridDSLevel(CGBFieldList DsFrames);
  27. void SetFrameLevelNo(GB_GRADE_TYPE levela, int nALevel[]);
  28. // calculate GB fields
  29. CGBFieldList CalGBFields(CSmplMsrResultFileMgr* pSmplMgr);
  30. // calculate how many fields needed (horizontal)
  31. void CalOTSFieldsNo(int& a_nRow, int& a_nColumn, int a_nFieldWidth);
  32. // convert ots fields to gb fields
  33. BOOL OTSFieldToGBField(COTSFieldDataList allOTSFields, CGBFieldList* m_listGBFields, int a_nRow, int a_nColumn, CSize sizePixelImage,int a_nFieldWidth);
  34. //get the GB field within thr rectangle
  35. CGBFieldDataPtr GetOneGBField(CRect a_rectGBField, COTSFieldDataList& a_listOTSFields, int a_nRow, int a_nColumn, CSize sizePixelImage, int a_nFieldWidth);
  36. // normalize particles for the GBFields
  37. CGBFieldDataPtr NormalizeParticles(CRect a_rectGBField, COTSFieldDataList a_listOTSFields, CSize sizePixelImage, int a_nFieldWidth);
  38. BOOL GetGBFieldSegmentsList(int nColum, int nRow, COTSParticleList a_listOTSFieldParticles, int a_nCalNo,COTSSegmentsList &a_listGBFieldSegments, CSize a_sizePixelImage, int a_nFieldWidth);
  39. // merge the segment
  40. BOOL MergSegment(COTSSegmentsList &a_listGBFieldSegments, COTSSegmentPtr pGBFieldSegment, int a_nLastSegmentNo);
  41. // merge the segment,get new particles
  42. BOOL GetGBParticles(COTSSegmentsList a_listGBFieldSegments, COTSParticleList &a_listNormalizedParticles);
  43. // get feature list of up-down segment
  44. //BOOL GetFeatureList(COTSSegmentsList& a_listSegments, COTSFeatureList& a_listFeatures);
  45. BOOL GetFeatureList1(COTSSegmentsList & a_listSegments, COTSFeatureList & a_listFeatures);
  46. // change feature into particle
  47. BOOL ChangeFeaturelist(COTSFeatureList& a_listFeatures, COTSParticleList& a_listParticle);
  48. // particle list
  49. DOUBLE& GetPixSize() { return PixSize; }
  50. void SetPixSize(double p);
  51. DOUBLE PixSize;
  52. //pointer to the whole reportprojfilemgr
  53. CReportMgr* m_rptMgrPtr;
  54. };
  55. }