OTSFieldDataClr.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "stdafx.h"
  2. #include "OTSFieldDataClr.h"
  3. namespace OTSCLRINTERFACE {
  4. using namespace System::Drawing;
  5. COTSFieldDataClr::COTSFieldDataClr() // constructor
  6. {
  7. mFieldData =new COTSFieldDataPtr( new COTSFieldData());
  8. }
  9. COTSFieldDataClr::COTSFieldDataClr(COTSFieldDataPtr a_pOTSFieldData) // copy constructor
  10. {
  11. mFieldData = new COTSFieldDataPtr(a_pOTSFieldData);
  12. }
  13. COTSFieldDataClr::!COTSFieldDataClr()
  14. {
  15. if (mFieldData != nullptr)
  16. {
  17. delete mFieldData;
  18. mFieldData = nullptr;
  19. }
  20. }
  21. COTSFieldDataClr::~COTSFieldDataClr()
  22. {
  23. if (mFieldData != nullptr)
  24. {
  25. delete mFieldData;
  26. mFieldData = nullptr;
  27. }
  28. }
  29. COTSFieldDataPtr COTSFieldDataClr::GetOTSFieldDataPtr()
  30. {
  31. return *mFieldData;
  32. }
  33. System::Drawing::Point^ COTSFieldDataClr::GetPosition()
  34. {
  35. return gcnew System::Drawing::Point(mFieldData->get()->GetPosition().x, mFieldData->get()->GetPosition().y);
  36. }
  37. void COTSFieldDataClr::SetPosition(int x, int y)
  38. {
  39. auto p1 = CPoint(x, y);
  40. mFieldData->get()->SetPosition(p1);
  41. }
  42. COTSParticleListClr ^ COTSFieldDataClr::GetParticleList()
  43. {
  44. COTSParticleListClr ^ plist = gcnew COTSParticleListClr();
  45. auto particles = mFieldData->get()->GetParticleList();
  46. for each(auto p in particles)
  47. {
  48. plist->Add( gcnew COTSParticleClr(p));
  49. }
  50. return plist;
  51. }
  52. void COTSFieldDataClr::SetParticleList(COTSParticleListClr^ a_listParticles)
  53. {
  54. int nSize = (int)a_listParticles->Count;
  55. COTSParticleList ps;
  56. for (int i = 0; i < nSize; i++)
  57. {
  58. ps.push_back (a_listParticles[i]->GetOTSParticlePtr());
  59. }
  60. mFieldData->get()->SetParticleList(ps);
  61. }
  62. }