This class implements an iterator to "navigate" over a single band, with a spatial restriction given by a mask. More...
#include <BandIterator.h>
Public Member Functions | |
BandIteratorWithMask () | |
Constructor. More... | |
BandIteratorWithMask (Band *b, Raster *m) | |
Constructor. More... | |
BandIteratorWithMask (const BandIteratorWithMask &rhs) | |
Copy constructor. More... | |
unsigned int | getColumn () const |
Returns the current column in iterator. More... | |
unsigned int | getRow () const |
Returns the current row in iterator. More... | |
bool | operator!= (const AbstractBandIterator &rhs) const |
Difference operator. More... | |
T | operator* () |
Returns the value in current position (column, row) from iterator. More... | |
const T | operator* () const |
Returns the value in current position (column, row) from iterator. More... | |
void | operator++ () |
Advances to the next position. More... | |
void | operator-- () |
BandIteratorWithMask & | operator= (const BandIteratorWithMask &rhs) |
Assignment operator. More... | |
void | replaceBlock () |
Replaces the current bufferized block values. More... | |
Static Public Member Functions | |
static BandIterator | begin (Band *b) |
Returns an iterator referring to the first value of the band. More... | |
static BandIteratorWithMask | begin (Band *b, Raster *m) |
Returns an iterator with the mask referring to the first value of the band. More... | |
static BandIterator | end (Band *b) |
Returns an iterator referring to after the end of the iterator. More... | |
static BandIteratorWithMask | end (Band *b, Raster *m) |
Returns an iterator with the mask referring to after the end of the iterator. More... | |
Protected Attributes | |
Band * | m_band |
The band from where to get the values. More... | |
T * | m_blk |
Internal block. More... | |
int | m_blkh |
The internal block height. More... | |
int | m_blksize |
The block size of the band. More... | |
int | m_blkw |
The internal block width. More... | |
int | m_blkx |
The position in X of the current block. More... | |
int | m_blky |
The position in Y of the current block. More... | |
unsigned int | m_currentpixelindex |
The index of the current pixel location. More... | |
te::rst::GetBufferValueFPtr | m_getBuff |
A pointer to a function that helps to extract a double or complex value from a specific buffer data type (char, int16, int32, float, ...). More... | |
te::rst::GetBufferValueFPtr | m_getBuffI |
A pointer to a function that helps to extract the imaginary part value from a specific buffer data type (cint16, cint32, cfloat, cdouble). More... | |
int | m_i |
The actual position inside the block. More... | |
int | m_lastblksize |
The number of pixels inside the last block. More... | |
boost::dynamic_bitset | m_mask |
The internal mask of bits, one bit per pixel. More... | |
unsigned int | m_masksize |
The size of the mask (rows * columns of the mask raster). More... | |
int | m_nblocksx |
The number of blocks in X direction. More... | |
int | m_nblocksy |
The number of blocks in Y direction. More... | |
int | m_npxlsblk |
The maximum number of pixels inside the block. More... | |
te::rst::SetBufferValueFPtr | m_setBuff |
A pointer to a function that helps to insert a double or complex value into a specific buffer data type (char, int16, int32, float, ...). More... | |
te::rst::SetBufferValueFPtr | m_setBuffI |
A pointer to a function that helps to insert the imaginary part value into a specific buffer data type (cint16, cint32, cfloat, cdouble). More... | |
This class implements an iterator to "navigate" over a single band, with a spatial restriction given by a mask.
We provide an efficient method to obtain all values in a raster, without regard to their locations. The implementation navigates through the blocks of the image. The mask is a 1bit raster where the pixels with value 0 are not returned by the iterator, and pixels with value 1 are returned.
Definition at line 272 of file BandIterator.h.
te::rst::BandIteratorWithMask< T >::BandIteratorWithMask | ( | ) |
Constructor.
Definition at line 612 of file BandIterator.h.
te::rst::BandIteratorWithMask< T >::BandIteratorWithMask | ( | Band * | b, |
Raster * | m | ||
) |
Constructor.
b | The band to iterate. |
m | The raster with the mask. |
Definition at line 620 of file BandIterator.h.
References te::rst::BandIterator< T >::begin(), te::rst::BandIterator< T >::end(), te::rst::Raster::getBand(), te::rst::Raster::getNumberOfColumns(), te::rst::Raster::getNumberOfRows(), te::rst::BandIteratorWithMask< T >::m_mask, te::rst::BandIteratorWithMask< T >::m_masksize, and te::rst::BandIteratorWithMask< T >::operator++().
te::rst::BandIteratorWithMask< T >::BandIteratorWithMask | ( | const BandIteratorWithMask< T > & | rhs | ) |
Copy constructor.
rhs | The right-hand-side copy used to copy from. |
Definition at line 645 of file BandIterator.h.
|
staticinherited |
Returns an iterator referring to the first value of the band.
Definition at line 532 of file BandIterator.h.
Referenced by te::rst::BandIteratorWithMask< T >::BandIteratorWithMask().
|
static |
Returns an iterator with the mask referring to the first value of the band.
Definition at line 690 of file BandIterator.h.
|
staticinherited |
Returns an iterator referring to after the end of the iterator.
Definition at line 537 of file BandIterator.h.
References te::rst::Band::getProperty(), te::rst::AbstractBandIterator< T >::m_blky, and te::rst::BandProperty::m_nblocksy.
Referenced by te::rst::BandIteratorWithMask< T >::BandIteratorWithMask().
|
static |
Returns an iterator with the mask referring to after the end of the iterator.
Definition at line 695 of file BandIterator.h.
References te::rst::Band::getProperty(), te::rst::AbstractBandIterator< T >::m_blky, and te::rst::BandProperty::m_nblocksy.
|
inherited |
Returns the current column in iterator.
Definition at line 394 of file BandIterator.h.
|
inherited |
Returns the current row in iterator.
Definition at line 389 of file BandIterator.h.
|
inherited |
Difference operator.
rhs | The right-hand side to compare. |
Definition at line 477 of file BandIterator.h.
References te::rst::AbstractBandIterator< T >::m_blky.
|
inherited |
Returns the value in current position (column, row) from iterator.
Definition at line 505 of file BandIterator.h.
|
virtualinherited |
Returns the value in current position (column, row) from iterator.
Implements te::rst::AbstractBandIterator< T >.
Definition at line 514 of file BandIterator.h.
|
virtual |
Advances to the next position.
Reimplemented from te::rst::AbstractBandIterator< T >.
Definition at line 651 of file BandIterator.h.
References te::rst::AbstractBandIterator< T >::operator++().
Referenced by te::rst::BandIteratorWithMask< T >::BandIteratorWithMask().
void te::rst::BandIteratorWithMask< T >::operator-- | ( | ) |
Definition at line 665 of file BandIterator.h.
References te::rst::AbstractBandIterator< T >::operator--().
te::rst::BandIteratorWithMask< T > & te::rst::BandIteratorWithMask< T >::operator= | ( | const BandIteratorWithMask< T > & | rhs | ) |
Assignment operator.
rhs | The right-hand-side copy used to copy from. |
Definition at line 679 of file BandIterator.h.
References te::rst::BandIteratorWithMask< T >::m_currentpixelindex, te::rst::BandIteratorWithMask< T >::m_mask, te::rst::BandIteratorWithMask< T >::m_masksize, and te::rst::BandIterator< T >::operator=().
|
virtualinherited |
Replaces the current bufferized block values.
Implements te::rst::AbstractBandIterator< T >.
Definition at line 546 of file BandIterator.h.
Referenced by te::rst::BandIterator< T >::BandIterator().
|
protectedinherited |
The band from where to get the values.
Definition at line 195 of file BandIterator.h.
Referenced by te::rst::BandIterator< T >::operator=().
|
protectedinherited |
Internal block.
Definition at line 128 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator().
|
protectedinherited |
The internal block height.
Definition at line 119 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The block size of the band.
Definition at line 127 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator(), te::rst::BandIterator< T >::BandIterator(), te::rst::ConstBandIterator< T >::ConstBandIterator(), and te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The internal block width.
Definition at line 118 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The position in X of the current block.
Definition at line 124 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The position in Y of the current block.
Definition at line 125 of file BandIterator.h.
Referenced by te::rst::BandIterator< T >::end(), te::rst::ConstBandIterator< T >::end(), te::rst::BandIteratorWithMask< T >::end(), te::rst::AbstractBandIterator< T >::operator!=(), and te::rst::AbstractBandIterator< T >::operator=().
|
protected |
The index of the current pixel location.
Definition at line 316 of file BandIterator.h.
Referenced by te::rst::BandIteratorWithMask< T >::operator=().
|
protectedinherited |
A pointer to a function that helps to extract a double or complex value from a specific buffer data type (char, int16, int32, float, ...).
Definition at line 129 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator().
|
protectedinherited |
A pointer to a function that helps to extract the imaginary part value from a specific buffer data type (cint16, cint32, cfloat, cdouble).
Definition at line 130 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator().
|
protectedinherited |
The actual position inside the block.
Definition at line 123 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The number of pixels inside the last block.
Definition at line 126 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator(), and te::rst::AbstractBandIterator< T >::operator=().
|
protected |
The internal mask of bits, one bit per pixel.
Definition at line 314 of file BandIterator.h.
Referenced by te::rst::BandIteratorWithMask< T >::BandIteratorWithMask(), and te::rst::BandIteratorWithMask< T >::operator=().
|
protected |
The size of the mask (rows * columns of the mask raster).
Definition at line 315 of file BandIterator.h.
Referenced by te::rst::BandIteratorWithMask< T >::BandIteratorWithMask(), and te::rst::BandIteratorWithMask< T >::operator=().
|
protectedinherited |
The number of blocks in X direction.
Definition at line 121 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator(), and te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The number of blocks in Y direction.
Definition at line 122 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator(), and te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
The maximum number of pixels inside the block.
Definition at line 120 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator(), and te::rst::AbstractBandIterator< T >::operator=().
|
protectedinherited |
A pointer to a function that helps to insert a double or complex value into a specific buffer data type (char, int16, int32, float, ...).
Definition at line 131 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator().
|
protectedinherited |
A pointer to a function that helps to insert the imaginary part value into a specific buffer data type (cint16, cint32, cfloat, cdouble).
Definition at line 132 of file BandIterator.h.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator().