1 #ifndef TIL_IMAGERLELINEARITERATOR_H 2 #define TIL_IMAGERLELINEARITERATOR_H 18 template <
typename T >
class ImageRLE;
24 template <
typename T >
51 friend class VirtualVoxel;
62 if (value != m_it->getValue())
64 m_it->setUnsafeValue(value);
68 template <
typename X >
71 m_it->setUnsafeValue(m_it->getValue() * value);
74 operator T () {
return m_it->getValue(); }
86 const T &
getValue()
const {
return m_iRepValue->getValue(); }
90 m_im.setUnsafeValue(value, *m_iLine, m_iRepValue, m_count);
95 VirtualVoxel &
operator*() {
return m_virtualVoxel; }
119 if (m_iRepValue == m_iLine->end())
125 if (m_iLine == m_im.m_data.end())
130 m_iRepValue = m_iLine->begin();
132 m_count = m_iRepValue->getRepeat();
141 typedef typename ImageRLE<T>::Line Line;
142 typedef typename ImageRLE<T>::Data Data;
159 typename Line::iterator m_iRepValue;
160 typename Data::iterator m_iLine;
172 VirtualVoxel m_virtualVoxel;
215 template <
typename T >
228 m_iLine = m_im.m_data.begin();
229 m_iRepValue = m_iLine->begin();
230 m_count = m_iRepValue->getRepeat();
234 m_virtualVoxel.set(
this);
Image class using run-length encoded data.
Belongs to package Box Do not include directly, include til/Box.h instead.
void operator*=(const X &value)
General macros, definitions and functions.
Defines empty classes that serves as labels.
void setUnsafeValue(T value)
VirtualVoxel & operator*()
void operator=(const T &value)
const T & getValue() const