Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRepeatHLineIteratorPixelBase< T > Class Template Reference

#include <kis_repeat_iterators_pixel.h>

+ Inheritance diagram for KisRepeatHLineIteratorPixelBase< T >:

Public Member Functions

 KisRepeatHLineIteratorPixelBase (KisDataManager *dm, qint32 x, qint32 y, qint32 w, qint32 offsetx, qint32 offsety, const QRect &_rc, KisIteratorCompleteListener *completeListener)
 
bool nextPixel ()
 
void nextRow ()
 
 ~KisRepeatHLineIteratorPixelBase () override
 
- Public Member Functions inherited from KisRepeatLineIteratorPixelBase< T >
 KisRepeatLineIteratorPixelBase (KisDataManager *dm, qint32 x, qint32 y, qint32 offsetx, qint32 offsety, const QRect &_rc, KisIteratorCompleteListener *completeListener)
 
const quint8 * oldRawData () const
 
qint32 x () const
 
qint32 y () const
 
virtual ~KisRepeatLineIteratorPixelBase ()
 
- Public Member Functions inherited from KisShared
bool deref ()
 
bool ref ()
 
int refCount ()
 
QAtomicInt * sharedWeakReference ()
 

Private Member Functions

void createIterator ()
 

Private Attributes

qint32 m_startIteratorX
 
qint32 m_startX
 
qint32 m_width
 

Additional Inherited Members

- Protected Member Functions inherited from KisShared
 KisShared ()
 
 ~KisShared ()
 

Detailed Description

template<class T>
class KisRepeatHLineIteratorPixelBase< T >

This iterator is an iterator that will "artificially" extend the paint device with the value of the border when trying to access values outside the range of data.

Definition at line 68 of file kis_repeat_iterators_pixel.h.

Constructor & Destructor Documentation

◆ KisRepeatHLineIteratorPixelBase()

template<class T >
KisRepeatHLineIteratorPixelBase< T >::KisRepeatHLineIteratorPixelBase ( KisDataManager * dm,
qint32 x,
qint32 y,
qint32 w,
qint32 offsetx,
qint32 offsety,
const QRect & _rc,
KisIteratorCompleteListener * completeListener )
inline
Parameters
dmdata manager
xx of top left corner
yy of top left corner
wwidth
offsetxx offset
offsetyy offset
_rcindicates the rectangle that truly contains data
completeListenercompletion listener

Definition at line 154 of file kis_repeat_iterators_pixel.h.

References KisRepeatHLineIteratorPixelBase< T >::createIterator(), and KisRepeatHLineIteratorPixelBase< T >::m_startIteratorX.

◆ ~KisRepeatHLineIteratorPixelBase()

template<class T >
KisRepeatHLineIteratorPixelBase< T >::~KisRepeatHLineIteratorPixelBase ( )
inlineoverride

Definition at line 167 of file kis_repeat_iterators_pixel.h.

168{
169}

Member Function Documentation

◆ createIterator()

template<class T >
void KisRepeatHLineIteratorPixelBase< T >::createIterator ( )
private

Definition at line 196 of file kis_repeat_iterators_pixel.h.

197{
198 // Cleanup
199 delete this->m_iterator;
200 qint32 startY = this->m_realY;
201 if (startY < this->m_dataRect.y()) {
202 startY = this->m_dataRect.top();
203 }
204 if (startY > (this->m_dataRect.y() + this->m_dataRect.height() - 1)) {
205 startY = (this->m_dataRect.y() + this->m_dataRect.height() - 1);
206 }
207
208 int width = this->m_dataRect.x() + this->m_dataRect.width() - this->m_startIteratorX;
209 this->m_iterator = new T(this->m_dm, this->m_startIteratorX, startY, width, this->m_offsetX, this->m_offsetY, false, this->m_completeListener);
210 this->m_realX = this->m_startX;
211}
KisIteratorCompleteListener * m_completeListener

◆ nextPixel()

template<class T >
bool KisRepeatHLineIteratorPixelBase< T >::nextPixel ( )
inline

Definition at line 172 of file kis_repeat_iterators_pixel.h.

173{
174 Q_ASSERT(this->m_iterator);
175 if (this->m_realX >= this->m_dataRect.x() && this->m_realX < this->m_dataRect.x() + this->m_dataRect.width() - 1) {
176 this->m_iterator->nextPixel();
177 }
178 ++this->m_realX;
179
180 return (this->m_realX < m_startX + m_width);
181}

◆ nextRow()

template<class T >
void KisRepeatHLineIteratorPixelBase< T >::nextRow ( )
inline

Reach next row.

Definition at line 184 of file kis_repeat_iterators_pixel.h.

185{
186 if (this->m_realY >= this->m_dataRect.y() && this->m_realY < this->m_dataRect.y() + this->m_dataRect.height() - 1) {
187 this->m_iterator->nextRow();
188 } else {
190 }
191 this->m_realX = this->m_startX;
192 ++this->m_realY;
193}

Member Data Documentation

◆ m_startIteratorX

template<class T >
qint32 KisRepeatHLineIteratorPixelBase< T >::m_startIteratorX
private

Definition at line 92 of file kis_repeat_iterators_pixel.h.

◆ m_startX

template<class T >
qint32 KisRepeatHLineIteratorPixelBase< T >::m_startX
private

Definition at line 91 of file kis_repeat_iterators_pixel.h.

◆ m_width

template<class T >
qint32 KisRepeatHLineIteratorPixelBase< T >::m_width
private

Definition at line 93 of file kis_repeat_iterators_pixel.h.


The documentation for this class was generated from the following file: