17 #ifndef __itkSliceIterator_h
18 #define __itkSliceIterator_h
44 template<
class TPixel,
class TContainer>
50 : m_ContainerPointer(n), m_Pos(0), m_Slice(s) {}
64 ans.
m_Pos =
static_cast<unsigned long>(m_Slice.size());
85 TPixel& operator[](
unsigned long n)
86 {
return this->Loc(m_Pos=n); }
91 {
return Loc(m_Pos); }
97 return orig.
m_Pos == this->m_Pos
98 && orig.
m_Slice.stride() == this->m_Slice.stride()
99 && orig.
m_Slice.start() == this->m_Slice.start();
113 return this->m_Pos < orig.
m_Pos
114 && this->m_Slice.stride() == orig.
m_Slice.stride()
115 && this->m_Slice.start() == orig.
m_Slice.start();
120 TPixel& Loc(
unsigned long n)
const
122 const unsigned long start =
static_cast<unsigned long>( m_Slice.start() );
123 const unsigned long stride =
static_cast<unsigned long>( m_Slice.stride() );
124 return (*m_ContainerPointer)[ start + n * stride ];