Salome HOME
Additional changes for the Point 2 of the "20948: EDF 1468 SMESH: Histogram of the...
authorrnv <rnv@opencascade.com>
Fri, 21 Jan 2011 14:01:49 +0000 (14:01 +0000)
committerrnv <rnv@opencascade.com>
Fri, 21 Jan 2011 14:01:49 +0000 (14:01 +0000)
src/OBJECT/SMESH_Actor.cxx
src/OBJECT/SMESH_ActorUtils.cxx
src/OBJECT/SMESH_ActorUtils.h
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI.h
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx
src/SMESHGUI/SMESHGUI_VTKUtils.cxx
src/SMESHGUI/SMESHGUI_VTKUtils.h

index 91d5002836d2af36d35702b5e6a0d7a4ba876bc8..3e4c1ad8a7fe3d224f8672e91e34dda3d1e6a31b 100644 (file)
@@ -533,6 +533,13 @@ SMESH_ActorDef::~SMESH_ActorDef()
 {
   if(MYDEBUG) MESSAGE("~SMESH_ActorDef - "<<this);
 
+#ifndef DISABLE_PLOT2DVIEWER
+  if(my2dHistogram) {
+    SMESH::ProcessIn2DViewers(this,SMESH::RemoveFrom2dViewer);
+    delete my2dHistogram;
+  }
+#endif
+
   // caught by SMESHGUI::ProcessEvents() static method
   this->InvokeEvent( SMESH::DeleteActorEvent, NULL );
 
@@ -617,10 +624,6 @@ SMESH_ActorDef::~SMESH_ActorDef()
   myImplicitBoolean->Delete();
 
   myTimeStamp->Delete();
-#ifndef DISABLE_PLOT2DVIEWER
-  if(my2dHistogram)
-    delete my2dHistogram;
-#endif 
 }
 
 
@@ -1343,7 +1346,11 @@ void SMESH_ActorDef::SetVisibility(int theMode, bool theIsUpdateRepersentation){
 
     if(myIsCellsLabeled) 
       myCellsLabels->VisibilityOn();
-  }
+  } 
+#ifndef DISABLE_PLOT2DVIEWER
+  else
+    SMESH::ProcessIn2DViewers(this,SMESH::RemoveFrom2dViewer);
+#endif
   UpdateHighlight();
   Modified();
 }
index 899e413ec23266f1896593cd895ae906e5ebde98..36e40e6797c1f80099959964e9e1cb9fd03d6461 100644 (file)
 //
 
 #include "SMESH_ActorUtils.h"
+#include "SMESH_Actor.h"
 
 #include "SUIT_Tools.h"
 #include "SUIT_Session.h"
 #include "SUIT_ResourceMgr.h"
+#include "SalomeApp_Application.h"
+
+#ifndef DISABLE_PLOT2DVIEWER
+#include <SPlot2d_ViewModel.h>
+#include <SPlot2d_Histogram.h>
+#include <Plot2d_ViewManager.h>
+#endif
+
 
 #include "utilities.h"
 
@@ -126,4 +135,49 @@ namespace SMESH
     g = ig / 255.;
     b = ib / 255.;
   }
+
+#ifndef DISABLE_PLOT2DVIEWER
+  //=======================================================================
+  /**
+     Get histogram from the input actor
+     Repaint/Remove the histogram in/from each opened Plot2D Viewer 
+  */
+  //=======================================================================
+  void ProcessIn2DViewers( SMESH_Actor *theActor, Viewer2dActionType aType ) {
+    SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
+    
+    if(!anApp || !theActor)
+      return;
+    
+    SPlot2d_Histogram* aHistogram = 0;
+    
+    if(theActor->GetPlot2Histogram())
+      if(aType == UpdateIn2dViewer)
+       aHistogram = theActor->UpdatePlot2Histogram();
+      else
+       aHistogram = theActor->GetPlot2Histogram();
+    else 
+      return;
+    
+    ViewManagerList aViewManagerList;
+    anApp->viewManagers(SPlot2d_Viewer::Type(), aViewManagerList);
+    
+    aType = aHistogram->getPointList().empty() ? RemoveFrom2dViewer : aType;
+    
+    SUIT_ViewManager* aViewManager;
+    foreach( aViewManager, aViewManagerList ) {
+      if (Plot2d_ViewManager* aManager = dynamic_cast<Plot2d_ViewManager*>(aViewManager)) {
+       if (SPlot2d_Viewer* aViewer = dynamic_cast<SPlot2d_Viewer*>(aManager->getViewModel())) {
+         if (Plot2d_ViewFrame* aViewFrame = aViewer->getActiveViewFrame()) {
+           if(aType == UpdateIn2dViewer )
+             aViewFrame->displayObject(aHistogram, true);
+           else if (aType == RemoveFrom2dViewer)
+             aViewFrame->eraseObject(aHistogram, true);
+         }
+       }
+      }
+    }
+  }
+#endif //DISABLE_PLOT2DVIEWER
+  
 }
