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