1 #ifndef __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
2 #define __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
5 #include <itkImageBase.h>
6 #include <itkSimpleDataObjectDecorator.h>
10 namespace DataStructures
14 template< unsigned int _NDim >
15 class ImageIndexesContainer
16 : public itk::SimpleDataObjectDecorator< std::vector< itk::Index< _NDim > > >
19 typedef itk::Index< _NDim > TIndex;
20 typedef std::vector< TIndex > TContainer;
21 typedef itk::SimpleDataObjectDecorator< TContainer > Superclass;
23 typedef ImageIndexesContainer Self;
24 typedef itk::SmartPointer< Self > Pointer;
25 typedef itk::SmartPointer< const Self > ConstPointer;
27 typedef itk::ImageBase< _NDim > TImageBase;
31 itkTypeMacro( ImageIndexesContainer, itk::SimpleDataObjectDecorator );
34 TImageBase* GetReferenceImage( )
35 { return( this->m_ReferenceImage ); }
36 const TImageBase* GetReferenceImage( ) const
37 { return( this->m_ReferenceImage ); }
38 void SetReferenceImage( const TImageBase* image )
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( ) );
48 ImageIndexesContainer( ) { }
49 virtual ~ImageIndexesContainer( ) { }
52 // Purposely not implemented
53 ImageIndexesContainer( const Self& other );
54 Self& operator=( const Self& other );
57 typename TImageBase::Pointer m_ReferenceImage;
64 #endif // __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__