]> Creatis software - clitk.git/blob - vv/vvImageReader.h
Return 0.0 if libstatgrab is not used
[clitk.git] / vv / vvImageReader.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 vvImageReader_H
19 #define vvImageReader_H
20 #include <string>
21 #include <vector>
22 #include <QThread>
23
24 #include "itkCommand.h"
25 #include "vvImage.h"
26 #include "vvConstants.h"
27
28 class vvImageReader : public QThread {
29
30 public:
31     vvImageReader();
32     ~vvImageReader();
33
34     void SetInputFilename(const std::string & filename);
35     void SetInputFilenames(const std::vector<std::string> & filenames);
36
37     vvImage::Pointer GetOutput() {
38         return mImage;
39     }
40
41     std::string GetLastError() {
42         return mLastError;
43     }
44
45     void SetSlice(unsigned int i) { mSlice = i; }
46
47     //====================================================================
48     // Main function
49     void Update();
50     void Update(LoadedImageType type);
51     void Update(int dim, std::string InputPixelType, LoadedImageType type);
52
53 protected:
54     void run();
55     //====================================================================
56     std::vector<std::string> mInputFilenames;
57     ///Method used to load the image, see vvConstants.h for definition
58     LoadedImageType mType;
59     unsigned int mSlice;
60     itk::Command::Pointer mObserver;
61
62     std::string mLastError;
63
64     //====================================================================
65     template<unsigned int VImageDimension>
66     void UpdateWithDim(std::string inputPixelType);
67
68     //====================================================================
69     /*template<unsigned int VImageDimension>
70     void ExtractWithDim(std::string inputPixelType, int slice);*/
71
72     //====================================================================
73     template<class InputPixelType, unsigned int VImageDimension>
74     void UpdateWithDimAndInputPixelType();
75     ///Input dimension and pixel type
76     int mDim;
77     std::string mInputPixelType;
78
79     //====================================================================
80     void ReadNkiImageTransform();
81     void ReadMatImageTransform();
82 private:
83     vvImage::Pointer mImage;
84
85 }; // end class vvImageReader
86
87 #endif /* end #define CLITKvvImageReader_H */
88