]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkImagePlanes.cxx
*** empty log message ***
[bbtk.git] / packages / vtk / src / bbvtkImagePlanes.cxx
index a3b858d9fc587bd2de7616c33e5bc2a6d7f366c1..4b0afe0f2d02e643d9b3678745b64834b55fd551 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbvtkImagePlanes.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/06/25 08:21:31 $
-  Version:   $Revision: 1.4 $
+  Date:      $Date: 2008/10/14 08:53:14 $
+  Version:   $Revision: 1.8 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -56,7 +56,7 @@ namespace bbvtk
 
    void ImagePlanes::bbUserConstructor() 
    { 
-     Init();
+     planeWidgetX = planeWidgetY = planeWidgetZ = 0;
      bbSetInputIn(0);
      std::vector<double> vect;
      vect.push_back(512);
@@ -66,18 +66,18 @@ namespace bbvtk
    
    void ImagePlanes::bbUserCopyConstructor() 
    { 
-     Init();
+     planeWidgetX = planeWidgetY = planeWidgetZ = 0;
    }
 
    void ImagePlanes::Init() 
    { 
-     
+     if (planeWidgetX != 0) return;
      // The shared picker enables us to use 3 planes at one time
      // and gets the picking order right
      vtkCellPicker* picker = vtkCellPicker::New();
      picker->SetTolerance(0.005);
   
-     // The 3 image plane widgets are used to probe the dataset.
+     // The 3 image plane widgets 
      planeWidgetX = vtkImagePlaneWidget::New();
      planeWidgetX->DisplayTextOn();
      planeWidgetX->SetPicker(picker);
@@ -93,9 +93,6 @@ namespace bbvtk
      prop2->SetColor(1, 1, 0);
      planeWidgetY->SetLookupTable(planeWidgetX->GetLookupTable());
 
-     // for the z-slice, turn off texture interpolation:
-     // interpolation is now nearest neighbour, to demonstrate
-     // cross-hair cursor snapping to pixel centers
      planeWidgetZ = vtkImagePlaneWidget::New();
      planeWidgetZ->DisplayTextOn();
      planeWidgetZ->SetPicker(picker);
@@ -114,9 +111,11 @@ namespace bbvtk
 //---------------------------------------------------------------------
   void ImagePlanes::bbUserDestructor()
   {
-    planeWidgetX->Delete();
-    planeWidgetY->Delete();
-    planeWidgetZ->Delete();
+
+    if (planeWidgetX) planeWidgetX->UnRegister(NULL);
+    if (planeWidgetY) planeWidgetY->UnRegister(NULL);
+    if (planeWidgetZ) planeWidgetZ->UnRegister(NULL);
+
   }
   
 //---------------------------------------------------------------------  
@@ -124,6 +123,8 @@ namespace bbvtk
    {
      if (bbGetInputIn()!=0)
        {
+        Init();
+
         int xMin, xMax, yMin, yMax, zMin, zMax;
         bbGetInputIn()->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax);