X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHFiltersSelection%2FSMESH_NumberFilter.cxx;h=958e7a0f953ed494abaa09671820c13eca9bc731;hb=ad354c1c09d07f6209959280776881d2e249721a;hp=3f0cd8834bfbc16666048532837aa1941f8c356b;hpb=c38c10811a065cf5b13e8807ed71864d92ca7d80;p=modules%2Fsmesh.git diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx index 3f0cd8834..958e7a0f9 100644 --- a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx @@ -3,13 +3,14 @@ #include "SMESH_NumberFilter.hxx" -#include "GEOMBase.h" +#include "GEOM_Client.hxx" +#include "GeometryGUI.h" #include "SUIT_Application.h" #include "SUIT_Session.h" #include "SalomeApp_Study.h" -#include "SalomeApp_DataOwner.h" +#include "LightApp_DataOwner.h" #include "SALOME_InteractiveObject.hxx" #include "SALOMEDSClient_SObject.hxx" @@ -81,9 +82,9 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const return false; // Get shape from geom object and verify its parameters - TopoDS_Shape aShape; - if (!GEOMBase::GetShape(aGeomObj, aShape) || - aShape.IsNull() || + GEOM_Client aGeomClient; + TopoDS_Shape aShape = aGeomClient.GetShape(GeometryGUI::GetGeomGen(), aGeomObj); + if (aShape.IsNull() || !myShapeTypes.Contains(aShape.ShapeType())) return false; @@ -92,8 +93,8 @@ 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; - if (!GEOMBase::GetShape(myMainObj, aMainShape)) + TopoDS_Shape aMainShape = aGeomClient.GetShape(GeometryGUI::GetGeomGen(), myMainObj); + if (aMainShape.IsNull()) return false; bool isFound = false; @@ -126,10 +127,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()); @@ -141,7 +142,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();