26#ifndef __TERRALIB_RASTER_INTERNAL_BANDITERATOR_H
27#define __TERRALIB_RASTER_INTERNAL_BANDITERATOR_H
35#include <boost/dynamic_bitset.hpp>
86 unsigned int getRow()
const;
540 return static_cast<T
>(value);
549 return static_cast<T
>(value);
617 return static_cast<T
>(value);
It describes one band (or dimension) of a raster.
Utility functions for dealing with raster data blocks.
This class implements an abstract iterator to "navigate" over a single band.
unsigned int getRow() const
Returns the current row in iterator.
int m_nblocksx
The number of blocks in X direction.
int m_blkh
The internal block height.
te::rst::SetBufferValueFPtr m_setBuffI
A pointer to a function that helps to insert the imaginary part value into a specific buffer data typ...
AbstractBandIterator & operator=(const AbstractBandIterator &rhs)
Assignment operator.
int m_blksize
The block size of the band.
int m_nblocksy
The number of blocks in Y direction.
int m_blkw
The internal block width.
void operator--()
Returns to the previous position.
int m_lastblksize
The number of pixels inside the last block.
bool operator!=(const AbstractBandIterator &rhs) const
Difference operator.
AbstractBandIterator()
Constructor.
int m_blkx
The position in X of the current block.
int m_i
The actual position inside the block.
void reset()
Reset this instance to a initial state.
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...
unsigned int getColumn() const
Returns the current column in iterator.
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...
virtual ~AbstractBandIterator()
Destructor.
te::rst::GetBufferValueFPtr m_getBuffI
A pointer to a function that helps to extract the imaginary part value from a specific buffer data ty...
int m_npxlsblk
The maximum number of pixels inside the block.
virtual void replaceBlock()=0
Replaces the current bufferized block values.
virtual const T operator*() const =0
Returns the value in current position (column, row) from iterator.
int m_blky
The position in Y of the current block.
virtual void operator++()
Advances to the next position.
This class implements an iterator to "navigate" over a single band, with a spatial restriction given ...
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.
void operator++()
Advances to the next position.
BandIteratorWithMask & operator=(const BandIteratorWithMask &rhs)
Assignment operator.
unsigned int m_masksize
The size of the mask (rows * columns of the mask raster).
BandIteratorWithMask()
Constructor.
static BandIteratorWithMask end(Band *b, Raster *m)
Returns an iterator with the mask referring to after the end of the iterator.
boost::dynamic_bitset m_mask
The internal mask of bits, one bit per pixel.
This class implements an iterator to "navigate" over a single band.
Band * m_band
The band from where to get the values.
BandIterator & operator=(const BandIterator &rhs)
Assignment operator.
static BandIterator begin(Band *b)
Returns an iterator referring to the first value of the band.
void reset()
Reset this instance to a initial state.
T operator*()
Returns the value in current position (column, row) from iterator.
static BandIterator end(Band *b)
Returns an iterator referring to after the end of the iterator.
void replaceBlock()
Replaces the current bufferized block values.
BandIterator()
Constructor.
int m_nblocksx
The number of blocks in x.
int getType() const
It returns the data type of the elements in the band.
int m_blkw
Block width (pixels).
int m_blkh
Block height (pixels).
int m_nblocksy
The number of blocks in y.
A raster band description.
BandProperty * getProperty()
Returns the band property.
virtual int getBlockSize() const
It returns the number of bytes ocuppied by a data block.
virtual Raster * getRaster() const =0
Returns the associated raster.
This class implements an iterator to "navigate" over a single band (const).
static ConstBandIterator end(const Band *b)
Returns an iterator referring to after the end of the iterator.
void replaceBlock()
Replaces the current bufferized block values.
ConstBandIterator & operator=(const ConstBandIterator &rhs)
Assignment operator.
ConstBandIterator()
Constructor.
static ConstBandIterator begin(const Band *b)
Returns an iterator referring to the first value of the band.
const T operator*() const
Returns the value in current position (column, row) from iterator.
const Band * m_band
The band from where to get the values.
An abstract class for raster data strucutures.
virtual const Band * getBand(std::size_t i) const =0
Returns the raster i-th band.
unsigned int getNumberOfRows() const
Returns the raster number of rows.
unsigned int getNumberOfColumns() const
Returns the raster number of columns.
Namespace for the Raster module of TerraLib.
void(* SetBufferValueFPtr)(int index, void *buffer, const double *value)
The type of function used to extract data from a buffer.
void(* GetBufferValueFPtr)(int index, void *buffer, double *value)
The type of function used to extract data from a buffer.
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...
It gives access to values in one band (dimension) of a raster.