StageClr.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #include "stdafx.h"
  2. #include "StageClr.h"
  3. #include <COTSUtilityDllFunExport.h>
  4. namespace OTSCLRINTERFACE {
  5. CStageClr::CStageClr()
  6. {
  7. m_Stage = new CStagePtr(new CStage());
  8. }
  9. CStageClr::CStageClr(CStagePtr pStage) // copy constructor
  10. {
  11. ASSERT(pStage);
  12. if (!pStage)
  13. {
  14. LogErrorTrace(__FILE__, __LINE__, _T("CStageClr: Invalid CGridRow pointer."));
  15. return;
  16. }
  17. m_Stage = new CStagePtr(pStage);
  18. }
  19. CStageClr::CStageClr(CStage* a_pSource) // copy constructor
  20. {
  21. ASSERT(a_pSource);
  22. if (!a_pSource)
  23. {
  24. LogErrorTrace(__FILE__, __LINE__, _T("CBSEImgClr: Generate CBSEImgClr pointer failed."));
  25. return;
  26. }
  27. m_Stage = new CStagePtr(new CStage(a_pSource));
  28. }
  29. CStageClr::~CStageClr()
  30. {
  31. if (m_Stage != nullptr)
  32. {
  33. delete m_Stage;
  34. m_Stage = nullptr;
  35. }
  36. }
  37. CStageClr::!CStageClr()
  38. {
  39. if (m_Stage != nullptr)
  40. {
  41. delete m_Stage;
  42. m_Stage = nullptr;
  43. }
  44. }
  45. String^ CStageClr::GetName()
  46. {
  47. String^ NameClr;
  48. if (m_Stage != nullptr)
  49. {
  50. CString sName = m_Stage->get()->GetName();
  51. NameClr = gcnew String(sName);
  52. }
  53. return NameClr;
  54. }
  55. void CStageClr::SetName(String^ a_strName)
  56. {
  57. ASSERT(a_strName);
  58. if (!a_strName)
  59. {
  60. LogErrorTrace(__FILE__, __LINE__, _T("SetFileVersion: invalid version."));
  61. }
  62. if (m_Stage != nullptr)
  63. {
  64. m_Stage->get()->SetName(a_strName);
  65. }
  66. }
  67. CDomainClr^ CStageClr::GetBourary()
  68. {
  69. CDomainClr^ DomainClr;
  70. if (m_Stage != nullptr)
  71. {
  72. CDomainPtr Domain = m_Stage->get()->GetBoundary();
  73. DomainClr = gcnew CDomainClr(Domain);
  74. }
  75. return DomainClr;
  76. }
  77. void CStageClr::SetBoundary(CDomainClr^ a_poBouray)
  78. {
  79. ASSERT(a_poBouray);
  80. if (!a_poBouray)
  81. {
  82. LogErrorTrace(__FILE__, __LINE__, _T("SetBoundary: invalid feature pointer."));
  83. return;
  84. }
  85. if (m_Stage != nullptr)
  86. {
  87. CDomainPtr pDomain = a_poBouray->GetDomainPtr();
  88. ASSERT(pDomain);
  89. if (!pDomain)
  90. {
  91. LogErrorTrace(__FILE__, __LINE__, _T("SetBoundary: invalid part Element pointer."));
  92. return;
  93. }
  94. m_Stage->get()->SetBoundary(pDomain);
  95. }
  96. }
  97. CDomainClr^ CStageClr::GetSTD()
  98. {
  99. CDomainClr^ DomainClr;
  100. if (m_Stage != nullptr)
  101. {
  102. CDomainPtr Domain = m_Stage->get()->GetSTD();
  103. DomainClr = gcnew CDomainClr(Domain);
  104. }
  105. return DomainClr;
  106. }
  107. void CStageClr::SetSTD(CDomainClr^ a_poSTD)
  108. {
  109. ASSERT(a_poSTD);
  110. if (!a_poSTD)
  111. {
  112. LogErrorTrace(__FILE__, __LINE__, _T("SetSTD: invalid feature pointer."));
  113. return;
  114. }
  115. if (m_Stage != nullptr)
  116. {
  117. CDomainPtr pDomain = a_poSTD->GetDomainPtr();
  118. ASSERT(pDomain);
  119. if (!pDomain)
  120. {
  121. LogErrorTrace(__FILE__, __LINE__, _T("SetSTD: invalid part Element pointer."));
  122. return;
  123. }
  124. m_Stage->get()->SetSTD(pDomain);
  125. }
  126. }
  127. CHoleListClr^ CStageClr::GetHoleList()
  128. {
  129. auto pHoles = m_Stage->get()->GetHoleList();
  130. CHoleListClr^ HoleListClr=gcnew CHoleListClr();
  131. if (m_Stage != nullptr)
  132. {
  133. for (auto i = 0; i < (int)pHoles.size (); i++)
  134. {
  135. HoleListClr->Add(gcnew CHoleClr(pHoles[i]));
  136. }
  137. }
  138. return HoleListClr;
  139. }
  140. void CStageClr::SetHoleList(CHoleListClr^ a_listHoles)
  141. {
  142. ASSERT(a_listHoles);
  143. if (!a_listHoles)
  144. {
  145. LogErrorTrace(__FILE__, __LINE__, _T("SetSTD: invalid feature pointer."));
  146. return;
  147. }
  148. if (m_Stage != nullptr)
  149. {
  150. CHolesList hls;
  151. for (auto pHoles = a_listHoles->GetEnumerator(); pHoles.MoveNext();)
  152. {
  153. hls.push_back(pHoles.Current->GetHolePtr());
  154. }
  155. m_Stage->get()->SetHoleList(hls);
  156. }
  157. }
  158. CStagePtr CStageClr::GetStagePtr()
  159. {
  160. return *m_Stage;
  161. }
  162. }