]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/DataStructures/ImageIndexesContainer.h
Code cleaning
[cpPlugins.git] / lib / cpExtensions / DataStructures / ImageIndexesContainer.h
1 #ifndef __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
2 #define __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
3
4 #include <vector>
5 #include <itkImageBase.h>
6 #include <itkSimpleDataObjectDecorator.h>
7
8 namespace cpExtensions
9 {
10   namespace DataStructures
11   {
12     /**
13      */
14     template< unsigned int _NDim >
15     class ImageIndexesContainer
16       : public itk::SimpleDataObjectDecorator< std::vector< itk::Index< _NDim > > >
17     {
18     public:
19       typedef itk::Index< _NDim >                          TIndex;
20       typedef std::vector< TIndex >                        TContainer;
21       typedef itk::SimpleDataObjectDecorator< TContainer > Superclass;
22
23       typedef ImageIndexesContainer           Self;
24       typedef itk::SmartPointer< Self >       Pointer;
25       typedef itk::SmartPointer< const Self > ConstPointer;
26
27       typedef itk::ImageBase< _NDim > TImageBase;
28
29     public:
30       itkNewMacro( Self );
31       itkTypeMacro( ImageIndexesContainer, itk::SimpleDataObjectDecorator );
32
33     public:
34       TImageBase* GetReferenceImage( )
35         { return( this->m_ReferenceImage ); }
36       const TImageBase* GetReferenceImage( ) const
37         { return( this->m_ReferenceImage ); }
38       void SetReferenceImage( const TImageBase* image )
39         {
40           this->m_ReferenceImage = TImageBase::New( );
41           this->m_ReferenceImage->SetDirection( image->GetDirection( ) );
42           this->m_ReferenceImage->SetOrigin( image->GetOrigin( ) );
43           this->m_ReferenceImage->SetSpacing( image->GetSpacing( ) );
44           this->Modified( );
45         }
46
47     protected:
48       ImageIndexesContainer( )          { }
49       virtual ~ImageIndexesContainer( ) { }
50
51     private:
52       // Purposely not implemented
53       ImageIndexesContainer( const Self& other );
54       Self& operator=( const Self& other );
55
56     protected:
57       typename TImageBase::Pointer m_ReferenceImage;
58     };
59
60   } // ecapseman
61
62 } // ecapseman
63
64 #endif // __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
65
66 // eof - $RCSfile$