]> Creatis software - clitk.git/blob - vv/vvImageReader.h
WIP on overlay
[clitk.git] / vv / vvImageReader.h
1 /*=========================================================================
2
3  Program:   vv
4  Module:    $RCSfile: vvImageReader.h,v $
5  Language:  C++
6  Date:      $Date: 2010/01/26 15:04:33 $
7  Version:   $Revision: 1.2 $
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();
58     void Update(LoadedImageType type);
59     void Update(int dim, std::string InputPixelType, LoadedImageType type);
60     //void Extract(int dim, std::string InputPixelType, int slice);
61
62 protected:
63     void run();
64     //====================================================================
65     std::vector<std::string> mInputFilenames;
66     ///Method used to load the image, see vvConstants.h for definition
67     LoadedImageType mType;
68     itk::Command::Pointer mObserver;
69
70     std::string mLastError;
71
72     //====================================================================
73     template<unsigned int VImageDimension>
74     void UpdateWithDim(std::string inputPixelType);
75
76     //====================================================================
77     /*template<unsigned int VImageDimension>
78     void ExtractWithDim(std::string inputPixelType, int slice);*/
79
80     //====================================================================
81     template<class InputPixelType, unsigned int VImageDimension>
82     void UpdateWithDimAndInputPixelType();
83     ///Input dimension and pixel type
84     int mDim;
85     std::string mInputPixelType;
86
87 private:
88     vvImage::Pointer mImage;
89
90 }; // end class vvImageReader
91
92 #endif /* end #define CLITKvvImageReader_H */
93