Salome HOME
refs #416: to store the open state of object browser items in the binary array
[modules/gui.git] / src / SVTK / SVTK_Renderer.cxx
index 75c9574a3c27427c7cadee7992502380d3cfdbad..8bbed38032062ccaa891a9cbfff9e052b1426b98 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -47,6 +47,7 @@
 #include <vtkCellPicker.h>
 
 #include <vtkProperty.h>
+#include <vtkProp3DCollection.h>
 
 // undefining min and max because CASCADE's defines them and
 // it clashes with std::min(), std::max() included in utilities.h
@@ -283,6 +284,16 @@ SVTK_Renderer
 
     anActor->RemoveFromRender(GetDevice());
 
+    while ( int i = myPointPicker->GetProp3Ds()->IsItemPresent( theActor ))
+      myPointPicker->GetProp3Ds()->RemoveItem( i-1 );
+    while ( int i = myCellPicker->GetProp3Ds()->IsItemPresent( theActor ))
+      myCellPicker->GetProp3Ds()->RemoveItem( i-1 );
+
+    while ( int i = myPointPicker->GetActors()->IsItemPresent( theActor ))
+      myPointPicker->GetActors()->RemoveItem( i-1 );
+    while ( int i = myCellPicker->GetActors()->IsItemPresent( theActor ))
+      myCellPicker->GetActors()->RemoveItem( i-1 );
+
     if(theIsAdjustActors)
       AdjustActors();
   }