]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/SkeletonReader.h
2afce079a2d14868939ffff9067205667cf7828e
[FrontAlgorithms.git] / lib / fpa / Image / SkeletonReader.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Image__SkeletonReader__h__
7 #define __fpa__Image__SkeletonReader__h__
8
9 #include <itkProcessObject.h>
10
11 namespace fpa
12 {
13   namespace Image
14   {
15     /**
16      */
17     template< class _TSkeleton >
18     class SkeletonReader
19       : public itk::ProcessObject
20     {
21     public:
22       // Basic types
23       typedef SkeletonReader                  Self;
24       typedef itk::ProcessObject              Superclass;
25       typedef itk::SmartPointer< Self >       Pointer;
26       typedef itk::SmartPointer< const Self > ConstPointer;
27
28       typedef _TSkeleton TSkeleton;
29
30     public:
31       itkNewMacro( Self );
32       itkTypeMacro( SkeletonReader, itk::ProcessObject );
33
34       itkGetConstMacro( FileName, std::string );
35       itkSetMacro( FileName, std::string );
36
37     public:
38       TSkeleton* GetOutput( );
39       TSkeleton* GetOutput( unsigned int i );
40
41       virtual void GraftOutput( itk::DataObject* out );
42       virtual void GraftOutput(
43         const typename Superclass::DataObjectIdentifierType& key,
44         itk::DataObject* out
45         );
46       virtual void GraftNthOutput( unsigned int i, itk::DataObject* out );
47       virtual itk::DataObject::Pointer MakeOutput(
48         itk::ProcessObject::DataObjectPointerArraySizeType i
49         ) override;
50
51       virtual void Update( ) override
52         { this->GenerateData( ); }
53
54     protected:
55       SkeletonReader( );
56       virtual ~SkeletonReader( );
57
58       virtual void GenerateData( ) override;
59
60       // Do nothing
61       virtual void GenerateOutputInformation( ) override
62         { }
63
64     private:
65       // Purposely not implemented
66       SkeletonReader( const Self& );
67       void operator=( const Self& );
68
69     protected:
70       std::string m_FileName;
71     };
72
73   } // ecapseman
74
75 } // ecapseman
76
77 #ifndef ITK_MANUAL_INSTANTIATION
78 #  include <fpa/Image/SkeletonReader.hxx>
79 #endif // ITK_MANUAL_INSTANTIATION
80
81 #endif // __fpa__Image__SkeletonReader__h__
82
83 // eof - $RCSfile$