]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/FastMarching.h
...
[FrontAlgorithms.git] / lib / fpa / Image / FastMarching.h
1 #ifndef __FPA__IMAGE__FASTMARCHING__H__
2 #define __FPA__IMAGE__FASTMARCHING__H__
3
4 #include <itkImage.h>
5 #include <itkImageFunction.h>
6 #include <itkImageToImageFilter.h>
7 #include <itkIndex.h>
8 #include <fpa/Base/FastMarching.h>
9 #include <fpa/Image/Algorithm.h>
10
11 namespace fpa
12 {
13   namespace Image
14   {
15     /**
16      * @param I Input image type
17      */
18     template< class I, class C >
19     class FastMarching
20       : public Algorithm< I, fpa::Base::FastMarching< typename I::IndexType, C, typename I::PixelType, itk::Functor::IndexLexicographicCompare< I::ImageDimension >, itk::ImageToImageFilter< I, itk::Image< C, I::ImageDimension > > > >
21     {
22     public:
23       // Standard class typdedefs
24       typedef typename I::IndexType TVertex;
25       typedef typename I::PixelType TVertexValue;
26       typedef itk::Image< C, I::ImageDimension > TCostImage;
27       typedef itk::ImageToImageFilter< I, TCostImage > TBaseFilter;
28       typedef fpa::Base::FastMarching< TVertex, C, TVertexValue, itk::Functor::IndexLexicographicCompare< I::ImageDimension >, TBaseFilter > TBaseAlgorithm;
29
30       typedef FastMarching                        Self;
31       typedef Algorithm< I, TBaseAlgorithm >  Superclass;
32       typedef itk::SmartPointer< Self >       Pointer;
33       typedef itk::SmartPointer< const Self > ConstPointer;
34
35     public:
36       itkNewMacro( Self );
37       itkTypeMacro( FastMarching, fpaBaseFastMarching );
38
39     protected:
40       FastMarching( )
41         : Superclass( )
42         { }
43       virtual ~FastMarching( )
44         { }
45
46     private:
47       // Purposely not implemented
48       FastMarching( const Self& );
49       void operator=( const Self& );
50     };
51
52   } // ecapseman
53
54 } // ecapseman
55
56 #endif // __FPA__IMAGE__FASTMARCHING__H__
57
58 // eof - $RCSfile$