]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/RegionGrow.h
6a094879ef23b1355d15d7f658693e397f34ea3f
[FrontAlgorithms.git] / lib / fpa / Image / RegionGrow.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Image__RegionGrow__h__
7 #define __fpa__Image__RegionGrow__h__
8
9 #include <fpa/Base/RegionGrow.h>
10 #include <fpa/Base/MarksInterfaceWithCollisions.h>
11 #include <fpa/Base/SeedsInterface.h>
12 #include <fpa/Image/Algorithm.h>
13
14 namespace fpa
15 {
16   namespace Image
17   {
18     /**
19      */
20     template< class _TInputImage, class _TOutputImage, class _TFrontId = unsigned char >
21     class RegionGrow
22       : public fpa::Base::RegionGrow< fpa::Image::Algorithm< _TInputImage, _TOutputImage, fpa::Base::MarksInterfaceWithCollisions< typename _TInputImage::IndexType >, fpa::Base::SeedsInterface< typename _TInputImage::IndexType, typename _TInputImage::PixelType, typename _TOutputImage::PixelType, _TFrontId, typename _TInputImage::IndexType::LexicographicCompare > > >
23     {
24     public:
25       typedef _TInputImage  TInputImage;
26       typedef _TOutputImage TOutputImage;
27       typedef _TFrontId     TFrontId;
28
29       typedef typename TInputImage::IndexType        TVertex;
30       typedef typename TVertex::LexicographicCompare TVertexCompare;
31       typedef typename TInputImage::PixelType        TInputValue;
32       typedef typename TOutputImage::PixelType       TOutputValue;
33
34       typedef fpa::Base::MarksInterfaceWithCollisions< TVertex > TMarksInterface;
35       typedef fpa::Base::SeedsInterface< TVertex, TInputValue, TOutputValue, TFrontId, TVertexCompare > TSeedsInterface;
36       typedef fpa::Image::Algorithm< TInputImage, TOutputImage, TMarksInterface, TSeedsInterface > TAlgorithm;
37
38       typedef RegionGrow                          Self;
39       typedef fpa::Base::RegionGrow< TAlgorithm > Superclass;
40       typedef itk::SmartPointer< Self >           Pointer;
41       typedef itk::SmartPointer< const Self >     ConstPointer;
42
43     public:
44       itkNewMacro( Self );
45       itkTypeMacro( fpa::Image::RegionGrow, fpa::Base::RegionGrow );
46
47     protected:
48       RegionGrow( )
49         : Superclass( )
50         {
51         }
52       virtual ~RegionGrow( )
53         {
54         }
55
56     private:
57       // Purposely not implemented.
58       RegionGrow( const Self& other );
59       Self& operator=( const Self& other );
60     };
61
62   } // ecapseman
63
64 } // ecapseman
65
66 #endif // __fpa__Image__RegionGrow__h__
67
68 // eof - $RCSfile$