mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-04-08 02:47:27 +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
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
|
||||||
#include "GEOM_SelectionFilter.h"
|
#include "GEOM_SelectionFilter.h"
|
||||||
|
|
||||||
#include "GEOM_Client.hxx"
|
#include "GEOM_Client.hxx"
|
||||||
@ -65,6 +65,19 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const
|
|||||||
if ( getShape( obj, shape ) )
|
if ( getShape( obj, shape ) )
|
||||||
return contains( shape.ShapeType() ) && isShapeOk( 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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +85,8 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const
|
|||||||
// function : getObject
|
// function : getObject
|
||||||
// purpose :
|
// 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;
|
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() );
|
SALOME_LifeCycleCORBA* ls = new SALOME_LifeCycleCORBA( app->namingService() );
|
||||||
static GEOM::GEOM_Gen_var geomGen;
|
static GEOM::GEOM_Gen_var geomGen;
|
||||||
if(CORBA::is_nil( geomGen )) {
|
if(CORBA::is_nil( geomGen )) {
|
||||||
Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" );
|
Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" );
|
||||||
geomGen = GEOM::GEOM_Gen::_narrow( comp );
|
geomGen = GEOM::GEOM_Gen::_narrow( comp );
|
||||||
}
|
}
|
||||||
if ( !CORBA::is_nil( geomGen ) )
|
if ( !CORBA::is_nil( geomGen ) )
|
||||||
{
|
{
|
||||||
TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( geomGen, theObject );
|
TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( geomGen, theObject );
|
||||||
|
|
||||||
if ( !aTopoDSShape.IsNull() )
|
if ( !aTopoDSShape.IsNull() )
|
||||||
{
|
{
|
||||||
theShape = aTopoDSShape;
|
theShape = aTopoDSShape;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user