]> Creatis software - clitk.git/blob - tools/clitkConeBeamProjectImageGenericFilter.h
*** empty log message ***
[clitk.git] / tools / clitkConeBeamProjectImageGenericFilter.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 CLITKCONEBEAMPROJECTIMAGEGENERICFILTER__H
19 #define CLITKCONEBEAMPROJECTIMAGEGENERICFILTER__H
20 /**
21    =================================================
22    * @file   clitkConeBeamProjectImageGenericFilter.h
23    * @author Jef Vandemeulebroucke <jef@creatis.insa-lyon.fr>
24    * @date   30 April 2008
25    * 
26    * @brief Project a 3D image using a ConeBeam geometry
27    * 
28    =================================================*/
29
30 // clitk include
31 #include "clitkIO.h"
32 #include "clitkImageCommon.h"
33 #include "clitkImageCommon.h"
34 #include "clitkConeBeamProjectImageFilter.h"
35 #include "clitkConeBeamProjectImage_ggo.h"
36
37 // itk include
38 #include "itkLightObject.h"
39
40
41 namespace clitk {
42   
43   //====================================================================
44   class ConeBeamProjectImageGenericFilter: public itk::LightObject
45   {
46   public: 
47
48     //Typedefs ITK================================================
49     typedef ConeBeamProjectImageGenericFilter        Self;
50     typedef itk::LightObject  Superclass;
51     typedef itk::SmartPointer<Self>        Pointer;
52     typedef itk::SmartPointer<const Self> ConstPointer;
53
54     //ITK Method for object creation================================================
55     itkNewMacro(Self);  
56     
57     
58     //====================================================================
59     // Set methods
60     void SetArgsInfo(const args_info_clitkConeBeamProjectImage a)
61     {
62       m_ArgsInfo=a;
63       m_InputFileName=m_ArgsInfo.input_arg;
64       m_Verbose=m_ArgsInfo.verbose_flag;
65     }
66     
67     //  void SetVerbose(const bool v){mVerbose=v;}
68     //     void SetInput(const std::string i)   { mInput = i; }
69     //     void SetOutput(const std::string o)   { mOutput = o; }
70     //     void SetMask(const std::string m) {mMask = m;}
71     //     void SetIsoCenter(const std::vector<double> i) 
72     //     {
73     //       mIsoCenter.resize(3);
74     //       for (unsigned int j=0; j < 3; j++) mIsoCenter[j]=i[j];      
75     //     }
76     //     void SetSourceToScreen(const double s) {mSourceToScreen = s;}
77     //     void SetSourceToAxis(const double s) {mSourceToAxis = s;}
78     //     void SetProjectionAngle(const double a) {mProjectionAngle = a;}
79     //     void SetRigidTransformMatrix(const itk::Matrix<double,4,4> m) {mRigidTransformMatrix=m;}
80     //     void SetEdgePaddingValue(const double m) {mEdgePaddingValue=m;}
81
82     //====================================================================
83     // Update
84     virtual void Update();
85     
86   protected:
87     const char * GetNameOfClass() const { return "ConeBeamProjectImageGenericFilter"; }
88   
89     //====================================================================
90     // Constructor & Destructor
91     ConeBeamProjectImageGenericFilter();
92     ~ConeBeamProjectImageGenericFilter(){;}
93
94     //====================================================================
95     //Protected member functions
96     template <class PixelType> void UpdateWithPixelType();
97   
98     bool m_Verbose;
99     std::string m_InputFileName;
100     args_info_clitkConeBeamProjectImage m_ArgsInfo;
101     //     std::string mOutput;
102     //     std::string mMask;
103     //     std::vector<double> mIsoCenter;
104     //     double mSourceToScreen;
105     //     double mSourceToAxis;
106     //     double mProjectionAngle;
107     //     itk::Matrix<double,4,4> mRigidTransformMatrix;
108     //     double mEdgePaddingValue;
109
110   };
111   
112 } // end namespace clitk
113 #ifndef ITK_MANUAL_INSTANTIATION
114 #include "clitkConeBeamProjectImageGenericFilter.txx"
115 #endif
116   
117 #endif //#define CLITKCONEBEAMPROJECTIMAGEGENERICFILTER__H