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 CPLXMLNode * | SerializeToXML (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 |
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()
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. |
References GDALAddDerivedBandPixelFunc().
GDALDerivedPixelFunc VRTDerivedRasterBand::GetPixelFunction | ( | const char * | pszFuncName | ) | [static] |
Get a pixel function previously registered using the global AddPixelFunction.
pszFuncName | The name associated with the pixel function. |
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.
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. |
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.
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.
eDataType | Data type to use to obtain pixel information from the sources to be passed to the derived band pixel function. |