index b1d14be2b2828f48b71286613072fcb17459c94b..fec4ebdf7aee41b7c5c6f3b5b62cfbb8ac9dda3c 100644 (file)
@@ -28,6 +28,7 @@
 #include <QColor>
 
 class vtkUnstructuredGrid;
+class SMESH_Actor;
 
 namespace SMESH
 {
@@ -71,6 +72,17 @@ SMESHOBJECT_EXPORT
   WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, 
                         const char* theFileName);
 
+
+#ifndef DISABLE_PLOT2DVIEWER
+ typedef enum {UpdateIn2dViewer = 0, RemoveFrom2dViewer } Viewer2dActionType;
+ SMESHOBJECT_EXPORT
+   void ProcessIn2DViewers( SMESH_Actor* theActor, Viewer2dActionType = UpdateIn2dViewer );
+#endif
+
+
 }
 
 #endif
index 7ef1989b45fa274ea0c60c004eec1575231351be..388dd9c715cb2003d5ec205b9ced19fe6707767c 100644 (file)
@@ -89,6 +89,7 @@
 #include <SMESH_Client.hxx>
 #include <SMESH_Actor.h>
 #include <SMESH_ScalarBarActor.h>
+#include <SMESH_ActorUtils.h>
 #include <SMESH_TypeFilter.hxx>
 #include "SMESH_ControlsDef.hxx"
 
       return;
 
     SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
-    SUIT_ViewManager* vm = anApp->activeViewManager();
-    int nbSf = vm ? vm->getViewsCount() : 0;
 
