00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __itkInPlaceImageFilter_h
00021 #define __itkInPlaceImageFilter_h
00022
00023 #include "itkImageToImageFilter.h"
00024
00025 namespace itk
00026 {
00027
00054 template <class TInputImage>
00055 class ITK_EXPORT InPlaceImageFilter : public ImageToImageFilter<TInputImage, TInputImage>
00056 {
00057 public:
00059 typedef InPlaceImageFilter Self;
00060 typedef ImageToImageFilter<TInputImage, TInputImage> Superclass;
00061 typedef SmartPointer<Self> Pointer;
00062 typedef SmartPointer<const Self> ConstPointer;
00063
00064
00066 itkTypeMacro(InPlaceImageFilter,ImageToImageFilter);
00067
00069 typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
00070
00072 typedef TInputImage InputImageType;
00073 typedef typename InputImageType::Pointer InputImagePointer;
00074 typedef typename InputImageType::ConstPointer InputImageConstPointer;
00075 typedef typename InputImageType::RegionType InputImageRegionType;
00076 typedef typename InputImageType::PixelType InputImagePixelType;
00077
00079 itkStaticConstMacro(InputImageDimension, unsigned int,
00080 TInputImage::ImageDimension);
00081 itkStaticConstMacro(OutputImageDimension, unsigned int,
00082 TInputImage::ImageDimension);
00083
00084
00085 protected:
00086 InPlaceImageFilter();
00087 ~InPlaceImageFilter();
00088
00089 virtual void PrintSelf(std::ostream& os, Indent indent) const;
00090
00103 virtual void AllocateOutputs();
00104
00114 virtual void ReleaseInputs();
00115
00116 private:
00117 InPlaceImageFilter(const Self&);
00118 void operator=(const Self&);
00119 };
00120
00121 }
00122
00123 #ifndef ITK_MANUAL_INSTANTIATION
00124 #include "itkInPlaceImageFilter.txx"
00125 #endif
00126
00127 #endif