OTSFieldDataClr.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. void COTSFieldDataClr::SetOTSRect(double left, double top, double right, double bottom)
  43. {
  44. COTSRect rec(left, top, right, bottom);
  45. mFieldData->get()->SetOTSRect(rec);
  46. }
  47. COTSParticleListClr ^ COTSFieldDataClr::GetParticleList()
  48. {
  49. COTSParticleListClr ^ plist = gcnew COTSParticleListClr();
  50. auto particles = mFieldData->get()->GetParticleList();
  51. for each(auto p in particles)
  52. {
  53. plist->Add( gcnew COTSParticleClr(p));
  54. }
  55. return plist;
  56. }
  57. void COTSFieldDataClr::SetParticleList(COTSParticleListClr^ a_listParticles)
  58. {
  59. int nSize = (int)a_listParticles->Count;
  60. COTSParticleList ps;
  61. for (int i = 0; i < nSize; i++)
  62. {
  63. ps.push_back (a_listParticles[i]->GetOTSParticlePtr());
  64. }
  65. mFieldData->get()->SetParticleList(ps);
  66. }
  67. }