00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __itkImageRandomNonRepeatingIteratorWithIndex_h
00020 #define __itkImageRandomNonRepeatingIteratorWithIndex_h
00021
00022 #include "itkImageRandomNonRepeatingConstIteratorWithIndex.h"
00023 #include "itkImageIteratorWithIndex.h"
00024
00025 namespace itk
00026 {
00027
00074 template<typename TImage>
00075 class ITK_EXPORT ImageRandomNonRepeatingIteratorWithIndex : public ImageRandomNonRepeatingConstIteratorWithIndex<TImage>
00076 {
00077 public:
00079 typedef ImageRandomNonRepeatingIteratorWithIndex Self;
00080 typedef ImageRandomNonRepeatingConstIteratorWithIndex<TImage> Superclass;
00081
00083 typedef typename Superclass::IndexType IndexType;
00084 typedef typename Superclass::IndexValueType IndexValueType;
00085 typedef typename Superclass::SizeType SizeType;
00086 typedef typename Superclass::SizeValueType SizeValueType;
00087 typedef typename Superclass::OffsetType OffsetType;
00088 typedef typename Superclass::OffsetValueType OffsetValueType;
00089 typedef typename Superclass::RegionType RegionType;
00090 typedef typename Superclass::ImageType ImageType;
00091 typedef typename Superclass::PixelContainer PixelContainer;
00092 typedef typename Superclass::PixelContainerPointer PixelContainerPointer;
00093 typedef typename Superclass::InternalPixelType InternalPixelType;
00094 typedef typename Superclass::PixelType PixelType;
00095 typedef typename Superclass::AccessorType AccessorType;
00096
00097
00099 ImageRandomNonRepeatingIteratorWithIndex();
00100
00103 ImageRandomNonRepeatingIteratorWithIndex(ImageType *ptr, const RegionType& region);
00104
00111 ImageRandomNonRepeatingIteratorWithIndex( const ImageIteratorWithIndex<TImage> &it);
00112
00114 void Set( const PixelType & value) const
00115 { this->m_PixelAccessorFunctor.Set(*(const_cast<InternalPixelType *>(this->m_Position)),value); }
00116
00120 PixelType & Value(void)
00121 { return *(const_cast<InternalPixelType *>(this->m_Position)); }
00122
00123 protected:
00126 ImageRandomNonRepeatingIteratorWithIndex( const ImageRandomNonRepeatingConstIteratorWithIndex<TImage> &it);
00127 Self & operator=(const ImageRandomNonRepeatingConstIteratorWithIndex<TImage> & it);
00128
00129
00130 };
00131
00132 }
00133
00134 #ifndef ITK_MANUAL_INSTANTIATION
00135 #include "itkImageRandomNonRepeatingIteratorWithIndex.txx"
00136 #endif
00137
00138 #endif