26 #ifndef __TERRALIB_RASTER_INTERNAL_BANDITERATOR_H 27 #define __TERRALIB_RASTER_INTERNAL_BANDITERATOR_H 35 #include <boost/dynamic_bitset.hpp> 84 unsigned int getRow()
const;
616 m_currentpixelindex(0)
630 m_mask.resize(m_masksize);
707 #endif // __TERRALIB_RASTER_INTERNAL_BANDITERATOR_H te::rst::GetBufferValueFPtr m_getBuff
A pointer to a function that helps to extract a double or complex value from a specific buffer data t...
This class implements an iterator to "navigate" over a single band, with a spatial restriction given ...
unsigned int getRow() const
Returns the current row in iterator.
int m_nblocksy
The number of blocks in Y direction.
int m_blky
The position in Y of the current block.
te::rst::GetBufferValueFPtr m_getBuffI
A pointer to a function that helps to extract the imaginary part value from a specific buffer data ty...
It describes one band (or dimension) of a raster.
unsigned int getColumn() const
Returns the current column in iterator.
virtual void replaceBlock()=0
Replaces the current bufferized block values.
unsigned int getNumberOfColumns() const
Returns the raster number of columns.
const Band * m_band
The band from where to get the values.
int m_i
The actual position inside the block.
int m_nblocksy
The number of blocks in y.
bool operator!=(const AbstractBandIterator &rhs) const
Difference operator.
Band * m_band
The band from where to get the values.
te::rst::SetBufferValueFPtr m_setBuffI
A pointer to a function that helps to insert the imaginary part value into a specific buffer data typ...
void operator--()
Returns to the previous position.
BandIteratorWithMask & operator=(const BandIteratorWithMask &rhs)
Assignment operator.
ConstBandIterator()
Constructor.
void(* SetBufferValueFPtr)(int index, void *buffer, const double *value)
The type of function used to extract data from a buffer.
~AbstractBandIterator()
Destructor.
int m_blksize
The block size of the band.
This class implements an iterator to "navigate" over a single band (const).
static BandIterator begin(Band *b)
Returns an iterator referring to the first value of the band.
static ConstBandIterator begin(const Band *b)
Returns an iterator referring to the first value of the band.
Utility functions for dealing with raster data blocks.
boost::dynamic_bitset m_mask
The internal mask of bits, one bit per pixel.
This class implements an abstract iterator to "navigate" over a single band.
static BandIteratorWithMask end(Band *b, Raster *m)
Returns an iterator with the mask referring to after the end of the iterator.
void(* GetBufferValueFPtr)(int index, void *buffer, double *value)
The type of function used to extract data from a buffer.
int m_blkx
The position in X of the current block.
int m_blkw
The internal block width.
T operator*()
Returns the value in current position (column, row) from iterator.
BandProperty * getProperty()
Returns the band property.
An abstract class for raster data strucutures.
unsigned int getNumberOfRows() const
Returns the raster number of rows.
void replaceBlock()
Replaces the current bufferized block values.
TERASTEREXPORT void SetBlockFunctions(GetBufferValueFPtr *gb, GetBufferValueFPtr *gbi, SetBufferValueFPtr *sb, SetBufferValueFPtr *sbi, int type)
Sets the pointers to functions that helps to extract a double or complex value from a specific buffer...
int m_npxlsblk
The maximum number of pixels inside the block.
It gives access to values in one band (dimension) of a raster.
A raster band description.
virtual const Band * getBand(std::size_t i) const =0
Returns the raster i-th band.
const T operator*() const
Returns the value in current position (column, row) from iterator.
BandIterator()
Constructor.
int m_blkh
The internal block height.
AbstractBandIterator()
Constructor.
te::rst::SetBufferValueFPtr m_setBuff
A pointer to a function that helps to insert a double or complex value into a specific buffer data ty...
virtual void read(int x, int y, void *buffer) const =0
It reads a data block to the specified buffer.
AbstractBandIterator & operator=(const AbstractBandIterator &rhs)
Assignment operator.
virtual const T operator*() const =0
Returns the value in current position (column, row) from iterator.
This class implements an iterator to "navigate" over a single band.
int m_lastblksize
The number of pixels inside the last block.
BandIterator & operator=(const BandIterator &rhs)
Assignment operator.
void replaceBlock()
Replaces the current bufferized block values.
virtual Raster * getRaster() const =0
Returns the associated raster.
virtual void operator++()
Advances to the next position.
unsigned int m_currentpixelindex
The index of the current pixel location.
static BandIteratorWithMask begin(Band *b, Raster *m)
Returns an iterator with the mask referring to the first value of the band.
int getType() const
It returns the data type of the elements in the band.
static BandIterator end(Band *b)
Returns an iterator referring to after the end of the iterator.
int m_nblocksx
The number of blocks in X direction.
ConstBandIterator & operator=(const ConstBandIterator &rhs)
Assignment operator.
BandIteratorWithMask()
Constructor.
void operator++()
Advances to the next position.
unsigned int m_masksize
The size of the mask (rows * columns of the mask raster).
static ConstBandIterator end(const Band *b)
Returns an iterator referring to after the end of the iterator.