]> Creatis software - bbtk.git/commitdiff
*** empty log message ***
authorguigues <guigues>
Tue, 14 Oct 2008 08:53:14 +0000 (08:53 +0000)
committerguigues <guigues>
Tue, 14 Oct 2008 08:53:14 +0000 (08:53 +0000)
packages/vtk/src/bbvtkImagePlanes.cxx

index c80aad8bfa36459e54991a59d7e2affac85febbb..4b0afe0f2d02e643d9b3678745b64834b55fd551 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbvtkImagePlanes.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/10/08 14:46:44 $
-  Version:   $Revision: 1.7 $
+  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);
@@ -109,20 +106,16 @@ namespace bbvtk
      bbSetOutputPlaneZ(planeWidgetZ);
 
      picker->UnRegister(NULL);
-     //        planeWidgetX->Register(NULL);
-     //        planeWidgetY->Register(NULL);
-     //        planeWidgetZ->Register(NULL);
    }
 
 //---------------------------------------------------------------------
   void ImagePlanes::bbUserDestructor()
   {
-    //planeWidgetX->UnRegister(NULL);//Delete();
-    //planeWidgetY->UnRegister(NULL);//Delete();
-    //planeWidgetZ->UnRegister(NULL);//Delete();
-    planeWidgetX->Delete();
-    planeWidgetY->Delete();
-    planeWidgetZ->Delete();
+
+    if (planeWidgetX) planeWidgetX->UnRegister(NULL);
+    if (planeWidgetY) planeWidgetY->UnRegister(NULL);
+    if (planeWidgetZ) planeWidgetZ->UnRegister(NULL);
+
   }
   
 //---------------------------------------------------------------------  
@@ -130,6 +123,8 @@ namespace bbvtk
    {
      if (bbGetInputIn()!=0)
        {
+        Init();
+
         int xMin, xMax, yMin, yMax, zMin, zMax;
         bbGetInputIn()->GetExtent(xMin, xMax, yMin, yMax, zMin, zMax);