00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageRegionIteratorWithIndex_h
00018 #define __itkImageRegionIteratorWithIndex_h
00019
00020 #include "itkImageRegionConstIteratorWithIndex.h"
00021 #include "itkImageIteratorWithIndex.h"
00022
00023 namespace itk
00024 {
00025
00064 template<typename TImage>
00065 class ITK_EXPORT ImageRegionIteratorWithIndex : public ImageRegionConstIteratorWithIndex<TImage>
00066 {
00067 public:
00069 typedef ImageRegionIteratorWithIndex Self;
00070 typedef ImageRegionConstIteratorWithIndex<TImage> Superclass;
00071
00073 typedef typename Superclass::IndexType IndexType;
00074 typedef typename Superclass::IndexValueType IndexValueType;
00075 typedef typename Superclass::SizeType SizeType;
00076 typedef typename Superclass::SizeValueType SizeValueType;
00077 typedef typename Superclass::OffsetType OffsetType;
00078 typedef typename Superclass::OffsetValueType OffsetValueType;
00079 typedef typename Superclass::RegionType RegionType;
00080 typedef typename Superclass::ImageType ImageType;
00081 typedef typename Superclass::PixelContainer PixelContainer;
00082 typedef typename Superclass::PixelContainerPointer PixelContainerPointer;
00083 typedef typename Superclass::InternalPixelType InternalPixelType;
00084 typedef typename Superclass::PixelType PixelType;
00085 typedef typename Superclass::AccessorType AccessorType;
00086
00087
00089 ImageRegionIteratorWithIndex();
00090
00093 ImageRegionIteratorWithIndex(TImage *ptr, const RegionType& region);
00094
00101 ImageRegionIteratorWithIndex( const ImageIteratorWithIndex<TImage> &it);
00102
00104 void Set( const PixelType & value) const
00105 { this->m_PixelAccessorFunctor.Set(*(const_cast<InternalPixelType *>(this->m_Position)),value); }
00106
00110 PixelType & Value(void)
00111 { return *(const_cast<InternalPixelType *>(this->m_Position)); }
00112
00113 protected:
00116 ImageRegionIteratorWithIndex( const ImageRegionConstIteratorWithIndex<TImage> &it);
00117 Self &operator=(const ImageRegionConstIteratorWithIndex<TImage> & it);
00119
00120 };
00121
00122 }
00123
00124
00125 #define ITK_TEMPLATE_ImageRegionIteratorWithIndex(_, EXPORT, x, y) namespace itk { \
00126 _(1(class EXPORT ImageRegionIteratorWithIndex< ITK_TEMPLATE_1 x >)) \
00127 namespace Templates { typedef ImageRegionIteratorWithIndex< ITK_TEMPLATE_1 x > ImageRegionIteratorWithIndex##y; } \
00128 }
00129
00130
00131 #if ITK_TEMPLATE_EXPLICIT
00132 # include "Templates/itkImageRegionIteratorWithIndex+-.h"
00133 #endif
00134
00135 #if ITK_TEMPLATE_TXX
00136 # include "itkImageRegionIteratorWithIndex.txx"
00137 #endif
00138
00139 #endif
00140