]> Creatis software - clitk.git/blob - vv/vvToolResample.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvToolResample.h
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://www.centreleonberard.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
9   This software is distributed WITHOUT ANY WARRANTY; without even
10   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11   PURPOSE.  See the copyright notices for more information.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17   ===========================================================================**/
18
19 #ifndef _VVTOOLRESAMPLE_H
20 #define _VVTOOLRESAMPLE_H
21
22 // clitk
23 //#include "clitkImageResampleGenericFilter.h"
24 #include "clitkResampleImageGenericFilter.h"
25
26 // vv
27 #include "ui_vvToolResample.h"
28 #include "vvImage.h"
29 #include "vvSlicerManager.h"
30 #include "vvToolWidgetBase.h"
31 #include "vvToolBase.h"
32
33 // qt
34 #if QT_VERSION >= 0x050000
35 #include <QtUiPlugin/QDesignerExportWidget>
36 #else
37 #include <QtDesigner/QDesignerExportWidget>
38 #endif
39 #include <QTreeWidget>
40
41 //------------------------------------------------------------------------------
42 class vvToolResample :  
43   public vvToolWidgetBase,
44   public vvToolBase<vvToolResample>, 
45   private Ui::vvToolResample {
46
47   Q_OBJECT
48     
49   public:
50   // constructor - destructor
51   vvToolResample(vvMainWindowBase * parent=0, Qt::WindowFlags f=0);
52
53   // Get output result
54   vvImage::Pointer GetOutput() {
55     return mOutput;
56   }
57   std::string GetOutputFileName();
58   static void Initialize();
59   void apply();
60
61 public slots:
62   //  void SetImagesList(QTreeWidget * tree);
63   void UpdateControlSizeAndSpacing();
64   void ComputeNewSizeFromSpacing();
65   void ComputeNewSizeFromScale();
66   void ComputeNewSizeFromIso();
67   void ComputeNewSpacingFromSize();
68   void ComputeNewSpacingFromScale();
69   void ComputeNewSpacingFromIso();
70   void UpdateInterpolation();
71   void UpdateGaussianFilter();
72   void InputIsSelected(vvSlicerManager* m);
73
74 protected:
75   Ui::vvToolResample ui;
76   vvImage::Pointer mOutput;
77   clitk::ResampleImageGenericFilter::Pointer mFilter;
78
79   //  vvSlicerManager* mCurrentSlicerManager;
80   vvImage::Pointer mCurrentImage;
81   int mCurrentIndex;
82
83   std::vector<int> mInputOrigin;
84   std::vector<int> mInputSize;
85   std::vector<double> mInputSpacing;
86   std::vector<int> mOutputSize;
87   std::vector<double> mOutputSpacing;
88   int mDimension;
89
90   QString mLastError;
91
92   QString mInputFileName;
93
94   QString mInputFileFormat;
95   QString mPixelType;
96   QString ComponentType;
97
98   QStringList OutputListFormat;
99
100   void UpdateInputInfo();
101   void UpdateOutputInfo();
102   void UpdateOutputFormat();
103   void FillSizeEdit(std::vector<int> size);
104   void FillSpacingEdit(std::vector<double> spacing);
105   void UpdateOutputSizeAndSpacing();
106
107   QString GetSizeInBytes(std::vector<int> & size);
108   QString GetVectorDoubleAsString(std::vector<double> vectorDouble);
109   QString GetVectorIntAsString(std::vector<int> vectorInt);
110
111 }; // end class vvToolResample
112 //------------------------------------------------------------------------------
113
114
115 #endif
116