00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageRegionReverseIterator_h
00018 #define __itkImageRegionReverseIterator_h
00019
00020 #include "itkImageRegionReverseConstIterator.h"
00021 #include "itkImageConstIterator.h"
00022
00023 namespace itk
00024 {
00025
00066 template<typename TImage>
00067 class ITK_EXPORT ImageRegionReverseIterator : public ImageRegionReverseConstIterator<TImage>
00068 {
00069 public:
00071 typedef ImageRegionReverseIterator Self;
00072 typedef ImageRegionReverseConstIterator<TImage> Superclass;
00073
00075 typedef typename Superclass::IndexType IndexType;
00076 typedef typename Superclass::IndexValueType IndexValueType;
00077 typedef typename Superclass::SizeType SizeType;
00078 typedef typename Superclass::SizeValueType SizeValueType;
00079 typedef typename Superclass::OffsetType OffsetType;
00080 typedef typename Superclass::OffsetValueType OffsetValueType;
00081 typedef typename Superclass::RegionType RegionType;
00082 typedef typename Superclass::ImageType ImageType;
00083 typedef typename Superclass::PixelContainer PixelContainer;
00084 typedef typename Superclass::PixelContainerPointer PixelContainerPointer;
00085 typedef typename Superclass::InternalPixelType InternalPixelType;
00086 typedef typename Superclass::PixelType PixelType;
00087 typedef typename Superclass::AccessorType AccessorType;
00088
00089
00091 ImageRegionReverseIterator();
00092
00095 ImageRegionReverseIterator(ImageType *ptr, const RegionType& region);
00096
00103 ImageRegionReverseIterator( const ImageConstIterator<TImage> &it);
00104
00106 void Set( const PixelType & value) const
00107 { this->m_PixelAccessor.Set(*const_cast<InternalPixelType *>((this->m_Buffer+this->m_Offset)),value); }
00108
00112 PixelType & Value(void)
00113 { return *const_cast<InternalPixelType *>((this->m_Buffer+this->m_Offset)); }
00114
00118 Self Begin(void) const;
00119
00123 Self End(void) const;
00124
00125
00126 protected:
00129 ImageRegionReverseIterator( const ImageRegionReverseConstIterator<TImage> &it);
00130 Self & operator=(const ImageRegionReverseConstIterator<TImage> & it);
00132
00133
00134 };
00135
00136 }
00137
00138
00139 #define ITK_TEMPLATE_ImageRegionReverseIterator(_, EXPORT, x, y) namespace itk { \
00140 _(1(class EXPORT ImageRegionReverseIterator< ITK_TEMPLATE_1 x >)) \
00141 namespace Templates { typedef ImageRegionReverseIterator< ITK_TEMPLATE_1 x > ImageRegionReverseIterator##y; } \
00142 }
00143
00144 #if ITK_TEMPLATE_EXPLICIT
00145 # include "Templates/itkImageRegionReverseIterator+-.h"
00146 #endif
00147
00148 #if ITK_TEMPLATE_TXX
00149 # include "itkImageRegionReverseIterator.txx"
00150 #endif
00151
00152 #endif
00153