]> Creatis software - clitk.git/blobdiff - vv/vvROIActor.cxx
Remove reslice from vvImage. The transform is kept but it's up to the user to use...
[clitk.git] / vv / vvROIActor.cxx
index 7a07b2963b93aeb67b350b441827391aba1dc17c..93bf44f497505e653958961c0d94d105ee9cf0b1 100644 (file)
@@ -18,9 +18,7 @@
 
 // vv
 #include "vvROIActor.h"
-#include "vvImageContour.h"
 #include "vvSlicerManager.h"
-#include "vvBinaryImageOverlayActor.h"
 
 // vtk
 #include <vtkImageActor.h>
@@ -35,8 +33,6 @@
 //------------------------------------------------------------------------------
 vvROIActor::vvROIActor()
 {
-  mImageContour.clear();
-  mOverlayActors.clear();
   mIsVisible = true;
   mIsContourVisible = false;
   mOpacity = 0.7;
@@ -80,15 +76,9 @@ void vvROIActor::SetSlicerManager(vvSlicerManager * s) {
 //------------------------------------------------------------------------------
 void vvROIActor::UpdateImage()
 {
-  for(unsigned int i= 0; i<mOverlayActors.size(); i++) {
-    mOverlayActors[i]->HideActors();
-    delete mOverlayActors[i];
-  }
-  for(unsigned int i= 0; i<mImageContour.size(); i++) {
-    mImageContour[i]->HideActors();
-    delete mImageContour[i];
-  }
-  Initialize();
+  mOverlayActors.clear();
+  mImageContour.clear();
+  Initialize(mIsVisible);
   Update(); // No Render
 }
 //------------------------------------------------------------------------------
@@ -143,12 +133,13 @@ bool vvROIActor::IsContourVisible() {
 
 
 //------------------------------------------------------------------------------
-void vvROIActor::Initialize() {
+void vvROIActor::Initialize(bool IsVisible) {
   if (mROI->GetImage()) {
     mImageContour.clear();
     mOverlayActors.clear();
-    for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
-      mImageContour.push_back(new vvImageContour);
+    for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
+
+      mImageContour.push_back(vvImageContour::New());
       mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
       mImageContour[i]->SetImage(mROI->GetImage());
       mContourColor[0] = mROI->GetDisplayColor()[0];
@@ -157,10 +148,11 @@ void vvROIActor::Initialize() {
       mImageContour[i]->SetColor(mContourColor[0], mContourColor[1], mContourColor[2]);
       mImageContour[i]->SetLineWidth(mContourWidth);
       mImageContour[i]->SetPreserveMemoryModeEnabled(true);
+      //mImageContour[i]->SetPreserveMemoryModeEnabled(false); // SEG FAULT !!!
       mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
       mImageContour[i]->HideActors();
       
-      mOverlayActors.push_back(new vvBinaryImageOverlayActor);
+      mOverlayActors.push_back(vvBinaryImageOverlayActor::New());
 
       // BG or FG
       if (m_modeBG) {
@@ -176,7 +168,7 @@ void vvROIActor::Initialize() {
                                   mROI->GetDisplayColor()[2]);
       mOverlayActors[i]->SetOpacity(mOpacity);
       mOverlayActors[i]->SetSlicer(mSlicerManager->GetSlicer(i));
-      mOverlayActors[i]->Initialize();
+      mOverlayActors[i]->Initialize(IsVisible);
     }
 
     connect(mSlicerManager,SIGNAL(UpdateSlice(int,int)),this,SLOT(UpdateSlice(int, int)));
@@ -190,7 +182,7 @@ void vvROIActor::Initialize() {
 //------------------------------------------------------------------------------
 void vvROIActor::Update()
 {
-  for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
+  for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
     UpdateSlice(i, mSlicerManager->GetSlicer(i)->GetSlice());
   }
 }
@@ -271,15 +263,14 @@ double vvROIActor::GetOpacity()
 //------------------------------------------------------------------------------
 void vvROIActor::SetSelected(bool b)
 {
-  DD(" Not used yet");
   mIsSelected = b;
   if (b) {
-    for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
+    for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
       mImageContour[i]->SetLineWidth(3.0);
       mImageContour[i]->ShowActors();
     }
   } else {
-    for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
+    for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
       mImageContour[i]->HideActors();
     }
   }