00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkFlipImageFilter_h
00018 #define __itkFlipImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021 #include "itkFixedArray.h"
00022
00023 namespace itk
00024 {
00025
00047 template <class TImage>
00048 class ITK_EXPORT FlipImageFilter :
00049 public ImageToImageFilter<TImage,TImage>
00050 {
00051
00052 public:
00054 typedef FlipImageFilter Self;
00055 typedef ImageToImageFilter<TImage,TImage> Superclass;
00056 typedef SmartPointer<Self> Pointer;
00057 typedef SmartPointer<const Self> ConstPointer;
00058
00060 itkNewMacro(Self);
00061
00063 itkTypeMacro(FlipImageFilter, ImageToImageFilter);
00064
00066 itkStaticConstMacro(ImageDimension, unsigned int, TImage::ImageDimension);
00067
00069 typedef typename Superclass::InputImagePointer InputImagePointer;
00070 typedef typename Superclass::InputImageConstPointer InputImageConstPointer;
00071 typedef typename Superclass::OutputImagePointer OutputImagePointer;
00072 typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
00073
00075 typedef typename TImage::IndexType IndexType;
00076 typedef typename IndexType::IndexValueType IndexValueType;
00077
00079 typedef FixedArray<bool,itkGetStaticConstMacro(ImageDimension)> FlipAxesArrayType;
00080
00083 itkSetMacro( FlipAxes, FlipAxesArrayType );
00084 itkGetMacro( FlipAxes, FlipAxesArrayType );
00086
00091 itkBooleanMacro(FlipAboutOrigin);
00092 itkGetMacro(FlipAboutOrigin, bool);
00093 itkSetMacro(FlipAboutOrigin, bool);
00095
00102 virtual void GenerateOutputInformation();
00103
00109 virtual void GenerateInputRequestedRegion();
00110
00111 protected:
00112 FlipImageFilter();
00113 ~FlipImageFilter() {};
00114 void PrintSelf(std::ostream& os, Indent indent) const;
00115
00126 void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
00127 int threadId );
00128
00129 private:
00130 FlipImageFilter(const Self&);
00131 void operator=(const Self&);
00132
00133 FlipAxesArrayType m_FlipAxes;
00134 bool m_FlipAboutOrigin;
00135 };
00136
00137 }
00138
00139 #ifndef ITK_MANUAL_INSTANTIATION
00140 #include "itkFlipImageFilter.txx"
00141 #endif
00142
00143 #endif
00144