123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #pragma once
- #include "GridData.h"
- #include "GBFieldData.h"
- #include "ReportMgr.h"
- namespace OTSGBCalculate
- {
- //define String Resources for GB Grid
- using namespace OTSMODEL;
- const int GB_FIELD_WIDTH = 730;//normally,the number should be 707,we take 730 .Because the particle may be lost when measuring,so we make it a little bigger to compromise it.
- class __declspec(dllexport) CGBCalculate
- {
- public:
- CGBCalculate(CReportMgr* rptMgrPtr);
- ~CGBCalculate();
- CGridDatasList GetGBInclusion();
-
- protected:
- // calculate GB fields
- CGBFieldList CalGBFields(CSmplMsrResultFileMgrPtr pSmplMgr);
-
- // convert ots fields to gb fields
- BOOL OTSFieldToGBField(COTSFieldDataList allOTSFields, CGBFieldList* m_listGBFields, CSize sizePixelImage, int a_nFieldWidth, int a_nFieldHeight);
- //get the GB field within thr rectangle
- CGBFieldDataPtr GetOneGBField(COTSRect a_rectGBField, COTSFieldDataList& a_listOTSFields, CSize sizePixelImage, int a_nFieldWidth, int nOTSFieldHeight);
- // normalize particles for the GBFields
- CGBFieldDataPtr NormalizeParticles(COTSRect a_rectGBField, COTSFieldDataList a_listOTSFields, CSize sizePixelImage, int a_nFieldWidth, int a_nFieldHeight);
- //计算一个数据源中所获得的GBFields转化的统计数据
- CGridDatasList GetGridDataListForOneDataSource(CGBFieldList listCGBField, CALCULATE_TABLE_TYPE tableType);
- //计算一个数据源中所获得的GBFields转化的统计数据德标
- CGridDatasList GetGridDataListForOneDataSourceDIN(COTSParticleList listParticle, CALCULATE_TABLE_TYPE tableType);
- //获得所有计算得到的国标Field及particle的分级信息
- CGridDataPtr GetGBFieldGrid(CGBFieldList listCGBField);
- std::string GetLevelStr(GB_GRADE_TYPE l);
- CGridDataPtr GetGridLevel(CString GridType, int a_nLevel[], int a_nLevel_w[], int a_nLevel_s[]);
- CGridDataPtr GetGridDIN(COTSParticleList cotsparticlelistA, set<COTSParticlePtr> cotsparticlelistB, COTSParticleList cotsparticlelistC, COTSParticleList cotsparticlelistD);
- CGridDataPtr GetGridDSLevel(CGBFieldList DsFrames);
- void SetFrameLevelNo(GB_GRADE_TYPE levela, int nALevel[]);
-
- // particle list
- DOUBLE& GetPixSize() { return PixSize; }
- void SetPixSize(double p);
- DOUBLE PixSize;
- //pointer to the whole reportprojfilemgr
- CReportMgr* m_rptMgrPtr;
- private:
- void DisplayDSPartRow(COTSParticlePtr part, CGridColumnsList listCol);
- };
-
- }
|