12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #pragma once
- #include "OTSParticle.h"
- #include "OTSRect.h"
- namespace OTSDATA {
- class __declspec(dllexport) COTSFieldData : public xmls::ISlo
- {
- public:
- // constructor
- COTSFieldData(); // constructor
- COTSFieldData(const COTSFieldData&); // copy constructor
- COTSFieldData(COTSFieldData*); // copy constructor
- COTSFieldData& operator=(const COTSFieldData&); // =operator
- BOOL operator==(const COTSFieldData&); // ==operator
- virtual ~COTSFieldData(); // destructor
- //void Serialize(CArchive& ar); // serializatio
- virtual void Serialize(bool isStoring, tinyxml2::XMLDocument *classDoc, tinyxml2::XMLElement *rootNode);
- // ID
- int GetId() { return m_nID; }
- void SetId(int a_nID) { m_nID = a_nID; }
- // position (from field center manager)
- CPoint GetPosition() { return m_poiPos; }
- void SetPosition(CPoint a_poiPos) { m_poiPos.x = a_poiPos.x;m_poiPos.y=a_poiPos.y; }
- COTSRect GetOTSRect() { return m_rect; }
- void SetOTSRect(COTSRect r) { m_rect = r; }
-
- // particle list
- COTSParticleList& GetParticleList() { return m_listParticles; }
- void SetParticleList(COTSParticleList& a_listParticles, BOOL a_bClear = TRUE);
-
- // particle list
- COTSParticleList& GetBigParticleList() { return m_listBigParticles; }
- void SetBigParticleList(COTSParticleList& a_listParticles, BOOL a_bClear = TRUE);
- void AddParticle(COTSParticlePtr a_Particle) { m_listBigParticles.push_back(a_Particle); };
- //get bordered particles
- COTSParticleList GetTopBorderedBigParticles();
- //get bordered particles
- COTSParticleList GetBottomBorderedBigParticles();
- //get bordered particles
- COTSParticleList GetLeftBorderedBigParticles();
- //get bordered particles
- COTSParticleList GetRightBorderedBigParticles();
- // is empty
- BOOL IsEmpty() { return m_listParticles.empty(); }
- long Width;
- long Height;
- protected:
- // cleanup
- void Cleanup();
- // initialization
- void Init();
- // duplication
- void Duplicate(const COTSFieldData& a_oSource);
- // ID
- int m_nID;
- double m_pixelSize;
- COTSRect m_rect;
- // position (from field center manager)
- CPoint m_poiPos;
- // particle list
- COTSParticleList m_listParticles;
- //valid big particles
- COTSParticleList m_listBigParticles;//used for merging with other field later.
- };
- typedef std::shared_ptr<COTSFieldData> __declspec(dllexport) COTSFieldDataPtr;
- typedef std::vector<COTSFieldDataPtr> __declspec(dllexport) COTSFieldDataList;
- }
|