OTSFieldData.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma once
  2. #include "OTSParticle.h"
  3. namespace OTSDATA {
  4. class __declspec(dllexport) COTSFieldData : public xmls::ISlo
  5. {
  6. public:
  7. // constructor
  8. COTSFieldData(); // constructor
  9. COTSFieldData(const COTSFieldData&); // copy constructor
  10. COTSFieldData(COTSFieldData*); // copy constructor
  11. COTSFieldData& operator=(const COTSFieldData&); // =operator
  12. BOOL operator==(const COTSFieldData&); // ==operator
  13. virtual ~COTSFieldData(); // destructor
  14. //void Serialize(CArchive& ar); // serializatio
  15. virtual void Serialize(bool isStoring, tinyxml2::XMLDocument *classDoc, tinyxml2::XMLElement *rootNode);
  16. // ID
  17. int GetId() { return m_nID; }
  18. void SetId(int a_nID) { m_nID = a_nID; }
  19. // position (from field center manager)
  20. CPoint GetPosition() { return m_poiPos; }
  21. void SetPosition(CPoint a_poiPos) { m_poiPos = a_poiPos; }
  22. // field file folder
  23. CString GetFieldFileFolder() { return m_strFieldFileFolder; }
  24. void SetFieldFileFolder(CString a_strFieldFileFolder) { m_strFieldFileFolder = a_strFieldFileFolder; }
  25. // particle list
  26. COTSParticleList& GetParticleList() { return m_listParticles; }
  27. void SetParticleList(COTSParticleList& a_listParticles, BOOL a_bClear = TRUE);
  28. // is empty
  29. BOOL IsEmpty() { return m_listParticles.empty(); }
  30. protected:
  31. // cleanup
  32. void Cleanup();
  33. // initialization
  34. void Init();
  35. // duplication
  36. void Duplicate(const COTSFieldData& a_oSource);
  37. // ID
  38. int m_nID;
  39. // position (from field center manager)
  40. CPoint m_poiPos;
  41. // field file folder
  42. CString m_strFieldFileFolder;
  43. // particle list
  44. COTSParticleList m_listParticles;
  45. };
  46. typedef std::shared_ptr<COTSFieldData> __declspec(dllexport) COTSFieldDataPtr;
  47. typedef std::vector<COTSFieldDataPtr> __declspec(dllexport) COTSFieldDataList;
  48. }