-    SALOME_ListIteratorOfListIO It(selected);
-
-    aStudyBuilder->NewCommand();  // There is a transaction
-    for( ; It.More(); It.Next()){ // loop on selected IO's
-      Handle(SALOME_InteractiveObject) IObject = It.Value();
-      if(IObject->hasEntry()) {
-        _PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry());
-
-        // disable removal of "SMESH" component object
-        if(aSO->FindAttribute(anAttr, "AttributeIOR")){
-          anIOR = anAttr;
-          if ( engineIOR() == anIOR->Value().c_str() )
-            continue;
-        }
-        //Check the referenced object
-        _PTR(SObject) aRefSObject;
-        if ( aSO && aSO->ReferencedObject( aRefSObject ) )
-          aSO = aRefSObject; // Delete main Object instead of reference
-
-        // put the whole hierarchy of sub-objects of the selected SO into a list and
-        // then treat them all starting from the deepest objects (at list back)
-
-        std::list< _PTR(SObject) > listSO;
-        listSO.push_back( aSO );
-        std::list< _PTR(SObject) >::iterator itSO = listSO.begin();
-        for ( ; itSO != listSO.end(); ++itSO ) {
-          _PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO );
-          for (it->InitEx(false); it->More(); it->Next())
-            listSO.push_back( it->Value() );
-        }
-
-        // treat SO's in the list starting from the back
-
-        std::list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin();
-        for ( ; ritSO != listSO.rend(); ++ritSO ) {
-          _PTR(SObject) SO = *ritSO;
-          if ( !SO ) continue;
-          std::string anEntry = SO->GetID();
-
-          /** Erase graphical object **/
-          if(SO->FindAttribute(anAttr, "AttributeIOR") && vm ){
-            QVector<SUIT_ViewWindow*> aViews = vm->getViews();
-            for(int i = 0; i < nbSf; i++){
-              SUIT_ViewWindow *sf = aViews[i];
-              if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){
-                SMESH::RemoveActor(sf,anActor);
-              }
-            }
-          }
-
-          /** Remove an object from data structures **/
-          SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO ));
-          SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO ));
-          if ( !aGroup->_is_nil() ) {                          // DELETE GROUP
-            SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
-            aMesh->RemoveGroup( aGroup );
-          }
-          else if ( !aSubMesh->_is_nil() ) {                   // DELETE SUBMESH
-            SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
-            aMesh->RemoveSubMesh( aSubMesh );
+    ViewManagerList aViewMenegers = anApp->viewManagers();
+    ViewManagerList::const_iterator it = aViewMenegers.begin();
+    for( ; it != aViewMenegers.end(); it++) {
+      
+      SUIT_ViewManager* vm = *it;
+      int nbSf = vm ? vm->getViewsCount() : 0;
 
-            _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
-            if (aMeshSO)
-              SMESH::ModifiedMesh(aMeshSO, false, aMesh->NbNodes()==0);
-          }
-          else {
-            IObject = new SALOME_InteractiveObject
-              ( anEntry.c_str(), engineIOR().toLatin1().data(), SO->GetName().c_str() );
-            QString objType = CheckTypeObject(IObject);
-            if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
-              SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
-              aStudyBuilder->RemoveObjectWithChildren( SO );
-            }
-            else {// default action: remove SObject from the study
-              // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
-              //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
-              //op->start();
-              aStudyBuilder->RemoveObjectWithChildren( SO );
-              //op->finish();
-            }
-          }
-        } /* listSO back loop */
-      } /* IObject->hasEntry() */
-    } /* more/next */
+      SALOME_ListIteratorOfListIO It(selected);
+      
+      aStudyBuilder->NewCommand();  // There is a transaction
+      for( ; It.More(); It.Next()){ // loop on selected IO's
+       Handle(SALOME_InteractiveObject) IObject = It.Value();
+       if(IObject->hasEntry()) {
+         _PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry());
+         
+         // disable removal of "SMESH" component object
+         if(aSO->FindAttribute(anAttr, "AttributeIOR")){
+           anIOR = anAttr;
+           if ( engineIOR() == anIOR->Value().c_str() )
+             continue;
+         }
+         //Check the referenced object
+         _PTR(SObject) aRefSObject;
+         if ( aSO && aSO->ReferencedObject( aRefSObject ) )
+           aSO = aRefSObject; // Delete main Object instead of reference
+         
+         // put the whole hierarchy of sub-objects of the selected SO into a list and
+         // then treat them all starting from the deepest objects (at list back)
+         
+         std::list< _PTR(SObject) > listSO;
+         listSO.push_back( aSO );
+         std::list< _PTR(SObject) >::iterator itSO = listSO.begin();
+         for ( ; itSO != listSO.end(); ++itSO ) {
+           _PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO );
+           for (it->InitEx(false); it->More(); it->Next())
+             listSO.push_back( it->Value() );
+         }
+         
+         // treat SO's in the list starting from the back
+         
+         std::list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin();
+         for ( ; ritSO != listSO.rend(); ++ritSO ) {
+           _PTR(SObject) SO = *ritSO;
+           if ( !SO ) continue;
+           std::string anEntry = SO->GetID();
+           
+           /** Erase graphical object **/
+           if(SO->FindAttribute(anAttr, "AttributeIOR") && vm ){
+             QVector<SUIT_ViewWindow*> aViews = vm->getViews();
+             for(int i = 0; i < nbSf; i++){
+               SUIT_ViewWindow *sf = aViews[i];
+               if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){
+                 SMESH::RemoveActor(sf,anActor);
+               }
+             }
+           }
+           
+           /** Remove an object from data structures **/
+           SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO ));
+           SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO ));
+           if ( !aGroup->_is_nil() ) {                          // DELETE GROUP
+             SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
+             aMesh->RemoveGroup( aGroup );
+           }
+           else if ( !aSubMesh->_is_nil() ) {                   // DELETE SUBMESH
+             SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
+             aMesh->RemoveSubMesh( aSubMesh );
+             
+             _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
+             if (aMeshSO)
+               SMESH::ModifiedMesh(aMeshSO, false, aMesh->NbNodes()==0);
+           }
+           else {
+             IObject = new SALOME_InteractiveObject
+               ( anEntry.c_str(), engineIOR().toLatin1().data(), SO->GetName().c_str() );
+             QString objType = CheckTypeObject(IObject);
+             if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
+               SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
+               aStudyBuilder->RemoveObjectWithChildren( SO );
+             }
+             else {// default action: remove SObject from the study
+               // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
+               //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
+               //op->start();
+               aStudyBuilder->RemoveObjectWithChildren( SO );
+               //op->finish();
+             }
+           }
+         } /* listSO back loop */
+       } /* IObject->hasEntry() */
+      } /* more/next */
+    } /* aViewMenegers list loop */
+    
     aStudyBuilder->CommitCommand();
 
     /* Clear any previous selection */
@@ -4131,6 +4139,16 @@ bool SMESHGUI::activateModule( SUIT_Study* study )
       GetSMESHGen()->SetCurrentStudy( _CAST(Study,aStudy)->GetStudy() );
       updateObjBrowser(); // objects can be removed
     }
