]> Creatis software - clitk.git/blob - tools/clitkLineProfileGenericFilter.h
Romulo:
[clitk.git] / tools / clitkLineProfileGenericFilter.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 clitkLineProfileGenericFilter_h
19 #define clitkLineProfileGenericFilter_h
20
21 /* =================================================
22  * @file   clitkLineProfileGenericFilter.h
23  * @author 
24  * @date   
25  * 
26  * @brief 
27  * 
28  ===================================================*/
29
30 #include "clitkImageToImageGenericFilter.h"
31 #include "clitkLineProfile_ggo.h"
32
33
34 namespace clitk
35 {
36
37   class ITK_EXPORT LineProfileGenericFilter: 
38     public ImageToImageGenericFilter<LineProfileGenericFilter>
39   {
40   public:
41     //----------------------------------------  
42     // Constructor & Destructor
43     //----------------------------------------  
44     LineProfileGenericFilter();
45     ~LineProfileGenericFilter() {};
46
47     
48     //----------------------------------------
49     // ITK
50     //----------------------------------------
51     typedef LineProfileGenericFilter           Self;
52     typedef itk::LightObject                   Superclass;
53     typedef itk::SmartPointer<Self>            Pointer;
54     typedef itk::SmartPointer<const Self>      ConstPointer;
55    
56     // Method for creation through the object factory
57     itkNewMacro(Self);  
58
59     // Run-time type information (and related methods)
60     itkTypeMacro( SetSpacingGenericFilter, LightObject );
61
62     //----------------------------------------
63     // Typedefs
64     //----------------------------------------
65     typedef args_info_clitkLineProfile  ArgsInfoType;
66
67     //----------------------------------------
68     // Set & Get
69     //----------------------------------------    
70     void SetArgsInfo(const ArgsInfoType & a)
71     {
72       m_ArgsInfo=a;
73       m_Verbose=m_ArgsInfo.verbose_flag;
74       SetIOVerbose(m_Verbose);
75       SetInputFilename(m_ArgsInfo.input_arg);
76     }
77     
78     //----------------------------------------  
79     // Templated members
80     //----------------------------------------  
81     template<class InputImageType> void UpdateWithInputImageType();
82     
83   protected:
84
85     //----------------------------------------  
86     // Templated members
87     //----------------------------------------  
88     //template <unsigned int Dimension>  void UpdateWithDim(std::string PixelType, unsigned int Components);
89     template<unsigned int Dim> void InitializeImageType();
90
91     //----------------------------------------  
92     // Data members
93     //----------------------------------------
94     args_info_clitkLineProfile m_ArgsInfo;
95     bool m_Verbose;
96     
97   };
98 }
99
100 #ifndef ITK_MANUAL_INSTANTIATION
101 #include "clitkLineProfileGenericFilter.txx"
102 #endif
103
104 #endif // clitkLineProfileGenericFilter_h