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() ) &&
aHelper.FixQuadraticElements( sm->GetComputeError() );
}
}
+
+ if ( aCompactMesh )
+ aMesh.GetMeshDS()->compactMesh();
+
return ret;
}
// 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;