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