X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSMESHFiltersSelection%2FSMESH_NumberFilter.cxx;h=176cd3fb6bc52eb5b186f81c999834bb0ac4cec5;hb=e07015e9cc33a528a8ab0ad4733ee86aef2d5d3e;hp=517d45053e655064f435bd93975bcf24983b5d43;hpb=b22f47d357e3ff69d68f20056fbb4531fef857fa;p=modules%2Fsmesh.git diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx index 517d45053..176cd3fb6 100644 --- a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx @@ -1,3 +1,22 @@ +// Copyright (C) 2005 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 +// 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ +// // File : SMESH_NumberFilter.cxx // Module : SMESH @@ -10,7 +29,7 @@ #include "SUIT_Session.h" #include "SalomeApp_Study.h" -#include "SalomeApp_DataOwner.h" +#include "LightApp_DataOwner.h" #include "SALOME_InteractiveObject.hxx" #include "SALOMEDSClient_SObject.hxx" @@ -83,6 +102,8 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const // 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())) @@ -127,10 +148,10 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const // Purpose : Retrieve geom object from SALOME_InteractiveObject //======================================================================= GEOM::GEOM_Object_ptr SMESH_NumberFilter::getGeom - (const SUIT_DataOwner* theDataOwner) const + (const SUIT_DataOwner* theDataOwner, const bool extractReference ) const { - const SalomeApp_DataOwner* owner = - dynamic_cast(theDataOwner); + const LightApp_DataOwner* owner = + dynamic_cast(theDataOwner); SalomeApp_Study* appStudy = dynamic_cast (SUIT_Session::session()->activeApplication()->activeStudy()); @@ -142,7 +163,10 @@ GEOM::GEOM_Object_ptr SMESH_NumberFilter::getGeom _PTR(Study) study = appStudy->studyDS(); QString entry = owner->entry(); - _PTR(SObject) aSO(study->FindObjectID(entry.latin1())); + _PTR(SObject) aSO( study->FindObjectID( entry.latin1() ) ), aRefSO; + if( extractReference && aSO && aSO->ReferencedObject( aRefSO ) ) + aSO = aRefSO; + if (!aSO) return GEOM::GEOM_Object::_nil();