]> Creatis software - clitk.git/blobdiff - vv/vvBinaryImageOverlayActor.cxx
itkv4 migration:
[clitk.git] / vv / vvBinaryImageOverlayActor.cxx
index a30206f21dcd618c93727f87b705f3ec6c45ee44..043afcc3011623bf14c2e2bbafc7eeb145c39a43 100644 (file)
@@ -38,7 +38,7 @@ vvBinaryImageOverlayActor::vvBinaryImageOverlayActor()
   mAlpha = 0.6;
   mImage = 0;
   mSlicer = 0;
-  mColorLUT = vtkLookupTable::New();
+  mColorLUT = vtkSmartPointer<vtkLookupTable>::New();
   mForegroundValue = 1;
   mBackgroundValue = 0;
   m_modeBG = true;
@@ -49,11 +49,9 @@ vvBinaryImageOverlayActor::vvBinaryImageOverlayActor()
 //------------------------------------------------------------------------------
 vvBinaryImageOverlayActor::~vvBinaryImageOverlayActor()
 {
-  for (unsigned int i = 0; i < mSlicer->GetImage()->GetVTKImages().size(); i++) {
+  for (unsigned int i = 0; i < mImageActorList.size(); i++) {
     mSlicer->GetRenderer()->RemoveActor(mImageActorList[i]);
   }
-  mImageActorList.clear();
-  mMapperList.clear();
 }
 //------------------------------------------------------------------------------
 
@@ -77,7 +75,7 @@ void vvBinaryImageOverlayActor::SetSlicer(vvSlicer * slicer)
 
 
 //------------------------------------------------------------------------------
-void vvBinaryImageOverlayActor::Initialize()
+void vvBinaryImageOverlayActor::Initialize(bool IsVisible)
 {
   if (!mSlicer) {
     std::cerr << "ERROR. Please use setSlicer before setSlicer in vvBinaryImageOverlayActor." << std::endl;
@@ -91,14 +89,11 @@ void vvBinaryImageOverlayActor::Initialize()
   // Create an actor for each time slice
   for (unsigned int numImage = 0; numImage < mSlicer->GetImage()->GetVTKImages().size(); numImage++) {
     // how many intensity ?
-    vtkImageMapToRGBA * mOverlayMapper = vtkImageMapToRGBA::New();
+    vtkSmartPointer<vtkImageMapToRGBA> mOverlayMapper = vtkSmartPointer<vtkImageMapToRGBA>::New();
     mOverlayMapper->SetInput(mImage->GetVTKImages()[0]); // DS TODO : to change if it is 4D !!!
 
-    // DD("change to nb of intensity");
     double range[2];
     mImage->GetVTKImages()[0]->GetScalarRange(range);
-    // DD(range[0]);
-//     DD(range[1]);
     int n = range[1]-range[0]+1;
     mColorLUT->SetRange(range[0],range[1]);
     mColorLUT->SetNumberOfTableValues(n);
@@ -120,10 +115,10 @@ void vvBinaryImageOverlayActor::Initialize()
 
     mOverlayMapper->SetLookupTable(mColorLUT);
 
-    vtkImageActor * mOverlayActor = vtkImageActor::New();
+    vtkSmartPointer<vtkImageActor> mOverlayActor = vtkSmartPointer<vtkImageActor>::New();
     mOverlayActor->SetInput(mOverlayMapper->GetOutput());
     mOverlayActor->SetPickable(0);
-    mOverlayActor->SetVisibility(true);
+    mOverlayActor->SetVisibility(IsVisible);
     //mOverlayActor->SetOpacity(1.0);
 
     mMapperList.push_back(mOverlayMapper);
@@ -177,10 +172,8 @@ void vvBinaryImageOverlayActor::SetOpacity(double d)
 
 
 //------------------------------------------------------------------------------
-void vvBinaryImageOverlayActor::SetImage(vvImage::Pointer image, double bg, bool modeBG)
+void vvBinaryImageOverlayActor::SetImage(vvImage * image, double bg, bool modeBG)
 {
-  //  DD("vvBinaryImageOverlayActor::SetImage");
-  //DD(modeBG);
   mImage = image;
   if (modeBG) {
     mBackgroundValue = bg;
@@ -282,9 +275,6 @@ void vvBinaryImageOverlayActor::ComputeExtent(int orientation,
                                              int * inExtent,
                                              int * outExtent)
 {
-  //  std::cout << "InExtent = " << inExtent[0] << " " << inExtent[1] << " " << inExtent[2] << " "
-  //       << inExtent[3] << " " << inExtent[4] << " " << inExtent[5] << std::endl;
-  //  DD(orientation);
   switch (orientation) {
   case vtkImageViewer2::SLICE_ORIENTATION_XY:
     for(int i=0; i<4; i++) outExtent[i] = inExtent[i];
@@ -300,8 +290,6 @@ void vvBinaryImageOverlayActor::ComputeExtent(int orientation,
     outExtent[0] = outExtent[1] = slice;
     break;
   }
-  // std::cout << "OutExtent = " << outExtent[0] << " " << outExtent[1] << " " << outExtent[2] << " "
-  //       << outExtent[3] << " " << outExtent[4] << " " << outExtent[5] << std::endl;
 }
 //------------------------------------------------------------------------------