00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkPadImageFilter_h
00018 #define __itkPadImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021
00022 namespace itk
00023 {
00024
00040 template <class TInputImage, class TOutputImage>
00041 class ITK_EXPORT PadImageFilter:
00042 public ImageToImageFilter<TInputImage,TOutputImage>
00043 {
00044 public:
00046 typedef PadImageFilter Self;
00047 typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
00048 typedef SmartPointer<Self> Pointer;
00049 typedef SmartPointer<const Self> ConstPointer;
00050
00052 itkNewMacro(Self);
00053
00055 typedef typename TOutputImage::RegionType OutputImageRegionType;
00056 typedef typename TInputImage::RegionType InputImageRegionType;
00057
00059 typedef typename TOutputImage::PixelType OutputImagePixelType;
00060 typedef typename TInputImage::PixelType InputImagePixelType;
00061
00063 typedef typename TOutputImage::IndexType OutputImageIndexType;
00064 typedef typename TInputImage::IndexType InputImageIndexType;
00065 typedef typename TOutputImage::SizeType OutputImageSizeType;
00066 typedef typename TInputImage::SizeType InputImageSizeType;
00067
00069 itkTypeMacro(PadImageFilter, ImageToImageFilter);
00070
00072 itkStaticConstMacro(ImageDimension, unsigned int,
00073 TInputImage::ImageDimension );
00074
00077 itkSetVectorMacro(PadLowerBound, const unsigned long, ImageDimension);
00078 itkSetVectorMacro(PadUpperBound, const unsigned long, ImageDimension);
00079 itkGetVectorMacro(PadLowerBound, const unsigned long, ImageDimension);
00080 itkGetVectorMacro(PadUpperBound, const unsigned long, ImageDimension);
00082
00089 virtual void GenerateOutputInformation();
00090
00096 virtual void GenerateInputRequestedRegion();
00097
00098 protected:
00099 PadImageFilter();
00100 ~PadImageFilter() {};
00101 void PrintSelf(std::ostream& os, Indent indent) const;
00102
00103 private:
00104 PadImageFilter(const Self&);
00105 void operator=(const Self&);
00106
00107 unsigned long m_PadLowerBound[ImageDimension];
00108 unsigned long m_PadUpperBound[ImageDimension];
00109 };
00110
00111
00112 }
00113
00114 #ifndef ITK_MANUAL_INSTANTIATION
00115 #include "itkPadImageFilter.txx"
00116 #endif
00117
00118 #endif
00119