X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHFiltersSelection%2FSMESH_NumberFilter.cxx;h=a446ad4c4dfafede06ccb1c01f400df99cdb5010;hb=499f29d24922cec66e41b41a0039a954993bc6df;hp=36a091c72fed8ed09115a8e9446bc71047085a49;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813;p=modules%2Fsmesh.git diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx index 36a091c72..a446ad4c4 100644 --- a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx @@ -1,33 +1,38 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2007-2022 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 -// 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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// 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 -// License along with this library; if not, write to the Free Software +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // File : SMESH_NumberFilter.cxx // Module : SMESH - +// #include "SMESH_NumberFilter.hxx" +#include + #include "GEOM_Client.hxx" -#include "GeometryGUI.h" #include "SUIT_Application.h" #include "SUIT_Session.h" +#include "SalomeApp_Application.h" #include "SalomeApp_Study.h" #include "LightApp_DataOwner.h" @@ -101,13 +106,15 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const if (aGeomObj->_is_nil()) return false; + // Get GEOM engine + GEOM::GEOM_Gen_var geomEngine = aGeomObj->GetGen(); + if ( CORBA::is_nil( geomEngine )) + return false; + // Get shape from geom object and verify its parameters GEOM_Client aGeomClient; - if ( CORBA::is_nil( GeometryGUI::GetGeomGen() ) && !GeometryGUI::InitGeomGen() ) - return false; - TopoDS_Shape aShape = aGeomClient.GetShape(GeometryGUI::GetGeomGen(), aGeomObj); - if (aShape.IsNull() || - !myShapeTypes.Contains(aShape.ShapeType())) + TopoDS_Shape aShape = aGeomClient.GetShape(geomEngine.in(), aGeomObj); + if (aShape.IsNull() || !myShapeTypes.Contains(aShape.ShapeType())) return false; if (myIsClosedOnly && aShape.ShapeType() == TopAbs_SHELL && !aShape.Closed()) @@ -115,25 +122,20 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const // Verify whether shape of entry object is sub-shape of myMainObj if (!myMainObj->_is_nil()) { - TopoDS_Shape aMainShape = aGeomClient.GetShape(GeometryGUI::GetGeomGen(), myMainObj); + TopoDS_Shape aMainShape = aGeomClient.GetShape(geomEngine.in(), myMainObj); if (aMainShape.IsNull()) return false; - bool isFound = false; - TopAbs_ShapeEnum aShapeType = aShape.ShapeType(); - TopExp_Explorer anExp (aMainShape, aShapeType); - for (; anExp.More(); anExp.Next()) { - if (anExp.Current() == aShape) { - isFound = true; + TopExp_Explorer anExp (aMainShape, aShape.ShapeType()); + for (; anExp.More(); anExp.Next()) + if (anExp.Current() == aShape) break; - } - } - if (!isFound) + if (!anExp.More()) return false; } // Verify number of sub-shapes - if (mySubShapeType == TopAbs_SHAPE); + if (mySubShapeType == TopAbs_SHAPE) return true; TopTools_IndexedMapOfShape aMap; @@ -165,7 +167,7 @@ GEOM::GEOM_Object_ptr SMESH_NumberFilter::getGeom _PTR(Study) study = appStudy->studyDS(); QString entry = owner->entry(); - _PTR(SObject) aSO( study->FindObjectID( entry.latin1() ) ), aRefSO; + _PTR(SObject) aSO( study->FindObjectID( entry.toUtf8().data() ) ), aRefSO; if( extractReference && aSO && aSO->ReferencedObject( aRefSO ) ) aSO = aRefSO;