STDItem.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #pragma once
  2. #include "IntRange.h"
  3. #include "ElementRange.h"
  4. using namespace OTSDATA;
  5. namespace OTSClassifyEngine{
  6. // CSTDItem command target
  7. class __declspec(dllexport) CSTDItem : public xmls::ISlo
  8. {
  9. public:
  10. CSTDItem(); // constructor
  11. CSTDItem(const CSTDItem&); // copy constructor
  12. CSTDItem(CSTDItem*); // copy constructor
  13. CSTDItem& operator=(const CSTDItem&); // =operator
  14. BOOL operator==(const CSTDItem&); // ==operator
  15. virtual ~CSTDItem(); // destructor
  16. // serialization
  17. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  18. // name
  19. CString GetName() { return m_strName; }
  20. void SetName(CString a_strName) { m_strName = a_strName; }
  21. // color
  22. CString GetColor() { return m_clrColor; }
  23. void SetColor(CString a_clrColor) { m_clrColor = a_clrColor; }
  24. // circle radio
  25. double GetCircleRadio() { return m_dCircleRadio; }
  26. void SetCircleRadio(double a_dCircleRadio) { m_dCircleRadio = a_dCircleRadio; }
  27. // rectangle radio
  28. double GetRectRadio() { return m_dRectRadio; }
  29. void SetRectRadio(double a_dRectRadio) { m_dRectRadio = a_dRectRadio; }
  30. // STD id
  31. int GetSTDId() { return m_nSTDId; }
  32. void SetSTDId(int a_nSTDId) { m_nSTDId = a_nSTDId; }
  33. // width/height radio
  34. double GetWidth_HeightRadio() { return m_dWidth_Height; }
  35. void SetWidth_HeightRadio(double a_dWidth_Height) { m_dWidth_Height = a_dWidth_Height; }
  36. // gray level range
  37. CIntRangePtr GetGrayLevelRange() { return m_poGrayLevel; }
  38. void SetGrayLevelRange(CIntRangePtr a_poGrayLevel) { m_poGrayLevel = a_poGrayLevel; }
  39. // element range list
  40. CElementRangeList& GetElementRangeList() { return m_listElementRange; }
  41. void SetElementRangeList(CElementRangeList& a_istElementRange, BOOL a_bClear = TRUE);
  42. // element range num
  43. void SetElementRange(int a_nElementRangeNum) { m_nElementRangeNum = a_nElementRangeNum; }
  44. int GetElementRange() { return m_nElementRangeNum; }
  45. protected:
  46. // cleanup
  47. void Cleanup();
  48. // initialization
  49. void Init();
  50. // duplication
  51. void Duplicate(const CSTDItem& a_oSource);
  52. // name
  53. CString m_strName;
  54. // color
  55. CString m_clrColor;//COLORREF, C# can't access
  56. // circle radio
  57. double m_dCircleRadio;
  58. // rectangle radio
  59. double m_dRectRadio;
  60. // STD id
  61. int m_nSTDId;
  62. // width/height radio
  63. double m_dWidth_Height;
  64. // gray level range
  65. CIntRangePtr m_poGrayLevel;
  66. // element range num
  67. int m_nElementRangeNum;
  68. // element range list
  69. CElementRangeList m_listElementRange;
  70. };
  71. typedef std::shared_ptr<CSTDItem> __declspec(dllexport) CSTDItemPtr;
  72. typedef std::vector<CSTDItemPtr> __declspec(dllexport) CSTDItemsList;
  73. }