]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Algorithms/MacheteImageFilter.h
...
[cpPlugins.git] / lib / cpExtensions / Algorithms / MacheteImageFilter.h
1 // -------------------------------------------------------------------------
2 // @author Jose Luis Guzman (cycopepe@gmail.com)
3 // -------------------------------------------------------------------------
4
5
6 #ifndef __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__H__
7 #define __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__H__
8
9 #include <cpExtensions/cpExtensions_Export.h>
10
11 #include <itkImageToImageFilter.h>
12
13 namespace cpExtensions
14 {
15   namespace Algorithms
16   {
17     template< class I, class O>
18     class MacheteImageFilter :public itk::ImageToImageFilter < I, O >
19     {
20     public:
21       /** Standard class typedefs. */
22       typedef MacheteImageFilter             Self;
23
24       typedef itk::ImageToImageFilter< I, O > Superclass;
25       typedef itk::SmartPointer< Self >        Pointer;
26
27       /** Method for creation through the object factory. */
28       itkNewMacro(Self);
29
30       /** Run-time type information (and related methods). */
31       itkTypeMacro(MacheteImageFilter, ImageToImageFilter);
32       
33       typedef typename I::PixelType           RadiusType;
34       //typedef typename I::SizeValueType      RadiusValueType;
35       
36       itkGetConstReferenceMacro(Radius, RadiusType);
37
38       
39       void SetRadius(const RadiusType & rad);
40       //void SetRadius(const RadiusValueType & rad);
41
42       void SetPoint(itk::Point<double, 3> & point);
43       void SetPoint(const double & x, const double & y, const double & z);
44
45     protected:
46       MacheteImageFilter(){}
47       ~MacheteImageFilter(){}
48
49       /** Does the real work. */
50       virtual void GenerateData();
51
52       RadiusType m_Radius;
53       itk::Point<double, 3> point;
54
55     private:
56       MacheteImageFilter(const Self &); //purposely not implemented
57       void operator=(const Self &);  //purposely not implemented
58
59      
60     };
61
62   } // ecapseman
63
64 } // ecapseman
65
66
67 #ifndef ITK_MANUAL_INSTANTIATION
68 #include <cpExtensions/Algorithms/MacheteImageFilter.hxx>
69 #endif
70
71
72 #endif // __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__H__