X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHFiltersSelection%2FSMESH_TypeFilter.cxx;h=acf7cb815df2119aba9ee34ffbe9c2a594285b18;hb=b22f47d357e3ff69d68f20056fbb4531fef857fa;hp=5e98287df5541ea4724d70b505dc72a3e64c321d;hpb=c38c10811a065cf5b13e8807ed71864d92ca7d80;p=modules%2Fsmesh.git diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx index 5e98287df..acf7cb815 100644 --- a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx @@ -33,20 +33,26 @@ bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const _PTR(SObject) objFather = obj->GetFather(); _PTR(SComponent) objComponent = obj->GetFatherComponent(); + if( objComponent->ComponentDataType()!="SMESH" ) + return false; + int aLevel = obj->Depth() - objComponent->Depth(); - // Max level under the component is 4: + // Max level under the component is 5: // // 0 Mesh Component // 1 |- Hypotheses // 2 | |- Regular 1D // |- Algorithms // |- Mesh 1 + // |- * Main Shape // |- Applied Hypotheses // |- Applied Algorithms // |- Submeshes on Face // 3 | |- SubmeshFace + // 4 | |- * Face 1 // 4 | |- Applied algorithms ( selectable in Use Case Browser ) + // 5 | |- Regular 1D // |- Group Of Nodes if (aLevel <= 0) @@ -56,13 +62,21 @@ bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const { case HYPOTHESIS: { - if ( aLevel == 2 && ( objFather->Tag() == 1 )) + if ( aLevel == 2 && ( objFather->Tag() == 1 )) // hypo definition + Ok = true; + else if ( aLevel == 3 && ( objFather->Tag() == 2 )) // applied global hypo + Ok = true; + else if ( aLevel == 5 && ( objFather->Tag() == 2 )) // applied local hypo Ok = true; break; } case ALGORITHM: { - if ( aLevel == 2 && ( objFather->Tag() == 2 )) + if ( aLevel == 2 && ( objFather->Tag() == 2 )) // algo definition + Ok = true; + else if ( aLevel == 3 && ( objFather->Tag() == 3 )) // applied global algo + Ok = true; + else if ( aLevel == 5 && ( objFather->Tag() == 3 )) // applied local algo Ok = true; break; }