Salome HOME
Merge with PAL/SALOME 2.1.0d
[modules/kernel.git] / src / VTKViewer / VTKViewer_RenderWindowInteractor.cxx
index c7d3828a95907295998b1f595ca96eb30bb3f93d..d8d86e86c3e7c7906d0d2cd7d38fa9a31aa2fdee 100644 (file)
@@ -575,7 +575,6 @@ void VTKViewer_RenderWindowInteractor::EraseAll()
   emit RenderWindowModified() ;
 }
 
-
 void VTKViewer_RenderWindowInteractor::DisplayAll()
 { 
   vtkActorCollection* aCollection = GetRenderer()->GetActors();
@@ -624,8 +623,39 @@ void VTKViewer_RenderWindowInteractor::Remove(const Handle(SALOME_InteractiveObj
                          TIsSameIObject<SALOME_Actor>(theIObject),
                          TRemoveAction(aRen));
 
-  if(update)
-    emit RenderWindowModified();
+  
+}
+
+void VTKViewer_RenderWindowInteractor::Remove( SALOME_Actor* SActor, bool updateViewer )
+{
+  if ( SActor != 0 )
+  {
+    GetRenderer()->RemoveProp( SActor );
+    if ( updateViewer )
+      emit RenderWindowModified();
+  }
+}
+
+void VTKViewer_RenderWindowInteractor::RemoveAll( const bool updateViewer )
+{
+  vtkRenderer* aRenderer = GetRenderer();
+  vtkActorCollection* anActors = aRenderer->GetActors();
+  if ( anActors )
+  {
+    anActors->InitTraversal();
+    while ( vtkActor *anAct = anActors->GetNextActor() )
+    {
+      if ( anAct->IsA( "SALOME_Actor" ) )
+      {
+        SALOME_Actor* aSAct = (SALOME_Actor*)anAct;
+        if ( aSAct->hasIO() && aSAct->getIO()->hasEntry() )
+          aRenderer->RemoveActor( anAct );
+      }
+    }
+
+    if ( updateViewer )
+      emit RenderWindowModified();
+  }
 }