Krita Source Code Documentation
Loading...
Searching...
No Matches
WrappedHLineIteratorStrategy Class Reference

#include <kis_wrapped_hline_iterator.h>

Public Types

typedef KisHLineIteratorSP IteratorTypeSP
 

Public Member Functions

QPoint columnRowToXY (const QPoint &pt) const
 
void completeInitialization (QVector< IteratorTypeSP > *iterators, KisWrappedRect *splitRect)
 
IteratorTypeSP createIterator (KisDataManager *dataManager, const QRect &rc, qint32 offsetX, qint32 offsetY, bool writable, KisIteratorCompleteListener *listener)
 
void iteratorsToNextRow ()
 
IteratorTypeSP leftColumnIterator () const
 
QSize originalRectToColumnsRows (const QRect &rect)
 
IteratorTypeSP rightColumnIterator () const
 
bool trySwitchColumnForced ()
 
bool trySwitchIteratorStripe ()
 
 WrappedHLineIteratorStrategy ()
 

Private Attributes

int m_iteratorRowStart
 
QVector< IteratorTypeSP > * m_iterators
 
int m_lastRowCoord
 
KisWrappedRectm_splitRect
 

Detailed Description

Definition at line 14 of file kis_wrapped_hline_iterator.h.

Member Typedef Documentation

◆ IteratorTypeSP

Constructor & Destructor Documentation

◆ WrappedHLineIteratorStrategy()

WrappedHLineIteratorStrategy::WrappedHLineIteratorStrategy ( )
inline

Member Function Documentation

◆ columnRowToXY()

QPoint WrappedHLineIteratorStrategy::columnRowToXY ( const QPoint & pt) const
inline

Definition at line 30 of file kis_wrapped_hline_iterator.h.

30 {
31 return pt;
32 }

◆ completeInitialization()

void WrappedHLineIteratorStrategy::completeInitialization ( QVector< IteratorTypeSP > * iterators,
KisWrappedRect * splitRect )
inline

Definition at line 48 of file kis_wrapped_hline_iterator.h.

49 {
50 m_splitRect = splitRect;
51 m_iterators = iterators;
52
54 }
QVector< IteratorTypeSP > * m_iterators
QRect topLeft() const

References m_iterators, m_lastRowCoord, m_splitRect, and KisWrappedRect::topLeft().

◆ createIterator()

IteratorTypeSP WrappedHLineIteratorStrategy::createIterator ( KisDataManager * dataManager,
const QRect & rc,
qint32 offsetX,
qint32 offsetY,
bool writable,
KisIteratorCompleteListener * listener )
inline

Definition at line 34 of file kis_wrapped_hline_iterator.h.

38 {
39
40 return new KisHLineIterator2(dataManager,
41 rc.x(), rc.y(),
42 rc.width(),
43 offsetX, offsetY,
44 writable,
45 listener);
46 }

◆ iteratorsToNextRow()

void WrappedHLineIteratorStrategy::iteratorsToNextRow ( )
inline

Definition at line 88 of file kis_wrapped_hline_iterator.h.

88 {
89 leftColumnIterator()->nextRow();
90 if (rightColumnIterator()) {
91 rightColumnIterator()->nextRow();
92 }
93 }

References leftColumnIterator(), and rightColumnIterator().

◆ leftColumnIterator()

IteratorTypeSP WrappedHLineIteratorStrategy::leftColumnIterator ( ) const
inline

◆ originalRectToColumnsRows()

QSize WrappedHLineIteratorStrategy::originalRectToColumnsRows ( const QRect & rect)
inline

Definition at line 26 of file kis_wrapped_hline_iterator.h.

26 {
27 return rect.size();
28 }

◆ rightColumnIterator()

IteratorTypeSP WrappedHLineIteratorStrategy::rightColumnIterator ( ) const
inline

◆ trySwitchColumnForced()

bool WrappedHLineIteratorStrategy::trySwitchColumnForced ( )
inline

Definition at line 95 of file kis_wrapped_hline_iterator.h.

95 {
96 leftColumnIterator()->resetPixelPos();
97 if (rightColumnIterator()) {
98 rightColumnIterator()->resetPixelPos();
99 }
100 return true;
101 }

References leftColumnIterator(), and rightColumnIterator().

◆ trySwitchIteratorStripe()

bool WrappedHLineIteratorStrategy::trySwitchIteratorStripe ( )
inline

Definition at line 64 of file kis_wrapped_hline_iterator.h.

64 {
65 bool needSwitching = leftColumnIterator()->y() == m_lastRowCoord;
66
67 if (needSwitching) {
70
73 } else /* if (m_iteratorRowStart == KisWrappedRect::BOTTOMLEFT) */ {
76
77 Q_FOREACH (IteratorTypeSP it, *m_iterators) {
78 if (it) {
79 it->resetRowPos();
80 }
81 }
82 }
83 }
84
85 return needSwitching;
86 }
QRect bottomLeft() const

References KisWrappedRect::BOTTOMLEFT, KisWrappedRect::bottomLeft(), leftColumnIterator(), m_iteratorRowStart, m_iterators, m_lastRowCoord, m_splitRect, KisWrappedRect::TOPLEFT, and KisWrappedRect::topLeft().

Member Data Documentation

◆ m_iteratorRowStart

int WrappedHLineIteratorStrategy::m_iteratorRowStart
private

Definition at line 106 of file kis_wrapped_hline_iterator.h.

◆ m_iterators

QVector<IteratorTypeSP>* WrappedHLineIteratorStrategy::m_iterators
private

Definition at line 105 of file kis_wrapped_hline_iterator.h.

◆ m_lastRowCoord

int WrappedHLineIteratorStrategy::m_lastRowCoord
private

Definition at line 107 of file kis_wrapped_hline_iterator.h.

◆ m_splitRect

KisWrappedRect* WrappedHLineIteratorStrategy::m_splitRect
private

Definition at line 104 of file kis_wrapped_hline_iterator.h.


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