| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #pragma once
- #include "otsdataconst.h"
- #include "OTSFieldData.h"
- #include "CGBLevel.h"
- #include <set>
- #include "GBParticle.h"
- namespace OTSGBCalculate
- {
- using namespace std;
- using namespace OTSDATA;
- class CGBFieldData : public COTSFieldData
- {
- public:
- CGBFieldData(); // constructor
- CGBFieldData(const CGBFieldData&); // copy constructor
- CGBFieldData(CGBFieldData*); // copy constructor
- CGBFieldData& operator=(const CGBFieldData&); // =operator
- BOOL operator==(const CGBFieldData&); // =operator
- virtual ~CGBFieldData(); // detractor
- // serialization
- virtual void Serialize(bool isStoring, tinyxml2::XMLDocument *classDoc, tinyxml2::XMLElement *rootNode);
- // id
- int GetFrameId() { return m_nFrameId; }
- void SetFrameId(int a_nFrameId) { m_nFrameId = a_nFrameId; }
- GB_GRADE_TYPE GetMyGrade(GB_LEVEL_TYPE type, GB_WIDTH_TYPE wide);
- // A level
- CGBLevelPtr GetALevel() { return m_pALevel; }
- // B level
- CGBLevelPtr GetBLevel() { return m_pBLevel; }
- // C level
- CGBLevelPtr GetCLevel() { return m_pCLevel; }
- // D level
- CGBLevelPtr GetDLevel() { return m_pDLevel; }
- // DS level
- CGBLevelPtr GetDSLevel() { return m_pDSLevel; }
- // D sulfide level
- CGBLevelPtr GetDSulfideLevel() { return m_pDSulfidLevel; }
- COTSParticlePtr FindAdjacentParticle(COTSParticlePtr p, COTSParticleList plist);
- // caculate Level
- //void CaculateLevel( OTSMODEL::GB_METHODE_TYPE a_nMethodType);
- COTSParticleList listAThinParticles;
- COTSParticleList listAWideParticles;
- COTSParticleList listASuperParticles;
- set<COTSParticlePtr> listBThinParticles;
- set<COTSParticlePtr> listBWideParticles;
- set<COTSParticlePtr> listBSuperParticles;
- COTSParticleList listCThinParticles;
- COTSParticleList listCWideParticles;
- COTSParticleList listCSuperParticles;
- COTSParticleList listDThinParticles;
- COTSParticleList listDWideParticles;
- COTSParticleList listDSuperParticles;
- COTSParticleList listDSParticles;
- COTSParticleList listDSulfideThinParticles;
- COTSParticleList listDSulfideWideParticles;
- COTSParticleList listDSulfideSuperParticles;
- COTSFieldDataList myReleventOTSFlds;
- std::map<COTSParticlePtr, GBParticle> mapAllParticles;
- std::vector <GBParticle> allMyParticles;
- void CaculateLevelByMethod1();
- // caculate Level by method 2
- void CaculateLevelByMethod2();
- void CaculateLevelASTM();
- void CaculateLevelDIN(COTSParticleList listParticle);
- protected:
- // cleanup
- void Cleanup();
- // initialization
- void Init();
- // duplication
- void Duplicate(const CGBFieldData& a_oSource);
- // caculate Level by method 1
- // caculate Level Width
- BOOL CaculateLevelThinWidth(COTSParticleList& a_listParticles, GB_LEVEL_TYPE a_nLevel);
- GB_WIDTH_TYPE CaculateLevelWidth(COTSParticlePtr Particle, GB_LEVEL_TYPE a_nLevel);
- BOOL CaculateLevelFatWidth(COTSParticleList& a_listParticles, GB_LEVEL_TYPE a_nLevel);
- BOOL CaculateSuper(COTSParticleList& a_listParticles, GB_LEVEL_TYPE a_nLevel);
- private:
- // id
- int m_nFrameId;
- // A level
- CGBLevelPtr m_pALevel;
- // B level
- CGBLevelPtr m_pBLevel;
- // C level
- CGBLevelPtr m_pCLevel;
- // D level
- CGBLevelPtr m_pDLevel;
- // DS level
- CGBLevelPtr m_pDSLevel;
- // DSulfide level
- CGBLevelPtr m_pDSulfidLevel;
- };
- typedef std::shared_ptr<CGBFieldData> __declspec(dllexport) CGBFieldDataPtr;
- typedef std::vector<CGBFieldDataPtr> __declspec(dllexport) CGBFieldList;
- }
|