00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageDuplicator_h
00018 #define __itkImageDuplicator_h
00019
00020 #include "itkObject.h"
00021 #include "itkImage.h"
00022
00023 namespace itk
00024 {
00025
00028 template <class TInputImage>
00029 class ITK_EXPORT ImageDuplicator : public Object
00030 {
00031 public:
00033 typedef ImageDuplicator Self;
00034 typedef Object Superclass;
00035 typedef SmartPointer<Self> Pointer;
00036 typedef SmartPointer<const Self> ConstPointer;
00037
00039 itkNewMacro(Self);
00040
00042 itkTypeMacro(ImageDuplicator, Object);
00043
00045 typedef TInputImage ImageType;
00046 typedef typename TInputImage::Pointer ImagePointer;
00047 typedef typename TInputImage::ConstPointer ImageConstPointer;
00048 typedef typename TInputImage::PixelType PixelType;
00049 typedef typename TInputImage::IndexType IndexType;
00050
00051 itkStaticConstMacro(ImageDimension, unsigned int,
00052 ImageType::ImageDimension);
00053
00055 itkSetConstObjectMacro(InputImage,ImageType);
00056
00058 itkGetObjectMacro(Output,ImageType);
00059
00061 void Update(void);
00062
00063 protected:
00064 ImageDuplicator();
00065 virtual ~ImageDuplicator() {};
00066 void PrintSelf(std::ostream& os, Indent indent) const;
00067
00068 private:
00069 ImageDuplicator(const Self&);
00070 void operator=(const Self&);
00071
00072 ImageConstPointer m_InputImage;
00073 ImagePointer m_Output;
00074 unsigned long m_InternalImageTime;
00075
00076 };
00077
00078 }
00079
00080
00081 #ifndef ITK_MANUAL_INSTANTIATION
00082 #include "itkImageDuplicator.txx"
00083 #endif
00084
00085 #endif