]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Fix for Bug IPAL9161(3.0.0 (09 June): It is impossible to perform Fillet and Chamfer...
authormzn <mzn@opencascade.com>
Wed, 15 Jun 2005 06:17:13 +0000 (06:17 +0000)
committermzn <mzn@opencascade.com>
Wed, 15 Jun 2005 06:17:13 +0000 (06:17 +0000)
src/GEOMFiltersSelection/GEOM_TypeFilter.cxx
src/GEOMFiltersSelection/GEOM_TypeFilter.h
src/GEOMGUI/GEOM_Displayer.cxx

index d5785f513f39b15cec38170da4ab8317da6e3666..645806c72829b9151a0a597245cb2d13f7b15830 100644 (file)
@@ -4,9 +4,10 @@
 // function : GEOM_TypeFilter
 // purpose  : 
 //=======================================================================
-GEOM_TypeFilter::GEOM_TypeFilter( SalomeApp_Study* study, const int type )
+GEOM_TypeFilter::GEOM_TypeFilter( SalomeApp_Study* study, const int type, const bool isShapeType )
 :GEOM_SelectionFilter( study ),
-myType( type )
+ myType( type ),
+ myIsShapeType(isShapeType)
 {
 }
 
@@ -26,7 +27,12 @@ bool GEOM_TypeFilter::isOk( const SUIT_DataOwner* sOwner ) const
 {
   GEOM::GEOM_Object_var obj = getObject( sOwner );
   if ( !CORBA::is_nil( obj ) )
-    return obj->GetType() == type();
+    {
+      if (!myIsShapeType)
+       return obj->GetType() == type();
+      else
+       return obj->GetShapeType() == type();
+    }
   
   return false;
 }
index 393b16a9a071a7a74fb1f559f29d7a853ae46888..1f077a2c670040806baad7c93e3b2d246c57c961 100644 (file)
@@ -10,7 +10,7 @@
 class GEOM_TypeFilter : public GEOM_SelectionFilter
 {
 public:
-  GEOM_TypeFilter(SalomeApp_Study* study, const int type );
+  GEOM_TypeFilter(SalomeApp_Study* study, const int type, const bool isShapeType = false );
   ~GEOM_TypeFilter();
 
   virtual bool isOk( const SUIT_DataOwner* ) const;
@@ -19,7 +19,7 @@ public:
 
 private:
   int                   myType;
-
+  bool                  myIsShapeType;    
 };
 
 #endif
index a8a839790ce37d6c1f603480c8d077ec6a212dd0..dbc26153bc6d61abdb81eac67c303a6937c479f2 100644 (file)
@@ -132,7 +132,7 @@ SUIT_SelectionFilter* GEOM_Displayer::getFilter( const int theMode )
   
   int aTopAbsMode = getTopAbsMode( theMode );
   if ( aTopAbsMode != -1 )
-    aFilter = new GEOM_TypeFilter( getStudy(), theMode ); //@ aFilter = new GEOM_TypeFilter( ( TopAbs_ShapeEnum )aTopAbsMode );
+    aFilter = new GEOM_TypeFilter( getStudy(), aTopAbsMode, true ); //@ aFilter = new GEOM_TypeFilter( ( TopAbs_ShapeEnum )aTopAbsMode );
   else
     switch ( theMode )
       {