+  
+  // get all view currently opened in the study and connect their signals  to
+  // the corresponding slots of the class.
+  SUIT_Desktop* aDesk = study->application()->desktop();
+  if ( aDesk ) {
+    QList<SUIT_ViewWindow*> wndList = aDesk->windows();
+    SUIT_ViewWindow* wnd;
+    foreach ( wnd, wndList )
+      connectView( wnd );
+  }
 
   return res;
 }
@@ -4228,8 +4246,15 @@ void SMESHGUI::viewManagers( QStringList& list ) const
 
 void SMESHGUI::onViewManagerActivated( SUIT_ViewManager* mgr )
 {
-  if ( dynamic_cast<SVTK_ViewManager*>( mgr ) )
+  if ( dynamic_cast<SVTK_ViewManager*>( mgr ) ) {
     SMESH::UpdateSelectionProp( this );
+    
+    QVector<SUIT_ViewWindow*> aViews = mgr->getViews();
+    for(int i = 0; i < aViews.count() ; i++){
+      SUIT_ViewWindow *sf = aViews[i];
+      connectView( sf );
+    }
+  }
 }
 
 void SMESHGUI::onViewManagerRemoved( SUIT_ViewManager* theViewManager )
@@ -5677,3 +5702,34 @@ void SMESHGUI::onHypothesisEdit( int result )
     SMESHGUI::Modified();
   updateObjBrowser( true );
 }
+
+
+/*!
+  \brief Signal handler closing(SUIT_ViewWindow*) of a view
+  \param pview view being closed
+*/
+void SMESHGUI::onViewClosed( SUIT_ViewWindow* pview ) {
+#ifndef DISABLE_PLOT2DVIEWER
+  //Crear all Plot2d Viewers if need.
+  SMESH::ClearPlot2Viewers(pview);
+#endif  
+}
+
+/*!
+  \brief Connects or disconnects signals about activating and cloning view on the module slots
+  \param pview view which is connected/disconnected
+*/
+void SMESHGUI::connectView( const SUIT_ViewWindow* pview ) {
+  if(!pview)
+    return;
+  
+  SUIT_ViewManager* viewMgr = pview->getViewManager();
+  if ( viewMgr ) {
+    disconnect( viewMgr, SIGNAL( deleteView( SUIT_ViewWindow* ) ),
+                this, SLOT( onViewClosed( SUIT_ViewWindow* ) ) );
+    
+    connect( viewMgr, SIGNAL( deleteView( SUIT_ViewWindow* ) ),
+             this, SLOT( onViewClosed( SUIT_ViewWindow* ) ) );
+  }
+}
index 7aa14367f3afd342e117c550deacc95edf9caa6a..e2bb545c1c7ec5802f95733895acc5285142de7a 100644 (file)
@@ -152,6 +152,8 @@ public slots:
   virtual bool                    deactivateModule( SUIT_Study* );
   virtual bool                    activateModule( SUIT_Study* );
   virtual void                    studyClosed( SUIT_Study* );
+  void                            onViewClosed( SUIT_ViewWindow* );
+
 
 private slots:
   void                            OnGUIEvent();
@@ -197,6 +199,9 @@ private:
                                                   const int pId, 
                                                   const QString& param );
 
+  void                            connectView( const SUIT_ViewWindow* );
+
 private :
   static SMESH::SMESH_Gen_var     myComponentSMESH;
   QDialog*                        myActiveDialogBox;
index c566a3cf9fff8c3dbd5e74307ac6bc44eece09d0..57d2fc16cdb1b353c63e643dee06ca6448571925 100644 (file)
@@ -33,6 +33,7 @@
 #include "SMESHGUI_Utils.h"
 
 #include <SMESH_Actor.h>
+#include <SMESH_ActorUtils.h>
 #include <SMESH_ScalarBarActor.h>
 #include <SMESH_ControlsDef.hxx>
 
index 184eb903cb05f34e53a23b96a6d746761d2155fb..8d9f55a314c30c7e884feffc7934047b4bee895c 100644 (file)
 #include <SalomeApp_Application.h>
 #include <SalomeApp_Study.h>
 
-#ifndef DISABLE_PLOT2DVIEWER
-#include <SPlot2d_ViewModel.h>
-#include <SPlot2d_Histogram.h>
-#include <Plot2d_ViewManager.h>
-#endif
-
 // SALOME KERNEL includes
 #include <utilities.h>
 
@@ -659,9 +653,6 @@ namespace SMESH
           VISUAL_OBJ_CONT.erase(aKey);
         }
       }
