]> Creatis software - clitk.git/blobdiff - vv/vvToolBinarize.cxx
remove tools (now in tests_dav)
[clitk.git] / vv / vvToolBinarize.cxx
index 07089739dc6b961cd2777b6cf1e5a9cdfb70b0cc..fa22daad122e54bb2337d1feb1700f40bbd152e0 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to:
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-  ======================================================================-====*/
+  ===========================================================================**/
 
+// vv
 #include "vvToolBinarize.h"
 #include "vvSlicerManager.h"
 #include "vvSlicer.h"
 #include "vvToolInputSelectorWidget.h"
 
+// clitk
 #include "clitkBinarizeImageGenericFilter.h"
 
+// vtk
 #include <vtkImageActor.h>
 #include <vtkCamera.h>
 #include <vtkImageClip.h>
@@ -69,7 +72,7 @@ vvToolBinarize::vvToolBinarize(vvMainWindowBase * parent, Qt::WindowFlags f)
   mBGSlider->SetText("Background value");
 
   // Main filter
-  mFilter = new clitk::BinarizeImageGenericFilter<args_info_clitkBinarizeImage>;
+  mFilter = clitk::BinarizeImageGenericFilter::New();
 
   // Set how many inputs are needed for this tool
   AddInputSelector("Select one image", mFilter);
