Compute Progress bar: ignore sub-meshes that are NOT_READY to compute

This commit is contained in:
eap 2013-07-08 11:27:16 +00:00
parent 8ead976689
commit e0f019ccf9
2 changed files with 18 additions and 9 deletions

View File

@ -1476,13 +1476,16 @@ double SMESH_Mesh::GetComputeProgress() const
while ( smIt->more() )
{
SMESH_subMesh* sm = smIt->next();
const int smCost = sm->GetComputeCost();
totalCost += smCost;
if ( sm != curSM &&
( !sm->IsEmpty() ||
sm->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE ))
if ( sm->GetComputeState() != SMESH_subMesh::NOT_READY )
{
computedCost += smCost;
const int smCost = sm->GetComputeCost();
totalCost += smCost;
if ( sm != curSM &&
( !sm->IsEmpty() ||
sm->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE ))
{
computedCost += smCost;
}
}
}
}
@ -1496,10 +1499,14 @@ double SMESH_Mesh::GetComputeProgress() const
//cout << " rate: " << rate << " cost " << algo->GetComputeCost() << endl;
computedCost += rate * algo->GetComputeCost();
}
else
else if ( curSM->IsEmpty() )
{
computedCost += algo->GetProgressByTic() * algo->GetComputeCost();
}
else
{
computedCost += 0.99 * algo->GetComputeCost();
}
}
//cout << "Total: " << totalCost << " progress: " << computedCost / totalCost << endl;
return computedCost / totalCost;

View File

@ -2089,7 +2089,8 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen,
{
const TopoDS_Shape& S = anExplorer.Current();
SMESH_subMesh* subMesh = _father->GetSubMesh( S );
theComputeCost += subMesh->GetComputeCost();
if ( subMesh->GetComputeState() != NOT_READY )
theComputeCost += subMesh->GetComputeCost();
if ( subMesh == this )
{
aBuilder.Add( aCompound, S );
@ -2109,7 +2110,8 @@ TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen,
while ( smIt->more() )
{
SMESH_subMesh* sm = smIt->next();
if ( sm->IsEmpty() )
if ( sm->GetComputeState() != NOT_READY &&
sm->IsEmpty() )
theComputeCost += sm->GetComputeCost();
}
}