CGBLevel.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include "otsdataconst.h"
  3. #include "OTSFieldData.h"
  4. namespace OTSGBCalculate
  5. {
  6. using namespace OTSDATA;
  7. class __declspec(dllexport) CGBFieldData;
  8. class __declspec(dllexport) CGBLevel
  9. {
  10. public:
  11. CGBLevel();
  12. // constructor
  13. CGBLevel(CGBFieldData * GBField, GB_LEVEL_TYPE a_nLevel);
  14. CGBLevel(const CGBLevel&); // copy constructor
  15. CGBLevel(CGBLevel*); // copy constructor
  16. CGBLevel& operator=(const CGBLevel&); // =operator
  17. BOOL operator==(const CGBLevel&); // =operator
  18. virtual ~CGBLevel(); // detractor
  19. //获得细系颗粒的级别(非DS下同)
  20. GB_GRADE_TYPE GetThinGrade();
  21. //获得粗系颗粒的级别
  22. GB_GRADE_TYPE GetWideGrade();
  23. //获得超尺寸颗粒的级别
  24. GB_GRADE_TYPE GetSuperGrade();
  25. double GetMaxFeretDiameter();
  26. protected:
  27. // cleanup
  28. void Cleanup();
  29. // initialization
  30. void Init();
  31. // duplication
  32. void Duplicate(const CGBLevel& a_oSource);
  33. private:
  34. //视场各类的分级数:A / B / C / D / DS
  35. GB_LEVEL_TYPE m_nLevel;
  36. CGBFieldData* m_GBField;
  37. double m_FeretDiameterMax;
  38. };
  39. typedef std::shared_ptr<CGBLevel> __declspec(dllexport) CGBLevelPtr;
  40. GB_GRADE_TYPE __declspec(dllexport) GetAGrade(double dLengthAll);
  41. GB_GRADE_TYPE __declspec(dllexport) GetBGrade(double dLengthAll);
  42. GB_GRADE_TYPE __declspec(dllexport) GetCGrade(double dLengthAll);
  43. GB_GRADE_TYPE __declspec(dllexport) GetDGrade(int nSize);
  44. CString __declspec(dllexport) GetDSGrade(double dFeretDiameterMax);
  45. }