Krita Source Code Documentation
Loading...
Searching...
No Matches
KisWrappedLineIteratorBase< IteratorStrategy, BaseClass > Class Template Reference

#include <kis_wrapped_line_iterator_base.h>

+ Inheritance diagram for KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >:

Public Member Functions

 KisWrappedLineIteratorBase (KisDataManager *dataManager, const KisWrappedRect &splitRect, qint32 offsetX, qint32 offsetY, bool writable, KisIteratorCompleteListener *listener)
 
qint32 nConseqPixels () const
 
void nextColumn ()
 
bool nextPixel ()
 
bool nextPixels (qint32 n)
 
void nextRow ()
 
const quint8 * oldRawData () const
 
quint8 * rawData ()
 
const quint8 * rawDataConst () const
 
void resetColumnPos ()
 
void resetPixelPos ()
 
void resetRowPos ()
 
qint32 x () const
 
qint32 y () const
 

Private Member Functions

bool trySwitchColumn ()
 

Private Attributes

IteratorStrategy::IteratorTypeSP m_currentIterator
 
QPoint m_currentPos
 
QSize m_iterationAreaSize
 
QVector< typename IteratorStrategy::IteratorTypeSP > m_iterators
 
KisWrappedRect m_splitRect
 
IteratorStrategy m_strategy
 

Detailed Description

template<class IteratorStrategy, class BaseClass>
class KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >

Definition at line 12 of file kis_wrapped_line_iterator_base.h.

Constructor & Destructor Documentation

◆ KisWrappedLineIteratorBase()

template<class IteratorStrategy , class BaseClass >
KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::KisWrappedLineIteratorBase ( KisDataManager * dataManager,
const KisWrappedRect & splitRect,
qint32 offsetX,
qint32 offsetY,
bool writable,
KisIteratorCompleteListener * listener )
inline

Definition at line 15 of file kis_wrapped_line_iterator_base.h.

20 : m_splitRect(splitRect)
21 {
22 Q_ASSERT(m_splitRect.isSplit());
23
24 m_iterators.resize(4);
25 for (int i = 0; i < 4; i++) {
26 QRect rc = m_splitRect[i];
27 if (rc.isEmpty()) continue;
28
29 m_iterators[i] = m_strategy.createIterator(dataManager,
30 rc,
31 offsetX, offsetY,
32 writable,
33 listener);
34 }
35 m_strategy.completeInitialization(&m_iterators, &m_splitRect);
37 m_strategy.originalRectToColumnsRows(m_splitRect.originalRect());
38
39 m_currentIterator = m_strategy.leftColumnIterator();
40 }
IteratorStrategy::IteratorTypeSP m_currentIterator
QVector< typename IteratorStrategy::IteratorTypeSP > m_iterators
bool isSplit() const
QRect originalRect() const

References KisWrappedRect::isSplit(), KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_currentIterator, KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_iterationAreaSize, KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_iterators, KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_splitRect, KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_strategy, and KisWrappedRect::originalRect().

Member Function Documentation

◆ nConseqPixels()

template<class IteratorStrategy , class BaseClass >
qint32 KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::nConseqPixels ( ) const
inline

◆ nextColumn()

template<class IteratorStrategy , class BaseClass >
void KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::nextColumn ( )
inline

◆ nextPixel()

◆ nextPixels()

template<class IteratorStrategy , class BaseClass >
bool KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::nextPixels ( qint32 n)
inline

◆ nextRow()

template<class IteratorStrategy , class BaseClass >
void KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::nextRow ( )
inline

◆ oldRawData()

template<class IteratorStrategy , class BaseClass >
const quint8 * KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::oldRawData ( ) const
inline

◆ rawData()

template<class IteratorStrategy , class BaseClass >
quint8 * KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::rawData ( )
inline

◆ rawDataConst()

template<class IteratorStrategy , class BaseClass >
const quint8 * KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::rawDataConst ( ) const
inline

◆ resetColumnPos()

template<class IteratorStrategy , class BaseClass >
void KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::resetColumnPos ( )
inline

◆ resetPixelPos()

template<class IteratorStrategy , class BaseClass >
void KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::resetPixelPos ( )
inline

Definition at line 105 of file kis_wrapped_line_iterator_base.h.

105 {
106 errKrita << "CRITICAL: resetPixelPos() is not implemented";
107 }
#define errKrita
Definition kis_debug.h:107

References errKrita.

◆ resetRowPos()

template<class IteratorStrategy , class BaseClass >
void KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::resetRowPos ( )
inline

Definition at line 109 of file kis_wrapped_line_iterator_base.h.

109 {
110 errKrita << "CRITICAL: resetRowPos() is not implemented";
111 }

References errKrita.

◆ trySwitchColumn()

template<class IteratorStrategy , class BaseClass >
bool KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::trySwitchColumn ( )
inlineprivate

Definition at line 118 of file kis_wrapped_line_iterator_base.h.

118 {
119 int result = true;
120
121 if (m_currentIterator == m_strategy.leftColumnIterator() &&
122 m_strategy.rightColumnIterator()) {
123
124 m_currentIterator = m_strategy.rightColumnIterator();
125
126 } else if (m_strategy.trySwitchColumnForced()) {
127
128 m_currentIterator = m_strategy.leftColumnIterator();
129
130 } else {
131 result = false;
132 }
133
134 return result;
135 }

References KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_currentIterator, and KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_strategy.

◆ x()

◆ y()

template<class IteratorStrategy , class BaseClass >
qint32 KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::y ( ) const
inline

Member Data Documentation

◆ m_currentIterator

template<class IteratorStrategy , class BaseClass >
IteratorStrategy::IteratorTypeSP KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_currentIterator
private

Definition at line 143 of file kis_wrapped_line_iterator_base.h.

◆ m_currentPos

template<class IteratorStrategy , class BaseClass >
QPoint KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_currentPos
private

Definition at line 141 of file kis_wrapped_line_iterator_base.h.

◆ m_iterationAreaSize

template<class IteratorStrategy , class BaseClass >
QSize KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_iterationAreaSize
private

Definition at line 140 of file kis_wrapped_line_iterator_base.h.

◆ m_iterators

template<class IteratorStrategy , class BaseClass >
QVector<typename IteratorStrategy::IteratorTypeSP> KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_iterators
private

Definition at line 142 of file kis_wrapped_line_iterator_base.h.

◆ m_splitRect

template<class IteratorStrategy , class BaseClass >
KisWrappedRect KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_splitRect
private

Definition at line 139 of file kis_wrapped_line_iterator_base.h.

◆ m_strategy

template<class IteratorStrategy , class BaseClass >
IteratorStrategy KisWrappedLineIteratorBase< IteratorStrategy, BaseClass >::m_strategy
private

Definition at line 144 of file kis_wrapped_line_iterator_base.h.


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