VRTDerivedRasterBand Class Reference

Inheritance diagram for VRTDerivedRasterBand:
VRTSourcedRasterBand VRTRasterBand GDALRasterBand GDALMajorObject

List of all members.

Public Member Functions

 VRTDerivedRasterBand (GDALDataset *poDS, int nBand)
 VRTDerivedRasterBand (GDALDataset *poDS, int nBand, GDALDataType eType, int nXSize, int nYSize)
virtual CPLErr IRasterIO (GDALRWFlag, int, int, int, int, void *, int, int, GDALDataType, int, int)
void SetPixelFunctionName (const char *pszFuncName)
void SetSourceTransferType (GDALDataType eDataType)
virtual CPLErr XMLInit (CPLXMLNode *, const char *)
virtual CPLXMLNodeSerializeToXML (const char *pszVRTPath)

Static Public Member Functions

static CPLErr AddPixelFunction (const char *pszFuncName, GDALDerivedPixelFunc pfnPixelFunc)
static GDALDerivedPixelFunc GetPixelFunction (const char *pszFuncName)

Public Attributes

char * pszFuncName
GDALDataType eSourceTransferType

Member Function Documentation

CPLErr VRTDerivedRasterBand::AddPixelFunction ( const char *  pszFuncName,
GDALDerivedPixelFunc  pfnNewFunction 
) [static]

This adds a pixel function to the global list of available pixel functions for derived bands.

This is the same as the c function GDALAddDerivedBandPixelFunc()

Parameters:
pszFuncName Name used to access pixel function
pfnNewFunction Pixel function associated with name. An existing pixel function registered with the same name will be replaced with the new one.
Returns:
CE_None, invalid (NULL) parameters are currently ignored.

References GDALAddDerivedBandPixelFunc().

GDALDerivedPixelFunc VRTDerivedRasterBand::GetPixelFunction ( const char *  pszFuncName  )  [static]

Get a pixel function previously registered using the global AddPixelFunction.

Parameters:
pszFuncName The name associated with the pixel function.
Returns:
A derived band pixel function, or NULL if none have been registered for pszFuncName.

Referenced by IRasterIO().

CPLErr VRTDerivedRasterBand::IRasterIO ( GDALRWFlag  eRWFlag,
int  nXOff,
int  nYOff,
int  nXSize,
int  nYSize,
void *  pData,
int  nBufXSize,
int  nBufYSize,
GDALDataType  eBufType,
int  nPixelSpace,
int  nLineSpace 
) [virtual]

Read/write a region of image data for this band.

Each of the sources for this derived band will be read and passed to the derived band pixel function. The pixel function is responsible for applying whatever algorithm is necessary to generate this band's pixels from the sources.

The sources will be read using the transfer type specified for sources using SetSourceTransferType(). If no transfer type has been set for this derived band, the band's data type will be used as the transfer type.

See also:
gdalrasterband
Parameters:
eRWFlag Either GF_Read to read a region of data, or GT_Write to write a region of data.
nXOff The pixel offset to the top left corner of the region of the band to be accessed. This would be zero to start from the left side.
nYOff The line offset to the top left corner of the region of the band to be accessed. This would be zero to start from the top.
nXSize The width of the region of the band to be accessed in pixels.
nYSize The height of the region of the band to be accessed in lines.
pData The buffer into which the data should be read, or from which it should be written. This buffer must contain at least nBufXSize * nBufYSize words of type eBufType. It is organized in left to right, top to bottom pixel order. Spacing is controlled by the nPixelSpace, and nLineSpace parameters.
nBufXSize The width of the buffer image into which the desired region is to be read, or from which it is to be written.
nBufYSize The height of the buffer image into which the desired region is to be read, or from which it is to be written.
eBufType The type of the pixel values in the pData data buffer. The pixel values will automatically be translated to/from the GDALRasterBand data type as needed.
nPixelSpace The byte offset from the start of one pixel value in pData to the start of the next pixel value within a scanline. If defaulted (0) the size of the datatype eBufType is used.
nLineSpace The byte offset from the start of one scanline in pData to the start of the next. If defaulted the size of the datatype eBufType * nBufXSize is used.
Returns:
CE_Failure if the access fails, otherwise CE_None.

Reimplemented from VRTSourcedRasterBand.

References GDALCopyWords(), GDALGetDataTypeSize(), GDT_Float64, GDALRasterBand::GetOverviewCount(), GetPixelFunction(), and GF_Write.

void VRTDerivedRasterBand::SetPixelFunctionName ( const char *  pszFuncName  ) 

Set the pixel function name to be applied to this derived band. The name should match a pixel function registered using AddPixelFunction.

Parameters:
pszFuncName Name of pixel function to be applied to this derived band.
void VRTDerivedRasterBand::SetSourceTransferType ( GDALDataType  eDataType  ) 

Set the transfer type to be used to obtain pixel information from all of the sources. If unset, the transfer type used will be the same as the derived band data type. This makes it possible, for example, to pass CFloat32 source pixels to the pixel function, even if the pixel function generates a raster for a derived band that is of type Byte.

Parameters:
eDataType Data type to use to obtain pixel information from the sources to be passed to the derived band pixel function.

The documentation for this class was generated from the following files:

Generated for GDAL by doxygen 1.6.2-20100208.