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

#include <kis_repeat_iterators_pixel.h>

+ Inheritance diagram for KisRepeatVLineIteratorPixelBase< T >:

Public Member Functions

 KisRepeatVLineIteratorPixelBase (KisDataManager *dm, qint32 x, qint32 y, qint32 h, qint32 offsetx, qint32 offsety, const QRect &_rc, KisIteratorCompleteListener *completeListener)
 
void nextColumn ()
 
bool nextPixel ()
 
KisRepeatVLineIteratorPixelBase< T > & operator++ ()
 
 ~KisRepeatVLineIteratorPixelBase () 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_height
 
qint32 m_startIteratorY
 
qint32 m_startY
 

Additional Inherited Members

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

Detailed Description

template<class T>
class KisRepeatVLineIteratorPixelBase< 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 101 of file kis_repeat_iterators_pixel.h.

Constructor & Destructor Documentation

◆ KisRepeatVLineIteratorPixelBase()

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

Definition at line 216 of file kis_repeat_iterators_pixel.h.

References KisRepeatVLineIteratorPixelBase< T >::createIterator(), and KisRepeatVLineIteratorPixelBase< T >::m_startIteratorY.

◆ ~KisRepeatVLineIteratorPixelBase()

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

Definition at line 229 of file kis_repeat_iterators_pixel.h.

230{
231}

Member Function Documentation

◆ createIterator()

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

Definition at line 258 of file kis_repeat_iterators_pixel.h.

259{
260 // Cleanup
261 delete this->m_iterator;
262 qint32 startX = this->m_realX;
263 if (startX < this->m_dataRect.x()) {
264 startX = this->m_dataRect.x();
265 }
266 if (startX > (this->m_dataRect.x() + this->m_dataRect.width() - 1)) {
267 startX = (this->m_dataRect.x() + this->m_dataRect.width() - 1);
268 }
269
270 int height = this->m_dataRect.y() + this->m_dataRect.height() - this->m_startIteratorY;
271 this->m_iterator = new T(this->m_dm, startX, this->m_startIteratorY, height, this->m_offsetX, this->m_offsetY, false, this->m_completeListener);
272 this->m_realY = this->m_startY;
273}
KisIteratorCompleteListener * m_completeListener

◆ nextColumn()

template<class T >
void KisRepeatVLineIteratorPixelBase< T >::nextColumn ( )
inline

Reach next row.

Definition at line 246 of file kis_repeat_iterators_pixel.h.

247{
248 if (this->m_realX >= this->m_dataRect.x() && this->m_realX < this->m_dataRect.x() + this->m_dataRect.width() - 1) {
249 this->m_iterator->nextColumn();
250 } else {
252 }
253 this->m_realY = this->m_startY;
254 ++this->m_realX;
255}

◆ nextPixel()

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

Definition at line 234 of file kis_repeat_iterators_pixel.h.

235{
236 Q_ASSERT(this->m_iterator);
237 if (this->m_realY >= this->m_dataRect.y() && this->m_realY < this->m_dataRect.y() + this->m_dataRect.height() - 1) {
238 this->m_iterator->nextPixel();
239 }
240 ++this->m_realY;
241 return (this->m_realY < m_startY + m_height);
242
243}

◆ operator++()

template<class T >
KisRepeatVLineIteratorPixelBase< T > & KisRepeatVLineIteratorPixelBase< T >::operator++ ( )
inline

Member Data Documentation

◆ m_height

template<class T >
qint32 KisRepeatVLineIteratorPixelBase< T >::m_height
private

Definition at line 127 of file kis_repeat_iterators_pixel.h.

◆ m_startIteratorY

template<class T >
qint32 KisRepeatVLineIteratorPixelBase< T >::m_startIteratorY
private

Definition at line 126 of file kis_repeat_iterators_pixel.h.

◆ m_startY

template<class T >
qint32 KisRepeatVLineIteratorPixelBase< T >::m_startY
private

Definition at line 125 of file kis_repeat_iterators_pixel.h.


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