Salome HOME
To provide correct memory management
authorapo <apo@opencascade.com>
Mon, 3 Oct 2005 06:19:30 +0000 (06:19 +0000)
committerapo <apo@opencascade.com>
Mon, 3 Oct 2005 06:19:30 +0000 (06:19 +0000)
src/VTKViewer/VTKViewer_Trihedron.cxx
src/VTKViewer/VTKViewer_Trihedron.h

index 387bbf83ebd0ea1c91d0c5b264349eaa4c7face8..9ff5e694611f692d9fe38df555627b84bbaf840c 100755 (executable)
@@ -139,8 +139,8 @@ VTKViewer_Axis::~VTKViewer_Axis()
   /*! \li Destroy of the Label pipe-line representation */
   myLabelActor->Delete();
   
-  myMapper[2]->RemoveAllInputs();
-  myMapper[2]->Delete();
+  myMapper[0]->RemoveAllInputs();
+  myMapper[0]->Delete();
   
   myVectorText->Delete();
   
@@ -168,6 +168,13 @@ void VTKViewer_Axis::AddToRender(vtkRenderer* theRenderer){
   theRenderer->AddActor(myArrowActor);
 }
 
+void VTKViewer_Axis::RemoveFromRender(vtkRenderer* theRenderer){
+  /*! \li Order of the calls are important*/
+  theRenderer->RemoveActor(myLineActor);
+  theRenderer->RemoveActor(myLabelActor);
+  theRenderer->RemoveActor(myArrowActor);
+}
+
 void VTKViewer_Axis::SetVisibility(VTKViewer_Trihedron::TVisibility theVis)
 {
   switch(theVis){
@@ -343,6 +350,8 @@ void VTKViewer_Trihedron::RemoveFromRender(vtkRenderer* theRenderer)
   myPresent->InitTraversal();
   while(vtkActor* anActor = myPresent->GetNextActor())
     theRenderer->RemoveActor(anActor);
+  for(int i = 0; i < 3; i++)
+    myAxis[i]->RemoveFromRender(theRenderer);
 }
 
 int VTKViewer_Trihedron::GetVisibleActorCount(vtkRenderer* theRenderer)
index 9c3597ca54abb762169ff7a994fcde348c05ff51..74aebace8218f81b744c081043726f1a657ca7cb 100755 (executable)
@@ -186,6 +186,7 @@ public:
   /*! Add to \a theRenderer actors: myLineActor,myLabelActor,myArrowActor
    */
   virtual void AddToRender(vtkRenderer* theRenderer);
+  virtual void RemoveFromRender(vtkRenderer* theRenderer);
   
   /*! Sets visibility for actors: myLineActor,myLabelActor,myArrowActor
    */