]> Creatis software - clitk.git/blob - vv/vvImageReader.h
Initial revision
[clitk.git] / vv / vvImageReader.h
1 /*=========================================================================
2
3  Program:   vv
4  Module:    $RCSfile: vvImageReader.h,v $
5  Language:  C++
6  Date:      $Date: 2010/01/06 13:31:57 $
7  Version:   $Revision: 1.1 $
8  Author :   Pierre Seroul (pierre.seroul@gmail.com)
9
10 Copyright (C) 2008
11 Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
12 CREATIS-LRMN http://www.creatis.insa-lyon.fr
13
14 This program is free software: you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation, version 3 of the License.
17
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 GNU General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26 =========================================================================*/
27 #ifndef vvImageReader_H
28 #define vvImageReader_H
29
30 #include <string>
31 #include <vector>
32 #include <QThread>
33
34 #include "itkCommand.h"
35 #include "vvImage.h"
36 #include "vvConstants.h"
37
38 class vvImageReader : public QThread {
39
40 public:
41     vvImageReader();
42     ~vvImageReader();
43
44     void SetInputFilename(const std::string & filename);
45     void SetInputFilenames(const std::vector<std::string> & filenames);
46
47     vvImage::Pointer GetOutput() {
48         return mImage;
49     }
50
51     std::string GetLastError() {
52         return mLastError;
53     }
54
55     //====================================================================
56     // Main function
57     void Update(LoadedImageType type);
58     void Update(int dim, std::string InputPixelType, LoadedImageType type);
59     //void Extract(int dim, std::string InputPixelType, int slice);
60
61 protected:
62     void run();
63     //====================================================================
64     std::vector<std::string> mInputFilenames;
65     ///Method used to load the image, see vvConstants.h for definition
66     LoadedImageType mType;
67     itk::Command::Pointer mObserver;
68
69     std::string mLastError;
70
71     //====================================================================
72     template<unsigned int VImageDimension>
73     void UpdateWithDim(std::string inputPixelType);
74
75     //====================================================================
76     /*template<unsigned int VImageDimension>
77     void ExtractWithDim(std::string inputPixelType, int slice);*/
78
79     //====================================================================
80     template<class InputPixelType, unsigned int VImageDimension>
81     void UpdateWithDimAndInputPixelType();
82     ///Input dimension and pixel type
83     int mDim;
84     std::string mInputPixelType;
85
86 private:
87     vvImage::Pointer mImage;
88
89 }; // end class vvImageReader
90
91 #endif /* end #define CLITKvvImageReader_H */
92