GDAL
Public Member Functions | Static Public Member Functions | Public Attributes
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)
 Read/write a region of image data for this band.
void SetPixelFunctionName (const char *pszFuncName)
 Set the pixel function name to be applied to this derived band.
void SetSourceTransferType (GDALDataType eDataType)
 Set the transfer type to be used to obtain pixel information from all of the sources.
virtual CPLErr XMLInit (CPLXMLNode *, const char *)
virtual CPLXMLNodeSerializeToXML (const char *pszVRTPath)

Static Public Member Functions

static CPLErr AddPixelFunction (const char *pszFuncName, GDALDerivedPixelFunc pfnPixelFunc)
 This adds a pixel function to the global list of available pixel functions for derived bands.
static GDALDerivedPixelFunc GetPixelFunction (const char *pszFuncName)
 Get a pixel function previously registered using the global AddPixelFunction.

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:
pszFuncNameName used to access pixel function
pfnNewFunctionPixel 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:
pszFuncNameThe 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:
eRWFlagEither GF_Read to read a region of data, or GT_Write to write a region of data.
nXOffThe 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.
nYOffThe 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.
nXSizeThe width of the region of the band to be accessed in pixels.
nYSizeThe height of the region of the band to be accessed in lines.
pDataThe 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.
nBufXSizeThe width of the buffer image into which the desired region is to be read, or from which it is to be written.
nBufYSizeThe height of the buffer image into which the desired region is to be read, or from which it is to be written.
eBufTypeThe 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.
nPixelSpaceThe 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.
nLineSpaceThe 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 GF_Write, GDALGetDataTypeSize(), GDT_Unknown, GDT_Float64, GDALRasterBand::GetOverviewCount(), and GetPixelFunction().

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:
pszFuncNameName 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:
eDataTypeData 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.7.5.