bos #29143 [CEA] Compute takes too much time in polyhedron per solid use case

more optimization: don't try to find more local algos if uniDimAlgoShapes is empty
This commit is contained in:
eap 2022-02-28 14:38:20 +03:00
parent f85bc0ab6f
commit a065ed143c
2 changed files with 42 additions and 39 deletions

View File

@ -390,6 +390,8 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType(); const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType();
if ( !uniDimAlgoShapes.IsEmpty() )
{
// get a shape the algo is assigned to // get a shape the algo is assigned to
if ( !GetAlgo( sm, & algoShape )) if ( !GetAlgo( sm, & algoShape ))
continue; // strange... continue; // strange...
@ -433,6 +435,7 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
Compute( aMesh, aSubShape, aFlags | SHAPE_ONLY_UPWARD, aDim, aShapesId, localAllowed ); Compute( aMesh, aSubShape, aFlags | SHAPE_ONLY_UPWARD, aDim, aShapesId, localAllowed );
} }
} }
}
// -------------------------------- // --------------------------------
// apply the all-dimensional algo // apply the all-dimensional algo
// -------------------------------- // --------------------------------

View File

@ -237,6 +237,6 @@ private:
int _MessInfo; int _MessInfo;
}; };
}; // namespace SMESHHOMARDImpl } // namespace SMESHHOMARDImpl
#endif #endif