123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #pragma once
- #include "otsdataconst.h"
- #include "OTSFieldData.h"
- #include "CGBLevel.h"
- #include <set>
- #include "GBParticle.h"
- namespace OTSGBCalculate
- {
- using namespace std;
- using namespace OTSDATA;
- const CString STR_Al = _T("Al");
- const CString STR_SI = _T("Si");
- const CString STR_O = _T("O");
- const CString STR_SUL = _T("S");
- const CString STR_N = _T("N");
- const CString STR_Mn = _T("Mn");
- const CString STR_Fe = _T("Fe");
- const CString STR_C = _T("C");
- const double MIN_ELEMENT_SUM = 0.02;
- const double RICH_ELEMENT_SUM = 5;
- class __declspec(dllexport) 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
- void SetMyRect(COTSRect r) { m_myRect = r; }
- COTSRect GetMyRect() { return m_myRect; }
- // 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; }
-
- // 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);
- // 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 CategoryByMethod1();
- // caculate Level by method 2
- void CategoryByMethod2();
- void CategoryByASTM();
- void CaculateLevelDIN(COTSParticleList listParticle);
- BOOL IdentifyPartChemicalType(COTSParticlePtr Particle);
- std::string GetGBGradeString();
- GB_GRADE_TYPE GetGBTopGrade();
- 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);
-
- GB_METHODE_TYPE calcuType;
- private:
- // id
- int m_nFrameId;
- COTSRect m_myRect;
- // 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;
- }
|