/*=========================================================================
+ Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Program: vv
- Module: $RCSfile: vvImageReader.h,v $
- Language: C++
- Date: $Date: 2010/01/06 13:31:57 $
- Version: $Revision: 1.1 $
- Author : Pierre Seroul (pierre.seroul@gmail.com)
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+ - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
-Copyright (C) 2008
-Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
-CREATIS-LRMN http://www.creatis.insa-lyon.fr
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the copyright notices for more information.
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 3 of the License.
+ It is distributed under dual licence
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-=========================================================================*/
+ - BSD See included LICENSE.txt file
+ - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+======================================================================-====*/
#ifndef vvImageReader_H
#define vvImageReader_H
-
#include <string>
#include <vector>
#include <QThread>
#include "vvImage.h"
#include "vvConstants.h"
-class vvImageReader : public QThread {
+class vvImageReader : public itk::LightObject, public QThread {
public:
- vvImageReader();
- ~vvImageReader();
+ typedef vvImageReader Self;
+ typedef itk::SmartPointer<Self> Pointer;
+ itkNewMacro(Self);
- void SetInputFilename(const std::string & filename);
- void SetInputFilenames(const std::vector<std::string> & filenames);
+ void SetInputFilename(const std::string & filename);
+ void SetInputFilenames(const std::vector<std::string> & filenames);
- vvImage::Pointer GetOutput() {
- return mImage;
- }
+ vvImage::Pointer GetOutput() {
+ return mImage;
+ }
- std::string GetLastError() {
- return mLastError;
- }
+ std::string GetLastError() {
+ return mLastError;
+ }
- //====================================================================
- // Main function
- void Update(LoadedImageType type);
- void Update(int dim, std::string InputPixelType, LoadedImageType type);
- //void Extract(int dim, std::string InputPixelType, int slice);
+ void SetSlice(unsigned int i) { mSlice = i; }
-protected:
- void run();
- //====================================================================
- std::vector<std::string> mInputFilenames;
- ///Method used to load the image, see vvConstants.h for definition
- LoadedImageType mType;
- itk::Command::Pointer mObserver;
-
- std::string mLastError;
-
- //====================================================================
- template<unsigned int VImageDimension>
- void UpdateWithDim(std::string inputPixelType);
-
- //====================================================================
- /*template<unsigned int VImageDimension>
- void ExtractWithDim(std::string inputPixelType, int slice);*/
-
- //====================================================================
- template<class InputPixelType, unsigned int VImageDimension>
- void UpdateWithDimAndInputPixelType();
- ///Input dimension and pixel type
- int mDim;
- std::string mInputPixelType;
+ //====================================================================
+ // Main function
+ void Update();
+ void Update(LoadedImageType type);
+ void Update(int dim, std::string InputPixelType, LoadedImageType type);
+protected:
+ void run();
+ //====================================================================
+ std::vector<std::string> mInputFilenames;
+ ///Method used to load the image, see vvConstants.h for definition
+ LoadedImageType mType;
+ unsigned int mSlice;
+ itk::Command::Pointer mObserver;
+
+ std::string mLastError;
+
+ //====================================================================
+ template<unsigned int VImageDimension>
+ void UpdateWithDim(std::string inputPixelType);
+
+ //====================================================================
+ /*template<unsigned int VImageDimension>
+ void ExtractWithDim(std::string inputPixelType, int slice);*/
+
+ //====================================================================
+ template<class InputPixelType, unsigned int VImageDimension>
+ void UpdateWithDimAndInputPixelType();
+ ///Input dimension and pixel type
+ int mDim;
+ std::string mInputPixelType;
+
+ //====================================================================
+ void ReadNkiImageTransform();
+ void ReadMatImageTransform();
private:
- vvImage::Pointer mImage;
+ vvImageReader();
+ ~vvImageReader();
+ vvImage::Pointer mImage;
}; // end class vvImageReader
#endif /* end #define CLITKvvImageReader_H */