mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-13 10:10:34 +05:00
Mantis issue 0020435: EDF 909 GEOM : Show Only Selected.
This commit is contained in:
parent
0623aa4a9f
commit
0e09658fa3
@ -18,7 +18,7 @@
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
|
||||
#include "GEOM_SelectionFilter.h"
|
||||
|
||||
#include "GEOM_Client.hxx"
|
||||
@ -65,6 +65,19 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const
|
||||
if ( getShape( obj, shape ) )
|
||||
return contains( shape.ShapeType() ) && isShapeOk( shape );
|
||||
}
|
||||
|
||||
// IMP 0020435: fine local selection
|
||||
{
|
||||
const LightApp_DataOwner* owner = dynamic_cast<const LightApp_DataOwner*>(sOwner);
|
||||
if (owner) {
|
||||
QString entry = owner->entry();
|
||||
int index = entry.lastIndexOf("_");
|
||||
if (index > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -72,7 +85,8 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const
|
||||
// function : getObject
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject( const SUIT_DataOwner* sOwner, const bool extractReference ) const
|
||||
GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject (const SUIT_DataOwner* sOwner,
|
||||
const bool extractReference) const
|
||||
{
|
||||
GEOM::GEOM_Object_var anObj;
|
||||
|
||||
@ -119,18 +133,18 @@ bool GEOM_SelectionFilter::getShape (const GEOM::GEOM_Object_ptr& theObject,
|
||||
SALOME_LifeCycleCORBA* ls = new SALOME_LifeCycleCORBA( app->namingService() );
|
||||
static GEOM::GEOM_Gen_var geomGen;
|
||||
if(CORBA::is_nil( geomGen )) {
|
||||
Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" );
|
||||
geomGen = GEOM::GEOM_Gen::_narrow( comp );
|
||||
Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" );
|
||||
geomGen = GEOM::GEOM_Gen::_narrow( comp );
|
||||
}
|
||||
if ( !CORBA::is_nil( geomGen ) )
|
||||
{
|
||||
TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( geomGen, theObject );
|
||||
TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( geomGen, theObject );
|
||||
|
||||
if ( !aTopoDSShape.IsNull() )
|
||||
{
|
||||
theShape = aTopoDSShape;
|
||||
return true;
|
||||
}
|
||||
if ( !aTopoDSShape.IsNull() )
|
||||
{
|
||||
theShape = aTopoDSShape;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user