ElementRangeClr.cpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #include "stdafx.h"
  2. #include "ElementRangeClr.h"
  3. namespace OTSINTERFACE {
  4. CElementRangeClr::CElementRangeClr()
  5. {
  6. m_LpElementRange= new CElementRangePtr(new CElementRange());
  7. }
  8. CElementRangeClr::CElementRangeClr(CElementRangePtr pElementRange) // copy constructor
  9. {
  10. ASSERT(pElementRange);
  11. if (!pElementRange)
  12. {
  13. LogErrorTrace(__FILE__, __LINE__, _T("CElementClr: Generate CElementRangeClr pointer failed."));
  14. return;
  15. }
  16. m_LpElementRange = new CElementRangePtr(pElementRange);
  17. }
  18. CElementRangePtr CElementRangeClr::GetElementRangePtr()
  19. {
  20. return *m_LpElementRange;
  21. }
  22. CElementRangeClr::CElementRangeClr(CElementRange* a_pSource) // copy constructor
  23. {
  24. ASSERT(a_pSource);
  25. if (!a_pSource)
  26. {
  27. LogErrorTrace(__FILE__, __LINE__, _T("CElementRangeClr: Generate CElementRangeClr pointer failed."));
  28. return;
  29. }
  30. m_LpElementRange = new CElementRangePtr(new CElementRange(a_pSource));
  31. }
  32. CElementRangeClr::~CElementRangeClr()
  33. {
  34. if (m_LpElementRange != nullptr)
  35. {
  36. delete m_LpElementRange;
  37. m_LpElementRange = nullptr;
  38. }
  39. }
  40. CElementRangeClr::!CElementRangeClr()
  41. {
  42. if (m_LpElementRange != nullptr)
  43. {
  44. delete m_LpElementRange;
  45. m_LpElementRange = nullptr;
  46. }
  47. }
  48. CElementClr^ CElementRangeClr::GetElement()
  49. {
  50. CElementClr^ ElementClr;
  51. if (m_LpElementRange != nullptr)
  52. {
  53. CElementPtr pElement = m_LpElementRange->get()->GetElement();
  54. ASSERT(pElement);
  55. if (!pElement)
  56. {
  57. LogErrorTrace(__FILE__, __LINE__, _T("CElementRangeClr: invalid Element pointer."));
  58. return ElementClr;
  59. }
  60. ElementClr = gcnew CElementClr(pElement);
  61. }
  62. return ElementClr;
  63. }
  64. void CElementRangeClr::SetElement(CElementClr^ a_poElement)
  65. {
  66. ASSERT(a_poElement);
  67. if (!a_poElement)
  68. {
  69. LogErrorTrace(__FILE__, __LINE__, _T("SetElement: invalid part std data."));
  70. return;
  71. }
  72. if (m_LpElementRange != nullptr)
  73. {
  74. CElementPtr pSetElement = a_poElement->GetElementPtr();
  75. ASSERT(pSetElement);
  76. if (!pSetElement)
  77. {
  78. LogErrorTrace(__FILE__, __LINE__, _T("SetElement: invalid part Element pointer."));
  79. return;
  80. }
  81. m_LpElementRange->get()->SetElement(pSetElement);
  82. }
  83. }
  84. CIntRangeClr^ CElementRangeClr::GetRange()
  85. {
  86. CIntRangeClr^ IntRangeClr;
  87. if (m_LpElementRange != nullptr)
  88. {
  89. CIntRangePtr pElement = m_LpElementRange->get()->GetRange();
  90. ASSERT(pElement);
  91. if (!pElement)
  92. {
  93. LogErrorTrace(__FILE__, __LINE__, _T("CIntRangeClr: invalid IntRange pointer."));
  94. return IntRangeClr;
  95. }
  96. IntRangeClr = gcnew CIntRangeClr(pElement);
  97. }
  98. return IntRangeClr;
  99. }
  100. void CElementRangeClr::SetRange(CIntRangeClr^ a_poRange)
  101. {
  102. ASSERT(a_poRange);
  103. if (!a_poRange)
  104. {
  105. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSTDData: invalid part std data."));
  106. return;
  107. }
  108. if (m_LpElementRange != nullptr)
  109. {
  110. CIntRangePtr pSetElement = a_poRange->GetCIntRangePtr();
  111. ASSERT(pSetElement);
  112. if (!pSetElement)
  113. {
  114. LogErrorTrace(__FILE__, __LINE__, _T("SetElement: invalid part Element pointer."));
  115. return;
  116. }
  117. m_LpElementRange->get()->SetRange(pSetElement);
  118. }
  119. }
  120. }