CGBGradeData.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #pragma once
  2. #include <GBFieldData.h>
  3. using namespace OTSDATA;
  4. namespace OTSGBCalculate
  5. {
  6. enum class GBIncCategory
  7. {
  8. AT = 1,//A thin
  9. AW=2,//A wide
  10. AS=3,//A super
  11. BT = 4,
  12. BW=5,
  13. BS=6,
  14. CT = 7,
  15. CW=8,
  16. CS=9,
  17. DT=10,
  18. DW= 11,
  19. DS = 12,
  20. DSulfideT = 13,
  21. DSulfideW=14,
  22. DSulfideS=15
  23. };
  24. class __declspec(dllexport) GBGradeCell
  25. {
  26. public:
  27. int nFldNum = 0;
  28. CGBFieldList GBFlds;
  29. void AddFld(CGBFieldDataPtr fld)
  30. {
  31. GBFlds.push_back(fld);
  32. nFldNum += 1;
  33. }
  34. };
  35. class __declspec(dllexport) CGBGradeData
  36. {
  37. public:
  38. static CONST int LEVEL_LENGTH = 11;
  39. CGBGradeData(CGBFieldList listCGBField)
  40. {
  41. GBMeasureArea = listCGBField;
  42. for (CGBFieldDataPtr GBFld : listCGBField)
  43. {
  44. //update the A class grid data
  45. GB_GRADE_TYPE levelt = GBFld->GetALevel()->GetThinGrade();
  46. GB_GRADE_TYPE levelw = GBFld->GetALevel()->GetWideGrade();
  47. GB_GRADE_TYPE levels = GBFld->GetALevel()->GetSuperGrade();
  48. ALevel[(int)levelt].AddFld(GBFld);
  49. ALevel_w[(int)levelw].AddFld(GBFld);
  50. ALevel_s[(int)levels].AddFld(GBFld);
  51. //update the B class grid data
  52. levelt = GBFld->GetBLevel()->GetThinGrade();
  53. levelw = GBFld->GetBLevel()->GetWideGrade();
  54. levels = GBFld->GetBLevel()->GetSuperGrade();
  55. BLevel[(int)levelt].AddFld(GBFld);
  56. BLevel_w[(int)levelw].AddFld(GBFld);
  57. BLevel_s[(int)levels].AddFld(GBFld);
  58. //update the C class grid data
  59. levelt = GBFld->GetCLevel()->GetThinGrade();
  60. levelw = GBFld->GetCLevel()->GetWideGrade();
  61. levels = GBFld->GetCLevel()->GetSuperGrade();
  62. CLevel[(int)levelt].AddFld(GBFld);
  63. CLevel_w[(int)levelw].AddFld(GBFld);
  64. CLevel_s[(int)levels].AddFld(GBFld);
  65. //update the D class grid data
  66. levelt = GBFld->GetDLevel()->GetThinGrade();
  67. levelw = GBFld->GetDLevel()->GetWideGrade();
  68. levels = GBFld->GetDLevel()->GetSuperGrade();
  69. DLevel[(int)levelt].AddFld(GBFld);
  70. DLevel_w[(int)levelw].AddFld(GBFld);
  71. DLevel_s[(int)levels].AddFld(GBFld);
  72. //update the DSulfide class grid data
  73. levelt = GBFld->GetDSulfideLevel()->GetThinGrade();
  74. levelw = GBFld->GetDSulfideLevel()->GetWideGrade();
  75. levels = GBFld->GetDSulfideLevel()->GetSuperGrade();
  76. DSulfideLevel[(int)levelt].AddFld(GBFld);
  77. DSulfideLevel_w[(int)levelw].AddFld(GBFld);
  78. DSulfideLevel_s[(int)levels].AddFld(GBFld);
  79. }
  80. for (CGBFieldDataPtr frame : listCGBField)
  81. {
  82. auto dsparticles = frame->listDSParticles;
  83. for (auto part : dsparticles)
  84. {
  85. allDSParts.push_back(part);
  86. }
  87. }
  88. }
  89. //Definition numbers
  90. //use the nXLevel array to memory how many fields in each level.
  91. GBGradeCell ALevel[LEVEL_LENGTH]; //nALevelZero, nALevel_0_5, nALevel_1_0, nALevel_1_5, nALevel_2_0, nALevel_2_5, nALevel_3_0, nALevel_3_5, nALevel_4_0, nALevel_4_5, nALevel_5_0 ;
  92. GBGradeCell ALevel_w[LEVEL_LENGTH]; //nALevelZero_f, nALevel_0_5_f, nALevel_1_0_f, nALevel_1_5_f, nALevel_2_0_f, nALevel_2_5_f, nALevel_3_0_f, nALevel_3_5_f, nALevel_4_0_f, nALevel_4_5_f, nALevel_5_0_f;
  93. GBGradeCell ALevel_s[LEVEL_LENGTH];
  94. GBGradeCell BLevel[LEVEL_LENGTH]; //nBLevelZero, nBLevel_0_5, nBLevel_1_0, nBLevel_1_5, nBLevel_2_0, nBLevel_2_5, nBLevel_3_0, nBLevel_3_5, nBLevel_4_0, nBLevel_4_5, nBLevel_5_0;
  95. GBGradeCell BLevel_w[LEVEL_LENGTH]; //nBLevelZero_f, nBLevel_0_5_f, nBLevel_1_0_f, nBLevel_1_5_f, nBLevel_2_0_f, nBLevel_2_5_f, nBLevel_3_0_f, nBLevel_3_5_f, nBLevel_4_0_f, nBLevel_4_5_f, nBLevel_5_0_f;
  96. GBGradeCell BLevel_s[LEVEL_LENGTH];
  97. GBGradeCell CLevel[LEVEL_LENGTH]; //nCLevelZero, nCLevel_0_5, nCLevel_1_0, nCLevel_1_5, nCLevel_2_0, nCLevel_2_5, nCLevel_3_0, nCLevel_3_5, nCLevel_4_0, nCLevel_4_5, nCLevel_5_0;
  98. GBGradeCell CLevel_w[LEVEL_LENGTH]; //nCLevelZero_f, nCLevel_0_5_f, nCLevel_1_0_f, nCLevel_1_5_f, nCLevel_2_0_f, nCLevel_2_5_f, nCLevel_3_0_f, nCLevel_3_5_f, nCLevel_4_0_f, nCLevel_4_5_f, nCLevel_5_0_f;
  99. GBGradeCell CLevel_s[LEVEL_LENGTH];
  100. GBGradeCell DLevel[LEVEL_LENGTH];// nDLevelZero, nDLevel_0_5, nDLevel_1_0, nDLevel_1_5, nDLevel_2_0, nDLevel_2_5, nDLevel_3_0, nDLevel_3_5, nDLevel_4_0, nDLevel_4_5, nDLevel_5_0;
  101. GBGradeCell DLevel_w[LEVEL_LENGTH]; //nDLevelZero_f, nDLevel_0_5_f, nDLevel_1_0_f, nDLevel_1_5_f, nDLevel_2_0_f, nDLevel_2_5_f, nDLevel_3_0_f, nDLevel_3_5_f, nDLevel_4_0_f, nDLevel_4_5_f, nDLevel_5_0_f;
  102. GBGradeCell DLevel_s[LEVEL_LENGTH];
  103. GBGradeCell DSulfideLevel[LEVEL_LENGTH];// nDLevelZero, nDLevel_0_5, nDLevel_1_0, nDLevel_1_5, nDLevel_2_0, nDLevel_2_5, nDLevel_3_0, nDLevel_3_5, nDLevel_4_0, nDLevel_4_5, nDLevel_5_0;
  104. GBGradeCell DSulfideLevel_w[LEVEL_LENGTH]; //nDLevelZero_f, nDLevel_0_5_f, nDLevel_1_0_f, nDLevel_1_5_f, nDLevel_2_0_f, nDLevel_2_5_f, nDLevel_3_0_f, nDLevel_3_5_f, nDLevel_4_0_f, nDLevel_4_5_f, nDLevel_5_0_f;
  105. GBGradeCell DSulfideLevel_s[LEVEL_LENGTH];
  106. CGBParticleList allDSParts;
  107. private:
  108. CGBFieldList GBMeasureArea;
  109. };
  110. }