23382: [CEA 1981] Wrong mesh SMESH test

This commit is contained in:
eap 2016-11-07 15:12:37 +03:00
parent 75d0234b45
commit d2a8dd635e
3 changed files with 9 additions and 5 deletions

View File

@ -371,9 +371,6 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
MEMOSTAT;
if ( aCompactMesh )
aMesh.GetMeshDS()->compactMesh();
// fix quadratic mesh by bending iternal links near concave boundary
if ( aCompactMesh && // a final compute
aShape.IsSame( aMesh.GetShapeToMesh() ) &&
@ -386,6 +383,10 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh,
aHelper.FixQuadraticElements( sm->GetComputeError() );
}
}
if ( aCompactMesh )
aMesh.GetMeshDS()->compactMesh();
return ret;
}

View File

@ -60,7 +60,7 @@ typedef struct studyContextStruct
typedef std::set<int> TSetOfInt;
class SMESH_EXPORT SMESH_Gen
class SMESH_EXPORT SMESH_Gen
{
public:
SMESH_Gen();

View File

@ -1924,7 +1924,10 @@ CORBA::Boolean SMESH_Gen_i::Compute( SMESH::SMESH_Mesh_ptr theMesh,
// call implementation compute
::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
myGen.PrepareCompute( myLocMesh, myLocShape );
bool ok = myGen.Compute( myLocMesh, myLocShape, myLocShape != myLocMesh.GetShapeToMesh());
int how = ::SMESH_Gen::COMPACT_MESH;
if ( myLocShape != myLocMesh.GetShapeToMesh() ) // compute a sub-mesh
how |= ::SMESH_Gen::SHAPE_ONLY;
bool ok = myGen.Compute( myLocMesh, myLocShape, how );
meshServant->CreateGroupServants(); // algos can create groups (issue 0020918)
myLocMesh.GetMeshDS()->Modified();
return ok;