OTSFieldDataClr.cpp 1.3 KB

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