1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
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
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.
13 It is distributed under dual licence
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
21 =================================================
22 * @file clitkConeBeamProjectImageGenericFilter.h
23 * @author Jef Vandemeulebroucke <jef@creatis.insa-lyon.fr>
26 * @brief Project a 3D image using a ConeBeam geometry
28 =================================================*/
32 #include "clitkImageCommon.h"
33 #include "clitkImageCommon.h"
34 #include "clitkConeBeamProjectImageFilter.h"
35 #include "clitkConeBeamProjectImage_ggo.h"
38 #include "itkLightObject.h"
43 //====================================================================
44 class ConeBeamProjectImageGenericFilter: public itk::LightObject
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;
54 //ITK Method for object creation================================================
58 //====================================================================
60 void SetArgsInfo(const args_info_clitkConeBeamProjectImage a)
63 m_InputFileName=m_ArgsInfo.input_arg;
64 m_Verbose=m_ArgsInfo.verbose_flag;
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)
73 // mIsoCenter.resize(3);
74 // for (unsigned int j=0; j < 3; j++) mIsoCenter[j]=i[j];
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;}
82 //====================================================================
84 virtual void Update();
87 const char * GetNameOfClass() const { return "ConeBeamProjectImageGenericFilter"; }
89 //====================================================================
90 // Constructor & Destructor
91 ConeBeamProjectImageGenericFilter();
92 ~ConeBeamProjectImageGenericFilter(){;}
94 //====================================================================
95 //Protected member functions
96 template <class PixelType> void UpdateWithPixelType();
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;
112 } // end namespace clitk
113 #ifndef ITK_MANUAL_INSTANTIATION
114 #include "clitkConeBeamProjectImageGenericFilter.txx"
117 #endif //#define CLITKCONEBEAMPROJECTIMAGEGENERICFILTER__H