#include "stdafx.h" #include "OTSFieldDataClr.h" namespace OTSCLRINTERFACE { using namespace System::Drawing; COTSFieldDataClr::COTSFieldDataClr() // constructor { mFieldData =new COTSFieldDataPtr( new COTSFieldData()); } COTSFieldDataClr::COTSFieldDataClr(COTSFieldDataPtr a_pOTSFieldData) // copy constructor { mFieldData = new COTSFieldDataPtr(a_pOTSFieldData); } COTSFieldDataClr::!COTSFieldDataClr() { if (mFieldData != nullptr) { delete mFieldData; mFieldData = nullptr; } } COTSFieldDataClr::~COTSFieldDataClr() { if (mFieldData != nullptr) { delete mFieldData; mFieldData = nullptr; } } COTSFieldDataPtr COTSFieldDataClr::GetOTSFieldDataPtr() { return *mFieldData; } System::Drawing::Point^ COTSFieldDataClr::GetPosition() { return gcnew System::Drawing::Point(mFieldData->get()->GetPosition().x, mFieldData->get()->GetPosition().y); } void COTSFieldDataClr::SetPosition(int x, int y) { auto p1 = CPoint(x, y); mFieldData->get()->SetPosition(p1); } COTSParticleListClr ^ COTSFieldDataClr::GetParticleList() { COTSParticleListClr ^ plist = gcnew COTSParticleListClr(); auto particles = mFieldData->get()->GetParticleList(); for each(auto p in particles) { plist->Add( gcnew COTSParticleClr(p)); } return plist; } void COTSFieldDataClr::SetParticleList(COTSParticleListClr^ a_listParticles) { int nSize = (int)a_listParticles->Count; COTSParticleList ps; for (int i = 0; i < nSize; i++) { ps.push_back (a_listParticles[i]->GetOTSParticlePtr()); } mFieldData->get()->SetParticleList(ps); } }