go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkVectorContainerSource.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __VectorContainerSource_h
00016 #define __VectorContainerSource_h
00017 
00018 #include "itkProcessObject.h"
00019 #include "itkDataObjectDecorator.h"
00020 
00021 
00022 namespace itk
00023 {
00024 
00030   template < class TOutputVectorContainer >
00031   class VectorContainerSource :
00032     public ProcessObject
00033   {
00034   public:
00035 
00037     typedef VectorContainerSource         Self;
00038     typedef ProcessObject                 Superclass;
00039     typedef SmartPointer<Self>            Pointer;
00040     typedef SmartPointer<const Self>      ConstPointer;
00041 
00043     itkNewMacro( Self );
00044 
00046     itkTypeMacro( VectorContainerSource, ProcessObject );
00047 
00049     typedef typename Superclass::DataObjectPointer        DataObjectPointer;
00050     typedef TOutputVectorContainer                        OutputVectorContainerType;
00051     typedef typename OutputVectorContainerType::Pointer   OutputVectorContainerPointer;
00052 
00054     OutputVectorContainerType * GetOutput( void );
00055 
00057     OutputVectorContainerType * GetOutput( unsigned int idx );
00058 
00060     virtual void GraftOutput( DataObject *output );
00061 
00063     virtual void GraftNthOutput( unsigned int idx, DataObject *output );
00064 
00066     virtual DataObjectPointer MakeOutput( unsigned int idx );
00067 
00068   protected:
00069 
00071     VectorContainerSource();
00073     virtual ~VectorContainerSource() {};
00074 
00076     void PrintSelf( std::ostream& os, Indent indent ) const;
00077 
00079     void GenerateInputRequestedRegion( void );
00080 
00081   private:
00082 
00084     VectorContainerSource( const Self& ); // purposely not implemented
00086     void operator=( const Self& );        // purposely not implemented
00087 
00089     int m_GenerateDataRegion;
00090     int m_GenerateDataNumberOfRegions;
00091 
00092   }; // end class VectorContainerSource
00093 
00094 
00095 } // end namespace itk
00096 
00097 #ifndef ITK_MANUAL_INSTANTIATION
00098 #include "itkVectorContainerSource.txx"
00099 #endif
00100 
00101 #endif // end #ifndef __VectorContainerSource_h
00102 


Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo