]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/RegionGrow.h
2deff2f637de9001588b0ddbd8bdf1e261188ee1
[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::PointType, 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 TInputImage::PointType        TPoint;
31       typedef typename TVertex::LexicographicCompare TVertexCompare;
32       typedef typename TInputImage::PixelType        TInputValue;
33       typedef typename TOutputImage::PixelType       TOutputValue;
34
35       typedef fpa::Base::MarksInterfaceWithCollisions< TVertex > TMarksInterface;
36       typedef fpa::Base::SeedsInterface< TVertex, TPoint, TInputValue, TOutputValue, TFrontId, TVertexCompare > TSeedsInterface;
37       typedef fpa::Image::Algorithm< TInputImage, TOutputImage, TMarksInterface, TSeedsInterface > TAlgorithm;
38
39       typedef RegionGrow                          Self;
40       typedef fpa::Base::RegionGrow< TAlgorithm > Superclass;
41       typedef itk::SmartPointer< Self >           Pointer;
42       typedef itk::SmartPointer< const Self >     ConstPointer;
43
44       typedef typename TSeedsInterface::TNode  TNode;
45       typedef typename TSeedsInterface::TNodes TNodes;
46
47     public:
48       itkNewMacro( Self );
49       itkTypeMacro( fpa::Image::RegionGrow, fpa::Base::RegionGrow );
50
51     protected:
52       RegionGrow( )
53         : Superclass( )
54         {
55         }
56       virtual ~RegionGrow( )
57         {
58         }
59
60     private:
61       // Purposely not implemented.
62       RegionGrow( const Self& other );
63       Self& operator=( const Self& other );
64     };
65
66   } // ecapseman
67
68 } // ecapseman
69
70 #endif // __fpa__Image__RegionGrow__h__
71
72 // eof - $RCSfile$