X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHFiltersSelection%2FSMESH_TypeFilter.cxx;h=26a9dc0a6307a590897655875459e71d65026265;hb=43db13f33a1d75fae36db8f06fa378ed7906a332;hp=3770b4a850869264c122cd7c3d6a011c75a65618;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813;p=modules%2Fsmesh.git diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx index 3770b4a85..26a9dc0a6 100644 --- a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx @@ -1,14 +1,16 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either +// License as published by the Free Software Foundation; either // version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public @@ -50,7 +52,7 @@ bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const _PTR(Study) study = appStudy->studyDS(); QString entry = owner->entry(); - _PTR(SObject) obj (study->FindObjectID(entry.latin1())), aRefSO; + _PTR(SObject) obj (study->FindObjectID(entry.toLatin1().data())), aRefSO; if( extractReference && obj && obj->ReferencedObject( aRefSO ) ) obj = aRefSO; if (!obj) return false; @@ -79,6 +81,7 @@ bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const // 4 | |- Applied algorithms ( selectable in Use Case Browser ) // 5 | |- Regular 1D // |- Group Of Nodes + // |- Group 1 if (aLevel <= 0) return false; @@ -86,90 +89,126 @@ bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const switch (myType) { case HYPOTHESIS: - { - if (aLevel == 2 && (objFather->Tag() == SMESH::Tag_HypothesisRoot)) + { + if (aLevel == 2 && (objFather->Tag() == SMESH::Tag_HypothesisRoot)) // hypo definition - Ok = true; - else if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_RefOnAppliedHypothesis)) + Ok = true; + else if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_RefOnAppliedHypothesis)) // applied global hypo - Ok = true; - else if (aLevel == 5 && (objFather->Tag() == SMESH::Tag_RefOnAppliedHypothesis)) + Ok = true; + else if (aLevel == 5 && (objFather->Tag() == SMESH::Tag_RefOnAppliedHypothesis)) // applied local hypo - Ok = true; - break; - } + Ok = true; + break; + } case ALGORITHM: - { - if (aLevel == 2 && (objFather->Tag() == SMESH::Tag_AlgorithmsRoot)) + { + if (aLevel == 2 && (objFather->Tag() == SMESH::Tag_AlgorithmsRoot)) // algo definition - Ok = true; - else if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_RefOnAppliedAlgorithms)) + Ok = true; + else if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_RefOnAppliedAlgorithms)) // applied global algo - Ok = true; - else if (aLevel == 5 && (objFather->Tag() == SMESH::Tag_RefOnAppliedAlgorithms)) + Ok = true; + else if (aLevel == 5 && (objFather->Tag() == SMESH::Tag_RefOnAppliedAlgorithms)) // applied local algo - Ok = true; - break; - } + Ok = true; + break; + } case MESH: - { - if (aLevel == 1 && (obj->Tag() >= SMESH::Tag_FirstMeshRoot)) - Ok = true; - break; - } + { + if (aLevel == 1 && (obj->Tag() >= SMESH::Tag_FirstMeshRoot)) + Ok = true; + break; + } case SUBMESH: - { - // see SMESH_Gen_i.cxx for tag numbers - if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstSubMesh && + { + // see SMESH_Gen_i.cxx for tag numbers + if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstSubMesh && objFather->Tag() <= SMESH::Tag_LastSubMesh)) - Ok = true; - break; - } + Ok = true; + break; + } case MESHorSUBMESH: - { - if (aLevel == 1 && (obj->Tag() >= SMESH::Tag_FirstMeshRoot)) - Ok = true; // mesh + { + if (aLevel == 1 && (obj->Tag() >= SMESH::Tag_FirstMeshRoot)) + Ok = true; // mesh else if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstSubMesh && objFather->Tag() <= SMESH::Tag_LastSubMesh)) - Ok = true; - break; - } + Ok = true; + break; + } case SUBMESH_VERTEX: // Label "SubMeshes on vertexes" - { - if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnVertex)) - Ok = true; - break; - } + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnVertex)) + Ok = true; + break; + } case SUBMESH_EDGE: - { - if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnEdge)) - Ok = true; - break; - } + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnEdge)) + Ok = true; + break; + } case SUBMESH_FACE: - { - if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnFace)) - Ok = true; - break; - } + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnFace)) + Ok = true; + break; + } case SUBMESH_SOLID: - { - if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnSolid)) - Ok = true; - break; - } + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnSolid)) + Ok = true; + break; + } case SUBMESH_COMPOUND: - { - if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnCompound)) - Ok = true; - break; - } + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnCompound)) + Ok = true; + break; + } case GROUP: - { - if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstGroup)) - Ok = true; - break; - } + { + if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstGroup)) + Ok = true; + break; + } + case GROUP_NODE: + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_NodeGroups)) + Ok = true; + break; + } + case GROUP_EDGE: + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_EdgeGroups)) + Ok = true; + break; + } + case GROUP_FACE: + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_FaceGroups)) + Ok = true; + break; + } + case GROUP_VOLUME: + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_VolumeGroups)) + Ok = true; + break; + } + case GROUP_0D: + { + if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_VolumeGroups+1)) + Ok = true; + break; + } + case IDSOURCE: + { + Ok = ( SMESH_TypeFilter(MESHorSUBMESH).isOk( theDataOwner ) || + SMESH_TypeFilter(GROUP) .isOk( theDataOwner )); + break; + } } } return Ok;