-#ifndef DISABLE_PLOT2DVIEWER
-       ProcessIn2DViewers(theActor,RemoveFrom2dViewer);
-#endif
       theActor->Delete();
       vtkWnd->Repaint();
     }
@@ -1315,42 +1306,29 @@ namespace SMESH
   }
 
 #ifndef DISABLE_PLOT2DVIEWER
-  //=======================================================================
-  /**
-     Get histogram from the input actor
-     Repaint/Remove the histogram in/from each opened Plot2D Viewer 
-  */
-  //=======================================================================
-  void ProcessIn2DViewers( SMESH_Actor *theActor, Viewer2dActionType aType ) {
-    SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
-    
-    if(!anApp || !theActor)
-      return;
+  //================================================================================
+  /*!
+   * \brief Find all SMESH_Actor's in the View Window.
+   * If actor constains Plot2d_Histogram object remove it from each Plot2d Viewer.
+   */
+  //================================================================================
 
-    SPlot2d_Histogram* aHistogram = 0;
-    if(theActor->GetPlot2Histogram())
-      aHistogram = theActor->UpdatePlot2Histogram();
-    else 
-      return;
-      
-     ViewManagerList aViewManagerList;
-     anApp->viewManagers(SPlot2d_Viewer::Type(), aViewManagerList);
-     
-     aType = aHistogram->getPointList().empty() ? RemoveFrom2dViewer : aType;
-     
-     SUIT_ViewManager* aViewManager;
-     foreach( aViewManager, aViewManagerList ) {
-       if (Plot2d_ViewManager* aManager = dynamic_cast<Plot2d_ViewManager*>(aViewManager)) {
-        if (SPlot2d_Viewer* aViewer = dynamic_cast<SPlot2d_Viewer*>(aManager->getViewModel())) {
-          if (Plot2d_ViewFrame* aViewFrame = aViewer->getActiveViewFrame()) {
-            if(aType == UpdateIn2dViewer )
-              aViewFrame->displayObject(aHistogram, true);
-            else if (aType == RemoveFrom2dViewer)
-              aViewFrame->eraseObject(aHistogram, true);
-          }
-        }
-       }
-     }
+  void ClearPlot2Viewers( SUIT_ViewWindow* theWindow ) {
+    if(SVTK_ViewWindow* aViewWindow = GetVtkViewWindow(theWindow)){
+      vtkRenderer *aRenderer = aViewWindow->getRenderer();
+      VTK::ActorCollectionCopy aCopy(aRenderer->GetActors());
+      vtkActorCollection *aCollection = aCopy.GetActors();
+      aCollection->InitTraversal();
+      while(vtkActor *anAct = aCollection->GetNextActor()){
+       if(SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)){
+         if(anActor->hasIO() && anActor->GetPlot2Histogram() ){
+           ProcessIn2DViewers(anActor,RemoveFrom2dViewer);
+         }
+       }
+      }
+    }
   }
-#endif //DISABLE_PLOT2DVIEWER
+  
+#endif
+
 } // end of namespace SMESH
index 6b49b44ebd33f3db13f553419079c260369b8ed2..084d1abe39b1cb63d71ac00b731f957a68835237 100644 (file)
 #include <SALOME_InteractiveObject.hxx>
 #include <VTKViewer_Filter.h>
 
-#ifndef DISABLE_PLOT2DVIEWER
-class SPlot2d_Histogram;
-#endif
-
-
 class TColStd_IndexedMapOfInteger;
 
 class SALOMEDSClient_Study;
@@ -196,6 +191,11 @@ SMESHGUI_EXPORT
 SMESHGUI_EXPORT
   void SetControlsPrecision( const long );
 
+#ifndef DISABLE_PLOT2DVIEWER
+SMESHGUI_EXPORT
+  void ClearPlot2Viewers( SUIT_ViewWindow* theWindow );
+#endif
+
   //----------------------------------------------------------------------------
 SMESHGUI_EXPORT
   bool ComputeClippingPlaneParameters( std::list<vtkActor*> theActorList,
@@ -203,16 +203,6 @@ SMESHGUI_EXPORT
                                        vtkFloatingPointType theDist,
                                        vtkFloatingPointType theBounds[6],
                                        vtkFloatingPointType theOrigin[3] );
-
-#ifndef DISABLE_PLOT2DVIEWER
- typedef enum {UpdateIn2dViewer = 0, RemoveFrom2dViewer } Viewer2dActionType;
- SMESHGUI_EXPORT
-   void ProcessIn2DViewers( SMESH_Actor* theActor, Viewer2dActionType = UpdateIn2dViewer );
-#endif
-
 };
 
 #endif // SMESHGUI_VTKUTILS_H