STDItem.h 2.6 KB

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