#include "stdafx.h" #include "HoleClr.h" #include namespace OTSCLRINTERFACE { CHoleClr::CHoleClr() { m_Hole = new CHolePtr(new CHole()); } CHoleClr::CHoleClr(String^ a_strName, int a_nShape, System::Drawing::Rectangle^ a_rectDomain) // constructor { ASSERT(a_strName); if (!a_strName) { LogErrorTrace(__FILE__, __LINE__, _T("CBSEImgClr: Generate CElementChemistryClr pointer failed.")); return; } m_Hole = new CHolePtr(new CHole()); CHolePtr d = GetHolePtr(); if (a_rectDomain == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("CDomainClr: invalide rectangle.")); return; } d->SetShape((DOMAIN_SHAPE)a_nShape); CRect* r = new CRect(a_rectDomain->Left, a_rectDomain->Top, a_rectDomain->Right, a_rectDomain->Bottom); d->SetDomainRect(r); d->SetName(a_strName); } CHolePtr CHoleClr::GetHolePtr() { return *m_Hole; } CHoleClr::CHoleClr(CHolePtr a_pHole) // copy constructor { ASSERT(a_pHole); if (!a_pHole) { LogErrorTrace(__FILE__, __LINE__, _T("CHoleClr: Generate CElementChemistryClr pointer failed.")); return; } m_Hole = new CHolePtr(a_pHole); } CHoleClr::CHoleClr(CHole* a_pSource) // copy constructor { ASSERT(a_pSource); if (!a_pSource) { LogErrorTrace(__FILE__, __LINE__, _T("CHoleClr: Generate CHoleClr pointer failed.")); return; } m_Hole = new CHolePtr(new CHole(a_pSource)); } CHoleClr::~CHoleClr() { if (m_Hole != nullptr) { delete m_Hole; m_Hole = nullptr; } } CHoleClr::!CHoleClr() { if (m_Hole != nullptr) { delete m_Hole; m_Hole = nullptr; } } String^ CHoleClr::GetName() { String^ NameClr; if (m_Hole != nullptr) { CString sName = m_Hole->get()->GetName(); NameClr = gcnew String(sName); } return NameClr; } void CHoleClr::SetName(String^ a_strName) { ASSERT(a_strName); if (!a_strName) { LogErrorTrace(__FILE__, __LINE__, _T("SetFileVersion: invalid version.")); } if (m_Hole != nullptr) { m_Hole->get()->SetName(a_strName); } } System::Drawing::Rectangle CHoleClr::GetRectDomain() { CHolePtr d = this->GetHolePtr(); CRect cr = d->GetDomainRect(); System::Drawing::Rectangle r(cr.left, cr.top, cr.Width(), cr.Height()); return r; } }