From e57d64d3910c1a5f0eca72ee7244d32873495517 Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 18 Nov 2013 16:51:16 +0000 Subject: [PATCH] Regression of SALOME_TESTS/Grids/smesh/bugs_03/D6 Improve the EventListener to clean all EDGEs of a complex side if one EDGE is cleaned --- src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx b/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx index c2798d959..c71c9dfc0 100644 --- a/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx +++ b/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx @@ -215,6 +215,18 @@ namespace { } } } + // clean all EDGEs of a complex side if one EDGE is cleaned + else if ( event == SMESH_subMesh::CLEAN && + eventType == SMESH_subMesh::COMPUTE_EVENT ) + { + SMESH_subMeshIteratorPtr smIt = subMesh->getDependsOnIterator(/*includeSelf=*/false); + while ( smIt->more() ) // loop on VERTEX sub-meshes + { + SMESH_subMesh* sm = smIt->next(); + if ( sm->IsAlwaysComputed() ) // it's an internal node sub-mesh + sm->ComputeStateEngine( SMESH_subMesh::CLEAN ); + } + } } }; // struct VertexNodesRestoringListener } -- 2.39.2