CGBLevel.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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_CLASSIFY_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. double GetThinLength();
  27. double GetWideLength();
  28. double GetSuperLength();
  29. protected:
  30. // cleanup
  31. void Cleanup();
  32. // initialization
  33. void Init();
  34. // duplication
  35. void Duplicate(const CGBLevel& a_oSource);
  36. private:
  37. //视场各类的分级数:A / B / C / D / DS
  38. GB_CLASSIFY_TYPE m_nLevel;
  39. CGBFieldData* m_GBField;
  40. double m_FeretDiameterMax;
  41. };
  42. typedef std::shared_ptr<CGBLevel> __declspec(dllexport) CGBLevelPtr;
  43. GB_GRADE_TYPE __declspec(dllexport) GetAGrade(double dLengthAll);
  44. GB_GRADE_TYPE __declspec(dllexport) GetBGrade(double dLengthAll);
  45. GB_GRADE_TYPE __declspec(dllexport) GetCGrade(double dLengthAll);
  46. GB_GRADE_TYPE __declspec(dllexport) GetDGrade(int nSize);
  47. CString __declspec(dllexport) GetDSGrade(double dFeretDiameterMax);
  48. }