]> Creatis software - clitk.git/blob - tools/clitkVectorImageToImageFilter.txx
itk4 compatibility
[clitk.git] / tools / clitkVectorImageToImageFilter.txx
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://www.centreleonberard.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 clitkVectorImageToImageFilter_txx
19 #define clitkVectorImageToImageFilter_txx
20
21 /* =================================================
22  * @file   clitkVectorImageToImageFilter.txx
23  * @author 
24  * @date   
25  * 
26  * @brief 
27  * 
28  ===================================================*/
29
30
31 namespace clitk
32 {
33
34   //-------------------------------------------------------------------
35   // Constructor
36   //-------------------------------------------------------------------
37   template<class InputImageType, class OutputImageType>
38   VectorImageToImageFilter<InputImageType, OutputImageType>::VectorImageToImageFilter()
39   {
40    m_Verbose=false;
41    m_ComponentIndex=0;
42   }
43
44
45   //-------------------------------------------------------------------
46   // Generate Data
47   //-------------------------------------------------------------------
48   template<class InputImageType, class  OutputImageType> 
49   void 
50 #if ITK_VERSION_MAJOR >= 4
51   VectorImageToImageFilter<InputImageType, OutputImageType>::ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, itk::ThreadIdType threadId)
52 #else
53   VectorImageToImageFilter<InputImageType, OutputImageType>::ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, int threadId)
54 #endif
55   {
56     // Iterators
57     typename OutputImageType::Pointer output=this->GetOutput();
58     typename InputImageType::ConstPointer input=this->GetInput();
59
60     typedef itk::ImageRegionConstIterator<InputImageType> InputIteratorType;
61     InputIteratorType inputIt (input, outputRegionForThread);
62
63     typedef itk::ImageRegionIterator<OutputImageType> OutputIteratorType;
64     OutputIteratorType outputIt (output, outputRegionForThread);
65     
66     while(! inputIt.IsAtEnd() )
67       {
68         outputIt.Set(inputIt.Get()[m_ComponentIndex]);
69         ++outputIt;
70         ++inputIt;
71       }
72   }
73
74
75 }//end clitk
76  
77 #endif //#define clitkVectorImageToImageFilter_txx