24#include "kis_iterator.h"
25#include "kis_datamanager.h"
26#include "kis_tilediterator.h"
28KisRectIterator::KisRectIterator (
KisDataManager *dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h,
bool writable)
30 m_iter =
new KisTiledRectIterator(dm, x, y, w, h, writable);
43KisRectIterator::~KisRectIterator()
59TQ_INT32 KisRectIterator::x()
const {
return m_iter->x(); }
60TQ_INT32 KisRectIterator::y()
const {
return m_iter->y(); }
64KisHLineIterator::KisHLineIterator (
KisDataManager *dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 w,
bool writable)
66 m_iter =
new KisTiledHLineIterator(dm, x, y, w, writable);
69KisHLineIterator::KisHLineIterator(
const KisHLineIterator& rhs)
74KisHLineIterator& KisHLineIterator::operator=(
const KisHLineIterator& rhs)
81KisHLineIterator::~KisHLineIterator()
85TQ_UINT8 *KisHLineIterator::rawData()
const
87 return m_iter->rawData();
90const TQ_UINT8 *KisHLineIterator::oldRawData()
const {
return m_iter->oldRawData();}
92KisHLineIterator & KisHLineIterator::operator++() { m_iter->operator++();
return *
this; }
94TQ_INT32 KisHLineIterator::nConseqHPixels()
const {
return m_iter->nConseqHPixels(); }
96KisHLineIterator & KisHLineIterator::operator+=(
int n) { m_iter->operator+=(n);
return *
this; }
98KisHLineIterator & KisHLineIterator::operator--() { m_iter->operator--();
return *
this; }
100bool KisHLineIterator::isDone()
const {
return m_iter->isDone(); }
102TQ_INT32 KisHLineIterator::x()
const {
return m_iter->x(); }
104TQ_INT32 KisHLineIterator::y()
const {
return m_iter->y(); }
106void KisHLineIterator::nextRow() { m_iter->nextRow(); }
110KisVLineIterator::KisVLineIterator (
KisDataManager *dm, TQ_INT32 x, TQ_INT32 y, TQ_INT32 h,
bool writable)
112 m_iter =
new KisTiledVLineIterator(dm, x, y, h, writable);
115KisVLineIterator::KisVLineIterator(
const KisVLineIterator& rhs)
120KisVLineIterator& KisVLineIterator::operator=(
const KisVLineIterator& rhs)
126KisVLineIterator::~KisVLineIterator()
130TQ_UINT8 *KisVLineIterator::rawData()
const {
return m_iter->rawData();}
132const TQ_UINT8 * KisVLineIterator::oldRawData()
const {
return m_iter->oldRawData();}
134KisVLineIterator & KisVLineIterator::operator++() { m_iter->operator++();
return *
this; }
136bool KisVLineIterator::isDone()
const {
return m_iter->isDone(); }
138TQ_INT32 KisVLineIterator::x()
const {
return m_iter->x(); }
140TQ_INT32 KisVLineIterator::y()
const {
return m_iter->y(); }
142void KisVLineIterator::nextCol() {
return m_iter->nextCol(); }
KisDataManager defines the interface that modules responsible for storing and retrieving data must in...
The KisRectIterator iterators over a rectangular area in the most efficient order.
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.