123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #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 __declspec(dllexport) CGBFieldData
- {
- 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
- void SetMyRect(COTSRect r) { m_myRect = r; }
- COTSRect GetMyRect() { return m_myRect; }
- COTSParticleList& GetALLOTSParticleList() { return m_listOTSParticles; }
- void SetOTSParticleList(COTSParticleList& a_listParticles, BOOL a_bClear = TRUE);
- CPoint GetPosition() { return m_poiPos; }
- void SetPosition(CPoint a_poiPos) { m_poiPos.x = a_poiPos.x; m_poiPos.y = a_poiPos.y; } // serialization
-
- int GetFrameId() { return m_nFrameId; }
- void SetFrameId(int a_nFrameId) { m_nFrameId = a_nFrameId; }
-
- // 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; }
- GB_METHODE_TYPE GetCalcuType() { return calcuType; }
- void SetCalcuType(GB_METHODE_TYPE calType) { calcuType = calType; }
- // D sulfide level
- CGBLevelPtr GetDSulfideLevel() { return m_pDSulfidLevel; }
- COTSParticlePtr FindAdjacentParticle(COTSParticlePtr p, COTSParticleList plist);
-
- CGBParticleList listAThinParticles;
- CGBParticleList listAWideParticles;
- CGBParticleList listASuperParticles;
- CGBParticleList listBThinParticles;
- CGBParticleList listBWideParticles;
- CGBParticleList listBSuperParticles;
- CGBParticleList listCThinParticles;
- CGBParticleList listCWideParticles;
- CGBParticleList listCSuperParticles;
- CGBParticleList listDThinParticles;
- CGBParticleList listDWideParticles;
- CGBParticleList listDSuperParticles;
- CGBParticleList listDSParticles;
- CGBParticleList listDSulfideThinParticles;
- CGBParticleList listDSulfideWideParticles;
- CGBParticleList listDSulfideSuperParticles;
-
- COTSFieldDataList myReleventOTSFlds;
- COTSParticleList m_listOTSParticles;
-
- void CategoryByMethod1();
- // caculate Level by method 2
- void CategoryByMethod2();
- void CategoryByASTM();
- void CaculateLevelDIN(COTSParticleList listParticle);
- void ConnectStringParts(COTSParticleList listParticle, CGBParticleList& listGBParticle);
- std::string GetGBGradeString();
- std::string GetGBGradeDetail();
- GB_GRADE_TYPE GetGBTopGrade();
- protected:
- // cleanup
- void Cleanup();
- // initialization
- void Init();
- // duplication
- void Duplicate(const CGBFieldData& a_oSource);
-
- // caculate Level Width
- BOOL CaculateLevelThinWidth(COTSParticleList& a_listParticles, GB_CLASSIFY_TYPE a_nLevel);
-
- BOOL CaculateLevelFatWidth(COTSParticleList& a_listParticles, GB_CLASSIFY_TYPE a_nLevel);
- BOOL CaculateSuper(COTSParticleList& a_listParticles, GB_CLASSIFY_TYPE a_nLevel);
-
- GB_METHODE_TYPE calcuType;
- private:
- // id
- int m_nFrameId;
- COTSRect m_myRect;
- CPoint m_poiPos;
- // 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;
- }
|