![]() |
rasdaman client API 10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
|
This class abstracts away iteration over the cells of a (multi-band) array. More...
#include <banditerator.hh>
Public Member Functions | |
| r_Band_Iterator (const char *_data, const r_Base_Type *_type, r_Bytes _size, unsigned int _band, r_Band_Linearization _bandLinearization) | |
| virtual | ~r_Band_Iterator ()=default |
| destructor | |
| bool | done () const |
| void | advance () |
| Move to the next band cell. | |
| void | advance (r_Bytes cellCount) |
| Move by cellCount cells in the band. | |
| const char * | get () |
| const char * | get (r_Bytes targetCell) |
| void | reset () |
| void | copyBand (char *__restrict__ dst) |
Copy the band data to the given dst pointer; dst must not be null, and must be sufficiently large (use getBandSize() to determine the size). | |
| r_Bytes | getBandSize () const |
| Return the size of band data in bytes. | |
Protected Attributes | |
| const char * | data {NULL} |
| array data | |
| const char * | currCell {NULL} |
| current cell in the array to be returned by dereferencing the iterator | |
| const char * | dataEnd {NULL} |
| end of data = data + (size * cellSize) | |
| const r_Base_Type * | type {NULL} |
| array cell type | |
| r_Bytes | size {} |
| array size in number of cells | |
| r_Bytes | bandOffset {} |
| offset in bytes to the first cell in data of the iterated band | |
| unsigned int | band {} |
| the band to be iterated | |
| unsigned int | cellBandSize {} |
| size of the band component of one cell in bytes | |
| unsigned int | cellSize {1} |
| full cell size in bytes | |
| r_Band_Linearization | bandLinearization {r_Band_Linearization::PixelInterleaved} |
| band linearization (pixel/channel) | |
This class abstracts away iteration over the cells of a (multi-band) array.
Bands in pixel-interleaved and channel-interleaved linearizations are supported.
It's different from r_Miter* in raslib, which focuses on full cell/dimension iteration.
| r_Band_Iterator::r_Band_Iterator | ( | const char * | _data, |
| const r_Base_Type * | _type, | ||
| r_Bytes | _size, | ||
| unsigned int | _band, | ||
| r_Band_Linearization | _bandLinearization | ||
| ) |
| _data | the array cells |
| _type | the array base type |
| _size | number of cells in the array |
| _band | the band to be iterated |
| _bandLinearization | the band interleaving (pixel/channel) |
|
virtualdefault |
destructor
|
inline |
|
inline |
| void r_Band_Iterator::copyBand | ( | char *__restrict__ | dst | ) |
Copy the band data to the given dst pointer; dst must not be null, and must be sufficiently large (use getBandSize() to determine the size).
|
inline |
|
inline |
|
inline |
References bandOffset, cellSize, data, and size.
| r_Bytes r_Band_Iterator::getBandSize | ( | ) | const |
Return the size of band data in bytes.
|
inline |
References bandOffset, currCell, and data.
|
protected |
the band to be iterated
|
protected |
band linearization (pixel/channel)
|
protected |
|
protected |
size of the band component of one cell in bytes
|
protected |
|
protected |
|
protected |
|
protected |
array cell type