![]() |
Image Component Library (ICL)
|
Iterator class used to iterate through a sub rect of 2D data. More...
#include <MatrixSubRectIterator.h>
Public Member Functions | |
| MatrixSubRectIterator () | |
| Default Constructor. More... | |
| MatrixSubRectIterator (Type *ptData, int matrixWidth, int subRectX, int subRectY, int subRectWidth, int subRectHeight) | |
| MatrixSubRectIterator & | assign (const MatrixSubRectIterator &other) |
| const MatrixSubRectIterator & | operator= (const MatrixSubRectIterator &other) const |
| const Type & | operator * () const |
| retuns a reference of the current pixel value (const) More... | |
| Type & | operator * () |
| retuns a reference of the current pixel value More... | |
| MatrixSubRectIterator & | operator++ () |
| moves to the next iterator position (Prefix ++it) More... | |
| const MatrixSubRectIterator & | operator++ () const |
| const version of pre increment operator More... | |
| MatrixSubRectIterator | operator++ (int) |
| const MatrixSubRectIterator | operator++ (int) const |
| const version of post increment operator More... | |
| bool | inSubRect () const |
| to check if iterator is still inside the ROI More... | |
| bool | operator!= (const MatrixSubRectIterator< Type > &it) const |
| compare two iterators More... | |
| bool | operator== (const MatrixSubRectIterator< Type > &it) const |
| compare two iterators More... | |
| bool | operator< (const MatrixSubRectIterator< Type > &it) const |
| compare two iterators More... | |
| bool | operator> (const MatrixSubRectIterator< Type > &it) const |
| compare two iterators More... | |
| bool | operator<= (const MatrixSubRectIterator< Type > &it) const |
| compare two iterators More... | |
| bool | operator>= (const MatrixSubRectIterator< Type > &it) const |
| compare two iterators More... | |
| int | getSubRectWidth () const |
| returns the length of each row processed by this iterator More... | |
| int | getSubRectHeight () const |
| void | incRow (int numLines=1) const |
| move the pixel vertically forward More... | |
| int | x () |
| returns the current x position of the iterator (wrt matrix origin); More... | |
| int | y () |
| returns the current y position of the iterator (wrt matrix origin) More... | |
Static Public Member Functions | |
| static const MatrixSubRectIterator< Type > | create_end_iterator (const Type *dataOrigin, int matrixWidth, int subRectX, int subRectY, int subRectWidth, int subRectHeight) |
Protected Member Functions | |
| void | init () |
Protected Attributes | |
| int | m_matrixWidth |
| corresponding matrix width More... | |
| int | m_subRectWidth |
| sub rect size of the iterator More... | |
| int | m_subRectHeight |
| int | m_lineStep |
| result of m_matrixWidth - m_subRectWidth More... | |
| Type * | m_dataOrigin |
| pointer to the upper matrix data origin (upper left element) More... | |
| Type * | m_dataCurr |
| pointer to the current data element More... | |
| Type * | m_dataEnd |
| pointer to the first element behind the subrect More... | |
| Type * | m_currLineEnd |
| pointer to the first invalid element of the current line More... | |
Iterator class used to iterate through a sub rect of 2D data.
The MatrixSubRectIterator is a utility to iterate line by line through all elements of a sub-rectangle of a row-major-order aligned data block.
The following ASCII image shows an images ROI.
1st element
|
....|....................
....+->Xoooooooo......... ---
.......ooooooooo......... |
.......ooooooooo......... Rect-Height
.......ooooooooo......... |
.......ooooooooo......... ---
.........................
|-RectW-|
|---------MatrixW-------|\section CONST const-ness Please note that the const-ness of an MatrixSubRectIterator instance does not say anything about the sturcture itselft. Hence also const MatrixSubRectIterators can be 'moved' using ++-operators or incRow() method.\n Instead, const-ness relates to the underlying data block is referenced by the iterator instance.
|
inline |
Default Constructor.
Creates an MatrixSubRectIterator object
|
inline |
2nd Constructor creates an MatrixSubRectIterator object with Type "Type"
| ptData | pointer to the corresponding channel data |
| matrixWidth | width of the corresponding image |
| subRectX | ROI upper-left X-coordinate |
| subRectY | ROI upper-left Y-coordinate |
| subRectWidth | ROI width |
| subRectHeight | ROI height |
|
inline |
|
inlinestatic |
|
inline |
|
inline |
returns the length of each row processed by this iterator
|
inline |
move the pixel vertically forward
current x value is hold, the current y-value is incremented by iLines
| numLines | amount of lines to jump over |
|
inlineprotected |
|
inline |
to check if iterator is still inside the ROI
This function was replaced by STL-like begin(), end() logic Although in some cases it might be quite useful, so we renamed it rather than deleting it
|
inline |
retuns a reference of the current pixel value (const)
changes on *p (p is of type MatrixSubRectIterator) will effect the image data
|
inline |
retuns a reference of the current pixel value
changes on *p (p is of type MatrixSubRectIterator) will effect the image data
|
inline |
compare two iterators
|
inline |
moves to the next iterator position (Prefix ++it)
The image ROI will be scanned line by line beginning on the bottom left iterator.
+-- begin here (index 0)
|
.......|.................
.......V.................
.......012+-->+8<---------- first line wrap after
.......9++++++++......... this pixel (index 8)
.......+++++++++.........
.......+++++++++.........
.......++++++++X<---------- last valid pixel
....+->I.................
|
'I' is the first invalid iterator
(p.inRegion() will become false)In most cases The ++ operator will just increase the current x position and update the reference to the current pixel data. If the end of a line is reached, then the position is set to the beginning of the next line.
|
inline |
const version of pre increment operator
|
inline |
postfix operator++ (used -O3 to avoid loss of performace when using the "it++"-operator In most cases the "++it"-operator will ensure best performace.
|
inline |
const version of post increment operator
|
inline |
compare two iterators
|
inline |
compare two iterators
|
inline |
|
inline |
compare two iterators
|
inline |
compare two iterators
|
inline |
compare two iterators
|
inline |
returns the current x position of the iterator (wrt matrix origin);
|
inline |
returns the current y position of the iterator (wrt matrix origin)
|
mutableprotected |
pointer to the first invalid element of the current line
|
mutableprotected |
pointer to the current data element
|
protected |
pointer to the first element behind the subrect
|
protected |
pointer to the upper matrix data origin (upper left element)
|
protected |
result of m_matrixWidth - m_subRectWidth
|
protected |
corresponding matrix width
|
protected |
|
protected |
sub rect size of the iterator
1.8.15