@@ -119,12 +122,20 @@ void vvToolBinarize::RemoveVTKObjects()
 //------------------------------------------------------------------------------
 bool vvToolBinarize::close()
 {
-  RemoveVTKObjects();
+  // RemoveVTKObjects();
   return vvToolWidgetBase::close();
 }
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+void vvToolBinarize::closeEvent(QCloseEvent *event) {
+  RemoveVTKObjects();
+  event->accept();
+}
+//------------------------------------------------------------------------------
+
+
 //------------------------------------------------------------------------------
 void vvToolBinarize::reject()
 {
@@ -199,11 +210,11 @@ void vvToolBinarize::InputIsSelected(vvSlicerManager * m)
   mBGSlider->SetSingleStep(1);
 
   // VTK objects for interactive display
-  for(int i=0; i<mCurrentSlicerManager->NumberOfSlicers(); i++) {
-    mImageContour.push_back(new vvImageContour);
+  for(int i=0; i<mCurrentSlicerManager->GetNumberOfSlicers(); i++) {
+    mImageContour.push_back(vvImageContour::New());
     mImageContour[i]->SetSlicer(mCurrentSlicerManager->GetSlicer(i));
     mImageContour[i]->SetColor(1.0, 0.0, 0.0);
-    mImageContourLower.push_back(new vvImageContour);
+    mImageContourLower.push_back(vvImageContour::New());
     mImageContourLower[i]->SetSlicer(mCurrentSlicerManager->GetSlicer(i));
     mImageContourLower[i]->SetColor(0.0, 0.0, 1.0);
   }
@@ -214,8 +225,12 @@ void vvToolBinarize::InputIsSelected(vvSlicerManager * m)
 
   connect(mCurrentSlicerManager,SIGNAL(UpdateSlice(int,int)),this,SLOT(UpdateSlice(int, int)));
   connect(mCurrentSlicerManager,SIGNAL(UpdateTSlice(int,int)),this,SLOT(UpdateSlice(int, int)));
+  
+  connect(mCurrentSlicerManager,SIGNAL(UpdateOrientation(int,int)),this,SLOT(UpdateOrientation(int, int)));
 
   //  connect(mCurrentSlicerManager, SIGNAL(LeftButtonReleaseSignal(int)), SLOT(LeftButtonReleaseEvent(int)));
+  
+  InteractiveDisplayToggled(mInteractiveDisplayIsEnabled);
 }
 //------------------------------------------------------------------------------
 
@@ -223,7 +238,7 @@ void vvToolBinarize::InputIsSelected(vvSlicerManager * m)
 //------------------------------------------------------------------------------
 // void vvToolBinarize::LeftButtonReleaseEvent(int slicer) {
 //   DD("LeftButtonReleaseEvent");
-//   for(int i=0; i<mCurrentSlicerManager->NumberOfSlicers(); i++) {
+//   for(int i=0; i<mCurrentSlicerManager->GetNumberOfSlicers(); i++) {
 //     if (i == slicer);
 //     mCurrentSlicerManager->GetSlicer(i)->GetRenderWindow()->Render();
 //   }
@@ -231,8 +246,22 @@ void vvToolBinarize::InputIsSelected(vvSlicerManager * m)
 //------------------------------------------------------------------------------
 
 
+//------------------------------------------------------------------------------
+void vvToolBinarize::UpdateOrientation(int slicer,int orientation)
+{
+  Update(slicer);
+}
+//------------------------------------------------------------------------------
+
 //------------------------------------------------------------------------------
 void vvToolBinarize::UpdateSlice(int slicer,int slices)
+{
+  Update(slicer);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolBinarize::Update(int slicer)
 {
   if (!mInteractiveDisplayIsEnabled) return;
   if (!mCurrentSlicerManager) close();
@@ -242,7 +271,6 @@ void vvToolBinarize::UpdateSlice(int slicer,int slices)
 }
 //------------------------------------------------------------------------------
 
-
 //------------------------------------------------------------------------------
 void vvToolBinarize::GetArgsInfoFromGUI()
 {
@@ -257,15 +285,11 @@ void vvToolBinarize::GetArgsInfoFromGUI()
      int good = cmdline_parser_ext(argc, argv, &args_info, &p);
      DD(good);
   */
-
-  mArgsInfo.imagetypes_flag = 0;
-  mArgsInfo.upper_given = 0;
-  mArgsInfo.lower_given = 0;
+  cmdline_parser_clitkBinarizeImage_init(&mArgsInfo); // Initialisation to default
   bool inverseBGandFG = false;
 
   mArgsInfo.lower_given = 1;
   mArgsInfo.lower_arg = mThresholdSlider1->GetValue();
-  // DD(mArgsInfo.lower_arg);
   if (mRadioButtonLowerThan->isChecked()) {
     mArgsInfo.upper_given = 1;
     mArgsInfo.upper_arg = mThresholdSlider2->GetValue();
@@ -292,12 +316,12 @@ void vvToolBinarize::GetArgsInfoFromGUI()
 
   mArgsInfo.verbose_flag = false;
 
-  // Required (even if not used)
-  mArgsInfo.input_given = 0;
-  mArgsInfo.output_given = 0;
+  // // Required (even if not used)
+  // mArgsInfo.input_given = 0;
+  // mArgsInfo.output_given = 0;
 
-  mArgsInfo.input_arg = new char;
-  mArgsInfo.output_arg = new char;
+  // mArgsInfo.input_arg = new char;
+  // mArgsInfo.output_arg = new char;
 }
 //------------------------------------------------------------------------------
 
@@ -310,11 +334,10 @@ void vvToolBinarize::apply()
   GetArgsInfoFromGUI();
 
   // Main filter
-  clitk::BinarizeImageGenericFilter<args_info_clitkBinarizeImage>::Pointer filter =
-    clitk::BinarizeImageGenericFilter<args_info_clitkBinarizeImage>::New();
+  clitk::BinarizeImageGenericFilter::Pointer filter =
+    clitk::BinarizeImageGenericFilter::New();
   filter->SetInputVVImage(mCurrentImage);
   filter->SetArgsInfo(mArgsInfo);
-  filter->EnableReadOnDisk(false);
   filter->Update();
 
   // Output
@@ -335,7 +358,7 @@ void vvToolBinarize::valueChangedT2(double v)
   if (mRadioButtonLowerThan->isChecked()) {
     mThresholdSlider1->SetMaximum(v);
     if (!mInteractiveDisplayIsEnabled) return;
-    for(int i=0;i<mCurrentSlicerManager->NumberOfSlicers(); i++) {
+    for(int i=0;i<mCurrentSlicerManager->GetNumberOfSlicers(); i++) {
       mImageContourLower[i]->Update(v);
     }
     mCurrentSlicerManager->Render();
@@ -352,7 +375,7 @@ void vvToolBinarize::valueChangedT1(double v)
   mThresholdSlider2->SetMinimum(v);
   //  int m1 = (int)lrint(v);
   if (!mInteractiveDisplayIsEnabled) return;
-  for(int i=0;i<mCurrentSlicerManager->NumberOfSlicers(); i++) {
+  for(int i=0;i<mCurrentSlicerManager->GetNumberOfSlicers(); i++) {
     mImageContour[i]->Update(v);
   }
   mCurrentSlicerManager->Render();