GDAL
|
00001 /****************************************************************************** 00002 * $Id: gdal_vrt.h 12156 2007-09-14 14:05:58Z dron $ 00003 * 00004 * Project: Virtual GDAL Datasets 00005 * Purpose: C/Public declarations of virtual GDAL dataset objects. 00006 * Author: Andrey Kiselev, dron@ak4719.spb.edu 00007 * 00008 ****************************************************************************** 00009 * Copyright (c) 2007, Andrey Kiselev <dron@ak4719.spb.edu> 00010 * 00011 * Permission is hereby granted, free of charge, to any person obtaining a 00012 * copy of this software and associated documentation files (the "Software"), 00013 * to deal in the Software without restriction, including without limitation 00014 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00015 * and/or sell copies of the Software, and to permit persons to whom the 00016 * Software is furnished to do so, subject to the following conditions: 00017 * 00018 * The above copyright notice and this permission notice shall be included 00019 * in all copies or substantial portions of the Software. 00020 * 00021 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00022 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00023 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00024 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00025 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00026 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00027 * DEALINGS IN THE SOFTWARE. 00028 ****************************************************************************/ 00029 00030 #ifndef GDAL_VRT_H_INCLUDED 00031 #define GDAL_VRT_H_INCLUDED 00032 00039 #include "gdal.h" 00040 #include "cpl_port.h" 00041 #include "cpl_error.h" 00042 #include "cpl_minixml.h" 00043 00044 #define VRT_NODATA_UNSET -1234.56 00045 00046 CPL_C_START 00047 00048 void GDALRegister_VRT(void); 00049 typedef CPLErr 00050 (*VRTImageReadFunc)( void *hCBData, 00051 int nXOff, int nYOff, int nXSize, int nYSize, 00052 void *pData ); 00053 00054 /* -------------------------------------------------------------------- */ 00055 /* Define handle types related to various VRT dataset classes. */ 00056 /* -------------------------------------------------------------------- */ 00057 typedef void *VRTDriverH; 00058 typedef void *VRTSourceH; 00059 typedef void *VRTSimpleSourceH; 00060 typedef void *VRTAveragedSourceH; 00061 typedef void *VRTComplexSourceH; 00062 typedef void *VRTFilteredSourceH; 00063 typedef void *VRTKernelFilteredSourceH; 00064 typedef void *VRTAverageFilteredSourceH; 00065 typedef void *VRTFuncSourceH; 00066 typedef void *VRTDatasetH; 00067 typedef void *VRTWarpedDatasetH; 00068 typedef void *VRTRasterBandH; 00069 typedef void *VRTSourcedRasterBandH; 00070 typedef void *VRTWarpedRasterBandH; 00071 typedef void *VRTDerivedRasterBandH; 00072 typedef void *VRTRawRasterBandH; 00073 00074 /* ==================================================================== */ 00075 /* VRTDataset class. */ 00076 /* ==================================================================== */ 00077 00078 VRTDatasetH CPL_DLL CPL_STDCALL VRTCreate( int, int ); 00079 void CPL_DLL CPL_STDCALL VRTFlushCache( VRTDatasetH ); 00080 CPLXMLNode CPL_DLL * CPL_STDCALL VRTSerializeToXML( VRTDatasetH, const char * ); 00081 int CPL_DLL CPL_STDCALL VRTAddBand( VRTDatasetH, GDALDataType, char ** ); 00082 00083 /* ==================================================================== */ 00084 /* VRTSourcedRasterBand class. */ 00085 /* ==================================================================== */ 00086 00087 CPLErr CPL_STDCALL VRTAddSource( VRTSourcedRasterBandH, VRTSourceH ); 00088 CPLErr CPL_DLL CPL_STDCALL VRTAddSimpleSource( VRTSourcedRasterBandH, 00089 GDALRasterBandH, 00090 int, int, int, int, 00091 int, int, int, int, 00092 const char *, double ); 00093 CPLErr CPL_DLL CPL_STDCALL VRTAddComplexSource( VRTSourcedRasterBandH, 00094 GDALRasterBandH, 00095 int, int, int, int, 00096 int, int, int, int, 00097 double, double, double ); 00098 CPLErr CPL_DLL CPL_STDCALL VRTAddFuncSource( VRTSourcedRasterBandH, 00099 VRTImageReadFunc, 00100 void *, double ); 00101 00102 CPL_C_END 00103 00104 #endif /* GDAL_VRT_H_INCLUDED */ 00105