#include "stdafx.h" #include "StageClr.h" #include namespace OTSCLRINTERFACE { CStageClr::CStageClr() { m_Stage = new CStagePtr(new CStage()); } CStageClr::CStageClr(CStagePtr pStage) // copy constructor { ASSERT(pStage); if (!pStage) { LogErrorTrace(__FILE__, __LINE__, _T("CStageClr: Invalid CGridRow pointer.")); return; } m_Stage = new CStagePtr(pStage); } CStageClr::CStageClr(CStage* a_pSource) // copy constructor { ASSERT(a_pSource); if (!a_pSource) { LogErrorTrace(__FILE__, __LINE__, _T("CBSEImgClr: Generate CBSEImgClr pointer failed.")); return; } m_Stage = new CStagePtr(new CStage(a_pSource)); } CStageClr::~CStageClr() { if (m_Stage != nullptr) { delete m_Stage; m_Stage = nullptr; } } CStageClr::!CStageClr() { if (m_Stage != nullptr) { delete m_Stage; m_Stage = nullptr; } } String^ CStageClr::GetName() { String^ NameClr; if (m_Stage != nullptr) { CString sName = m_Stage->get()->GetName(); NameClr = gcnew String(sName); } return NameClr; } void CStageClr::SetName(String^ a_strName) { ASSERT(a_strName); if (!a_strName) { LogErrorTrace(__FILE__, __LINE__, _T("SetFileVersion: invalid version.")); } if (m_Stage != nullptr) { m_Stage->get()->SetName(a_strName); } } CDomainClr^ CStageClr::GetBourary() { CDomainClr^ DomainClr; if (m_Stage != nullptr) { CDomainPtr Domain = m_Stage->get()->GetBoundary(); DomainClr = gcnew CDomainClr(Domain); } return DomainClr; } void CStageClr::SetBoundary(CDomainClr^ a_poBouray) { ASSERT(a_poBouray); if (!a_poBouray) { LogErrorTrace(__FILE__, __LINE__, _T("SetBoundary: invalid feature pointer.")); return; } if (m_Stage != nullptr) { CDomainPtr pDomain = a_poBouray->GetDomainPtr(); ASSERT(pDomain); if (!pDomain) { LogErrorTrace(__FILE__, __LINE__, _T("SetBoundary: invalid part Element pointer.")); return; } m_Stage->get()->SetBoundary(pDomain); } } CDomainClr^ CStageClr::GetSTD() { CDomainClr^ DomainClr; if (m_Stage != nullptr) { CDomainPtr Domain = m_Stage->get()->GetSTD(); DomainClr = gcnew CDomainClr(Domain); } return DomainClr; } void CStageClr::SetSTD(CDomainClr^ a_poSTD) { ASSERT(a_poSTD); if (!a_poSTD) { LogErrorTrace(__FILE__, __LINE__, _T("SetSTD: invalid feature pointer.")); return; } if (m_Stage != nullptr) { CDomainPtr pDomain = a_poSTD->GetDomainPtr(); ASSERT(pDomain); if (!pDomain) { LogErrorTrace(__FILE__, __LINE__, _T("SetSTD: invalid part Element pointer.")); return; } m_Stage->get()->SetSTD(pDomain); } } CHoleListClr^ CStageClr::GetHoleList() { auto pHoles = m_Stage->get()->GetHoleList(); CHoleListClr^ HoleListClr=gcnew CHoleListClr(); if (m_Stage != nullptr) { for (auto i = 0; i < (int)pHoles.size (); i++) { HoleListClr->Add(gcnew CHoleClr(pHoles[i])); } } return HoleListClr; } void CStageClr::SetHoleList(CHoleListClr^ a_listHoles) { ASSERT(a_listHoles); if (!a_listHoles) { LogErrorTrace(__FILE__, __LINE__, _T("SetSTD: invalid feature pointer.")); return; } if (m_Stage != nullptr) { CHolesList hls; for (auto pHoles = a_listHoles->GetEnumerator(); pHoles.MoveNext();) { hls.push_back(pHoles.Current->GetHolePtr()); } m_Stage->get()->SetHoleList(hls); } } CStagePtr CStageClr::GetStagePtr() { return *m_Stage; } }