|
@@ -248,15 +248,15 @@ namespace OTSGBCalculate
|
|
|
for (auto pParticle : m_listParticles)
|
|
|
{ // compute length width ratio
|
|
|
|
|
|
- CRect rectParticle = pParticle->GetParticleRect();
|
|
|
- //check the denominator is zero or not
|
|
|
- if (rectParticle.Width() == 0)
|
|
|
+ auto w = pParticle->GetDMin();
|
|
|
+
|
|
|
+ if (w == 0)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
//获取最大长度和最小宽度
|
|
|
double h = pParticle->GetDMax();
|
|
|
- double w = pParticle->GetDMin();
|
|
|
+
|
|
|
double dLengthWidthRatio = h / w;
|
|
|
if (dLengthWidthRatio < 1)
|
|
|
{
|
|
@@ -495,16 +495,16 @@ namespace OTSGBCalculate
|
|
|
for (auto pParticle : m_listParticles)
|
|
|
{
|
|
|
|
|
|
- //IdentifyPartChemicalType(pParticle);
|
|
|
//check the denominator is zero or not
|
|
|
- CRect rectParticle = pParticle->GetParticleRect();
|
|
|
- if (rectParticle.Width() == 0)
|
|
|
+ auto w = pParticle->GetDMin();
|
|
|
+
|
|
|
+ if (w == 0)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
//获取最小外接矩形的宽和高
|
|
|
double h = pParticle->GetDMax();
|
|
|
- double w = pParticle->GetDMin();
|
|
|
+
|
|
|
double dLengthWidthRatio = h / w;
|
|
|
if (dLengthWidthRatio < 1)
|
|
|
{
|
|
@@ -664,15 +664,15 @@ namespace OTSGBCalculate
|
|
|
for (auto pParticle : m_listParticles)
|
|
|
{ // compute length width ratio
|
|
|
|
|
|
- CRect rectParticle = pParticle->GetParticleRect();
|
|
|
- //check the denominator is zero or not
|
|
|
- if (rectParticle.Width() == 0)
|
|
|
+ auto w = pParticle->GetDMin();
|
|
|
+
|
|
|
+ if (w == 0)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
//获取最大长度和最小宽度
|
|
|
double h = pParticle->GetDMax();
|
|
|
- double w = pParticle->GetDMin();
|
|
|
+
|
|
|
double dLengthWidthRatio = h / w;
|
|
|
if (dLengthWidthRatio < 1)
|
|
|
{
|
|
@@ -702,7 +702,7 @@ namespace OTSGBCalculate
|
|
|
}
|
|
|
mapAllParticles[pParticle] = GBParticle(pParticle, GB_LEVEL_TYPE::A_TYPE, wt);
|
|
|
}
|
|
|
- else if (nChemicalType == GB_CHEMICAL_TYPE::CHE_O)
|
|
|
+ else if (nChemicalType == GB_CHEMICAL_TYPE::CHE_O || nChemicalType == GB_CHEMICAL_TYPE::CHE_Si || nChemicalType == GB_CHEMICAL_TYPE::CHE_Al)
|
|
|
{
|
|
|
// C
|
|
|
//计算颗粒宽度是属于细系粗系还是超尺寸
|
|
@@ -743,14 +743,17 @@ namespace OTSGBCalculate
|
|
|
else
|
|
|
{
|
|
|
// B or D
|
|
|
- GBParticle gbP = GBParticle(pParticle, GB_LEVEL_TYPE::INVALID, GB_WIDTH_TYPE::INVALID);
|
|
|
- //不能确定是B或D,先设为INVALID
|
|
|
- listBAndDParticles.push_back(gbP);
|
|
|
+ if (pParticle->GetChemicalType() != GB_CHEMICAL_TYPE::INVALID)//here we take all the particles
|
|
|
+ {
|
|
|
+ GBParticle gbP = GBParticle(pParticle, GB_LEVEL_TYPE::INVALID, GB_WIDTH_TYPE::INVALID);
|
|
|
+ //不能确定是B或D,先设为INVALID
|
|
|
+ listBAndDParticles.push_back(gbP);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- {
|
|
|
+
|
|
|
for (auto pGBParticle : listBAndDParticles)
|
|
|
{
|
|
|
// check if the particle is alone
|
|
@@ -849,7 +852,7 @@ namespace OTSGBCalculate
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
// caculate Level by DIN
|
|
|
void CGBFieldData::CaculateLevelDIN(COTSParticleList listParticle)
|