19#ifndef KIS_ITERATOR_H_
20#define KIS_ITERATOR_H_
23#include <ksharedptr.h>
25class KisTiledRectIterator;
26typedef TDESharedPtr<KisTiledRectIterator> KisTiledRectIteratorSP;
28class KisTiledVLineIterator;
29typedef TDESharedPtr<KisTiledVLineIterator> KisTiledVLineIteratorSP;
31class KisTiledHLineIterator;
32typedef TDESharedPtr<KisTiledHLineIterator> KisTiledHLineIteratorSP;
45 KisRectIterator (
KisDataManager *dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h,
bool writable);
48 virtual ~KisRectIterator();
49 KisRectIterator(
const KisRectIterator& rhs);
50 KisRectIterator& operator=(
const KisRectIterator& rhs);
81 KisTiledRectIteratorSP m_iter;
89 KisHLineIterator (
KisDataManager *dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w,
bool writable);
93 virtual ~KisHLineIterator();
94 KisHLineIterator(
const KisHLineIterator& rhs);
95 KisHLineIterator& operator=(
const KisHLineIterator& rhs);
99 TQ_UINT8 *rawData()
const;
102 const TQ_UINT8 *oldRawData()
const;
105 KisHLineIterator & operator++();
109 TQ_INT32 nConseqHPixels()
const;
112 KisHLineIterator & operator+=(
int n);
115 KisHLineIterator & operator--();
132 KisTiledHLineIteratorSP m_iter;
135class KisVLineIterator
139 KisVLineIterator ( KisDataManager *dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 h,
bool writable);
142 KisVLineIterator(
const KisVLineIterator& rhs);
143 KisVLineIterator& operator=(
const KisVLineIterator& rhs);
147 TQ_UINT8 *rawData()
const;
150 const TQ_UINT8 * oldRawData()
const;
153 KisVLineIterator & operator++();
169 KisTiledVLineIteratorSP m_iter;
KisDataManager defines the interface that modules responsible for storing and retrieving data must in...
TQ_UINT8 * rawData() const
returns a pointer to the pixel data. Do NOT interpret the data - leave that to a colorstrategy
KisRectIterator & operator++()
Advances one pixel going to the beginning of the next line when it reaches the end of a line.
const TQ_UINT8 * oldRawData() const
Returns a pointer to the pixel data as it was at the moment of the last memento creation.
bool isDone() const
returns true when iterators has reached the end
KisRectIterator & operator+=(int n)
Advances a number of pixels until it reaches the end of the rect.
TQ_INT32 nConseqPixels() const
Returns the number of consequtive pixels that we point at This is useful for optimizing.