mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-25 17:00:34 +05:00
0021345: EDF 1936 : Problem in submeshes management
In ProcessEvent(), fix detection of algo removal
This commit is contained in:
parent
2d61b98c65
commit
2edfe63af3
@ -166,17 +166,24 @@ namespace {
|
||||
EventListenerData* data,
|
||||
const SMESH_Hypothesis* /*hyp*/)
|
||||
{
|
||||
bool hypRemoved = ( eventType == SMESH_subMesh::ALGO_EVENT &&
|
||||
subMesh->GetAlgoState() != SMESH_subMesh::HYP_OK );
|
||||
if ( hypRemoved && data )
|
||||
if ( data && eventType == SMESH_subMesh::ALGO_EVENT )
|
||||
{
|
||||
list<SMESH_subMesh*>::iterator smIt = data->mySubMeshes.begin();
|
||||
for ( ; smIt != data->mySubMeshes.end(); ++smIt )
|
||||
bool hypRemoved;
|
||||
if ( subMesh->GetAlgoState() != SMESH_subMesh::HYP_OK )
|
||||
hypRemoved = true;
|
||||
else {
|
||||
SMESH_Gen * gen = subMesh->GetFather()->GetGen();
|
||||
SMESH_Algo* algo = gen->GetAlgo( *subMesh->GetFather(), subMesh->GetSubShape() );
|
||||
hypRemoved = ( string( algo->GetName() ) != StdMeshers_CompositeSegment_1D::AlgoName());
|
||||
}
|
||||
if ( hypRemoved )
|
||||
{
|
||||
if ( SMESH_subMesh* sm = *smIt ) {
|
||||
sm->SetIsAlwaysComputed( false );
|
||||
sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
|
||||
}
|
||||
list<SMESH_subMesh*>::iterator smIt = data->mySubMeshes.begin();
|
||||
for ( ; smIt != data->mySubMeshes.end(); ++smIt )
|
||||
if ( SMESH_subMesh* sm = *smIt ) {
|
||||
sm->SetIsAlwaysComputed( false );
|
||||
sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
|
||||
}
|
||||
}
|
||||
}
|
||||
// at study restoration:
|
||||
@ -223,10 +230,19 @@ StdMeshers_CompositeSegment_1D::StdMeshers_CompositeSegment_1D(int hypId
|
||||
:StdMeshers_Regular_1D(hypId, studyId, gen)
|
||||
{
|
||||
MESSAGE("StdMeshers_CompositeSegment_1D::StdMeshers_CompositeSegment_1D");
|
||||
_name = "CompositeSegment_1D";
|
||||
_name = AlgoName();
|
||||
_EventListener = new VertexNodesRestoringListener();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : AlgoName
|
||||
//purpose : Returns algo type name
|
||||
//=======================================================================
|
||||
|
||||
std::string StdMeshers_CompositeSegment_1D::AlgoName()
|
||||
{
|
||||
return "CompositeSegment_1D";
|
||||
}
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user