]> Creatis software - clitk.git/blob - vv/vvToolResample.h
minor bugfixes
[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://oncora1.lyon.fnclcc.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 #ifndef _vvToolResample_h
19 #define _vvToolResample_h
20 #include "ui_vvToolResample.h"
21 #include "clitkCommon.h"
22 #include "vvImage.h"
23 #include "vvSlicerManager.h"
24 #include "vvToolWidgetBase.h"
25 #include "vvToolBase.h"
26 #include "clitkImageResampleGenericFilter.h"
27
28 #include <QtDesigner/QDesignerExportWidget>
29 #include <QTreeWidget>
30
31 //====================================================================
32 class vvToolResample :  
33     public vvToolWidgetBase,
34     public vvToolBase<vvToolResample>, 
35     private Ui::vvToolResample 
36 {
37
38     Q_OBJECT
39
40 public:
41     // constructor - destructor
42     vvToolResample(vvMainWindowBase * parent=0, Qt::WindowFlags f=0);
43
44     // Get output result
45     vvImage::Pointer GetOutput() {
46         return mOutput;
47     }
48     std::string GetOutputFileName();
49     static void Initialize();
50     void apply();
51
52 public slots:
53 //  void SetImagesList(QTreeWidget * tree);
54     void UpdateControlSizeAndSpacing();
55     void ComputeNewSizeFromSpacing();
56     void ComputeNewSizeFromScale();
57     void ComputeNewSizeFromIso();
58     void ComputeNewSpacingFromSize();
59     void ComputeNewSpacingFromScale();
60     void ComputeNewSpacingFromIso();
61     void UpdateInterpolation();
62     void UpdateGaussianFilter();
63     void InputIsSelected(vvSlicerManager* m);
64
65 protected:
66     Ui::vvToolResample ui;
67     vvImage::Pointer mOutput;
68     clitk::ImageResampleGenericFilter::Pointer mFilter;
69
70     vvSlicerManager* mCurrentSlicerManager;
71     vvImage::Pointer mCurrentImage;
72     int mCurrentIndex;
73
74     std::vector<int> mInputOrigin;
75     std::vector<int> mInputSize;
76     std::vector<double> mInputSpacing;
77     std::vector<int> mOutputSize;
78     std::vector<double> mOutputSpacing;
79     int mDimension;
80
81     QString mLastError;
82
83     QString mInputFileName;
84
85     QString mInputFileFormat;
86     QString mPixelType;
87     QString ComponentType;
88
89     QStringList OutputListFormat;
90
91     void UpdateInputInfo();
92     void UpdateOutputInfo();
93     void UpdateOutputFormat();
94     void FillSizeEdit(std::vector<int> size);
95     void FillSpacingEdit(std::vector<double> spacing);
96     void UpdateOutputSizeAndSpacing();
97
98     QString GetSizeInBytes(std::vector<int> & size);
99     QString GetVectorDoubleAsString(std::vector<double> vectorDouble);
100     QString GetVectorIntAsString(std::vector<int> vectorInt);
101
102 }; // end class vvToolResample
103 //====================================================================
104
105 #endif
106