#18097 [CEA] Mesh group not updated in the view after a compute with other hypotheses

This commit is contained in:
eap 2019-11-12 19:04:18 +03:00
parent 8fc0f4f355
commit abf6641b14
2 changed files with 5 additions and 8 deletions

View File

@ -12567,8 +12567,8 @@ int SMESH_MeshEditor::MakeBoundaryMesh(const TIDSortedElemSet& elements,
for ( inode = 0; inode < srcNodes.size(); ++inode ) for ( inode = 0; inode < srcNodes.size(); ++inode )
tgtNodes[inode] = getNodeWithSameID( tgtMeshDS, srcNodes[inode] ); tgtNodes[inode] = getNodeWithSameID( tgtMeshDS, srcNodes[inode] );
if ( /*aroundElements && */tgtEditor.GetMeshDS()->FindElement( tgtNodes, if ( /*aroundElements && */tgtEditor.GetMeshDS()->FindElement( tgtNodes,
missType, missType,
/*noMedium=*/false)) /*noMedium=*/false))
continue; continue;
tgtEditor.AddElement( tgtNodes, elemKind.SetPoly( tgtNodes.size()/(iQuad+1) > 4 )); tgtEditor.AddElement( tgtNodes, elemKind.SetPoly( tgtNodes.size()/(iQuad+1) > 4 ));
++nbAddedBnd; ++nbAddedBnd;
@ -12578,8 +12578,8 @@ int SMESH_MeshEditor::MakeBoundaryMesh(const TIDSortedElemSet& elements,
{ {
TConnectivity& nodes = missingBndElems[ i ]; TConnectivity& nodes = missingBndElems[ i ];
if ( /*aroundElements && */tgtEditor.GetMeshDS()->FindElement( nodes, if ( /*aroundElements && */tgtEditor.GetMeshDS()->FindElement( nodes,
missType, missType,
/*noMedium=*/false)) /*noMedium=*/false))
continue; continue;
SMDS_MeshElement* newElem = SMDS_MeshElement* newElem =
tgtEditor.AddElement( nodes, elemKind.SetPoly( nodes.size()/(iQuad+1) > 4 )); tgtEditor.AddElement( nodes, elemKind.SetPoly( nodes.size()/(iQuad+1) > 4 ));

View File

@ -983,11 +983,9 @@ void SMESHGUI_BaseComputeOp::computeMesh()
{ {
try { try {
OCC_CATCH_SIGNALS; OCC_CATCH_SIGNALS;
bool toDisplay = false;
std::string entry = (*anIter).second->GetID(); std::string entry = (*anIter).second->GetID();
if ( !aMesh->_is_nil() ) // display only a mesh if ( !aMesh->_is_nil() ) // display only a mesh
{ {
toDisplay = true;
SMESH_Actor *anActor = SMESH::FindActorByObject( aMesh ); SMESH_Actor *anActor = SMESH::FindActorByObject( aMesh );
if ( !anActor ) anActor = SMESH::CreateActor( entry.c_str(), /*clearLog =*/true ); if ( !anActor ) anActor = SMESH::CreateActor( entry.c_str(), /*clearLog =*/true );
if ( anActor ) // actor is not created for an empty mesh if ( anActor ) // actor is not created for an empty mesh
@ -996,8 +994,7 @@ void SMESHGUI_BaseComputeOp::computeMesh()
//SMESH::DisplayActor( SMESH::GetActiveWindow(), anActor ); -- 23615 //SMESH::DisplayActor( SMESH::GetActiveWindow(), anActor ); -- 23615
} }
} }
if ( toDisplay ) SMESH::UpdateView( SMESH::eDisplay, entry.c_str() );
SMESH::UpdateView( SMESH::eDisplay, entry.c_str() );
if ( SVTK_ViewWindow* vtkWnd = SMESH::GetVtkViewWindow(SMESH::GetActiveWindow() )) if ( SVTK_ViewWindow* vtkWnd = SMESH::GetVtkViewWindow(SMESH::GetActiveWindow() ))
if ( vtkWnd->getRenderer() ) if ( vtkWnd->getRenderer() )