/*=========================================================================
+ Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Program: vv
- Module: $RCSfile: vvToolBinarize.h,v $
- Language: C++
- Date: $Date: 2010/02/05 09:06:46 $
- Version: $Revision: 1.2 $
- Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr)
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+ - Léon Bérard cancer center http://www.centreleonberard.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
- Copyright (C) 2010
- Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
- CREATIS http://www.creatis.insa-lyon.fr
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the copyright notices for more information.
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 3 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- =========================================================================*/
+ It is distributed under dual licence
+ - BSD See included LICENSE.txt file
+ - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+===========================================================================**/
#ifndef VVTOOLBINARIZE_H
#define VVTOOLBINARIZE_H
+#include <QtGlobal>
#include <QtDesigner/QDesignerExportWidget>
-#include <QDialog>
#include "vvToolBase.h"
+#include "vvToolWidgetBase.h"
+#include "vvImageContour.h"
#include "ui_vvToolBinarize.h"
-#include "clitkBinarizeImage_ggo.h"
-#include "vtkMarchingSquares.h"
-#include "vtkImageClip.h"
-#include "vtkMarchingCubes.h"
-#include "vtkPolyData.h"
-#include "vtkPolyDataMapper.h"
-#include "vtkActor.h"
-#include "vtkProperty.h"
-#include "vtkRenderer.h"
+#include "clitkBinarizeImage_ggo.h"
//------------------------------------------------------------------------------
class vvToolBinarize:
- public QDialog, public vvToolBase<vvToolBinarize>, private Ui::vvToolBinarize
+ public vvToolWidgetBase,
+ public vvToolBase<vvToolBinarize>,
+ private Ui::vvToolBinarize
{
Q_OBJECT
public:
- vvToolBinarize(QWidget * parent=0, Qt::WindowFlags f=0);
+ vvToolBinarize(vvMainWindowBase * parent=0, Qt::WindowFlags f=0);
~vvToolBinarize();
//-----------------------------------------------------
- typedef vvToolBinarize Self;
-
- //-----------------------------------------------------
- static void Initialize() {
- SetToolName("Binarize");
- SetToolMenuName("Binarize");
- SetToolIconFilename(":/new/prefix1/icons/binarize.png");
- SetToolTip("Image interactive binarization with thresholds.");
- }
-
- void InputIsSet(bool b);
+ static void Initialize();
void GetArgsInfoFromGUI();
+ virtual void InputIsSelected(vvSlicerManager * m);
//-----------------------------------------------------
- // public slots:
-// void InputUpdate();
-
public slots:
- void apply();
- // void InputChange(int index);
+ virtual void apply();
+ virtual bool close();
+ virtual void reject();
void valueChangedT1(double v);
void valueChangedT2(double v);
- void UpdateSlice(int slicer,int slices);
- void InputIsSelected();
+ void UpdateOrientation(int slicer, int orientation);
+ void UpdateSlice(int slicer,int slices, int code=0);
void enableLowerThan(bool b);
+ void useFGBGtoggled(bool);
+ void InteractiveDisplayToggled(bool b);
+ // void LeftButtonReleaseEvent(int slicer);
protected:
+ void RemoveVTKObjects();
+ virtual void closeEvent(QCloseEvent *event);
Ui::vvToolBinarize ui;
- // std::vector<vvSlicerManager*> mSlicerManagers;
-// std::vector<vvSlicerManager*> mSlicerManagersCompatible;
-// vvImage::Pointer mCurrentImage;
-// vvSlicerManager * mCurrentSliceManager;
args_info_clitkBinarizeImage mArgsInfo;
-
- vtkImageClip* mClipper;
- vtkMarchingSquares* mSquares1;
- vtkPolyDataMapper* mSquaresMapper1;
- vtkActor* mSquaresActor1;
+ std::vector<vvImageContour::Pointer> mImageContour;
+ std::vector<vvImageContour::Pointer> mImageContourLower;
+ bool mInteractiveDisplayIsEnabled;
+
+ void Update(int slicer);
}; // end class vvToolBinarize
//------------------------------------------------------------------------------