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

#include <kis_wrapped_vline_iterator.h>

Public Types

typedef KisVLineIteratorSP 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 *completeListener)
 
void iteratorsToNextRow ()
 
IteratorTypeSP leftColumnIterator () const
 
QSize originalRectToColumnsRows (const QRect &rect)
 
IteratorTypeSP rightColumnIterator () const
 
bool trySwitchColumnForced ()
 
bool trySwitchIteratorStripe ()
 
 WrappedVLineIteratorStrategy ()
 

Private Attributes

int m_iteratorColumnStart
 
QVector< IteratorTypeSP > * m_iterators
 
int m_lastColumnCoord
 
KisWrappedRectm_splitRect
 

Static Private Attributes

static const int BOTTOM_OFFSET = 2
 
static const int TOP_OFFSET = 0
 

Detailed Description

Definition at line 13 of file kis_wrapped_vline_iterator.h.

Member Typedef Documentation

◆ IteratorTypeSP

Constructor & Destructor Documentation

◆ WrappedVLineIteratorStrategy()

WrappedVLineIteratorStrategy::WrappedVLineIteratorStrategy ( )
inline

Member Function Documentation

◆ columnRowToXY()

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

Definition at line 33 of file kis_wrapped_vline_iterator.h.

33 {
34 return QPoint(pt.y(), pt.x());
35 }

◆ completeInitialization()

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

Definition at line 51 of file kis_wrapped_vline_iterator.h.

52 {
53 m_splitRect = splitRect;
54 m_iterators = iterators;
55
57 }
QVector< IteratorTypeSP > * m_iterators
QRect topLeft() const

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

◆ createIterator()

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

Definition at line 37 of file kis_wrapped_vline_iterator.h.

41 {
42
43 return new KisVLineIterator2(dataManager,
44 rc.x(), rc.y(),
45 rc.height(),
46 offsetX, offsetY,
47 writable,
48 completeListener);
49 }

◆ iteratorsToNextRow()

void WrappedVLineIteratorStrategy::iteratorsToNextRow ( )
inline

Definition at line 91 of file kis_wrapped_vline_iterator.h.

91 {
92 leftColumnIterator()->nextColumn();
93 if (rightColumnIterator()) {
94 rightColumnIterator()->nextColumn();
95 }
96 }

References leftColumnIterator(), and rightColumnIterator().

◆ leftColumnIterator()

IteratorTypeSP WrappedVLineIteratorStrategy::leftColumnIterator ( ) const
inline

◆ originalRectToColumnsRows()

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

Definition at line 29 of file kis_wrapped_vline_iterator.h.

29 {
30 return QSize(rect.height(), rect.width());
31 }

◆ rightColumnIterator()

IteratorTypeSP WrappedVLineIteratorStrategy::rightColumnIterator ( ) const
inline

◆ trySwitchColumnForced()

bool WrappedVLineIteratorStrategy::trySwitchColumnForced ( )
inline

Definition at line 98 of file kis_wrapped_vline_iterator.h.

98 {
99 leftColumnIterator()->resetPixelPos();
100 if (rightColumnIterator()) {
101 rightColumnIterator()->resetPixelPos();
102 }
103
104 return true;
105 }

References leftColumnIterator(), and rightColumnIterator().

◆ trySwitchIteratorStripe()

bool WrappedVLineIteratorStrategy::trySwitchIteratorStripe ( )
inline

Definition at line 67 of file kis_wrapped_vline_iterator.h.

67 {
68 bool needSwitching = leftColumnIterator()->x() == m_lastColumnCoord;
69
70 if (needSwitching) {
73
76 } else /* if (m_iteratorColumnStart == KisWrappedRect::TOPRIGHT) */ {
79
80 Q_FOREACH (IteratorTypeSP it, *m_iterators) {
81 if (it) {
82 it->resetColumnPos();
83 }
84 }
85 }
86 }
87
88 return needSwitching;
89 }
QRect topRight() const

References leftColumnIterator(), m_iteratorColumnStart, m_iterators, m_lastColumnCoord, m_splitRect, KisWrappedRect::TOPLEFT, KisWrappedRect::topLeft(), KisWrappedRect::TOPRIGHT, and KisWrappedRect::topRight().

Member Data Documentation

◆ BOTTOM_OFFSET

const int WrappedVLineIteratorStrategy::BOTTOM_OFFSET = 2
staticprivate

Definition at line 17 of file kis_wrapped_vline_iterator.h.

◆ m_iteratorColumnStart

int WrappedVLineIteratorStrategy::m_iteratorColumnStart
private

Definition at line 110 of file kis_wrapped_vline_iterator.h.

◆ m_iterators

QVector<IteratorTypeSP>* WrappedVLineIteratorStrategy::m_iterators
private

Definition at line 109 of file kis_wrapped_vline_iterator.h.

◆ m_lastColumnCoord

int WrappedVLineIteratorStrategy::m_lastColumnCoord
private

Definition at line 111 of file kis_wrapped_vline_iterator.h.

◆ m_splitRect

KisWrappedRect* WrappedVLineIteratorStrategy::m_splitRect
private

Definition at line 108 of file kis_wrapped_vline_iterator.h.

◆ TOP_OFFSET

const int WrappedVLineIteratorStrategy::TOP_OFFSET = 0
staticprivate

Definition at line 16 of file kis_wrapped_vline_iterator.h.


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