|
GDAL
|
00001 /****************************************************************************** 00002 * $Id: gdal_vrt.h 36558 2016-11-30 01:46:53Z goatbar $ 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 "cpl_error.h" 00040 #include "cpl_minixml.h" 00041 #include "cpl_port.h" 00042 #include "gdal.h" 00043 00045 #define VRT_NODATA_UNSET -1234.56 00046 00047 CPL_C_START 00048 00050 typedef CPLErr 00051 (*VRTImageReadFunc)( void *hCBData, 00052 int nXOff, int nYOff, int nXSize, int nYSize, 00053 void *pData ); 00054 00055 /* -------------------------------------------------------------------- */ 00056 /* Define handle types related to various VRT dataset classes. */ 00057 /* -------------------------------------------------------------------- */ 00059 typedef void *VRTAveragedSourceH; 00060 typedef void *VRTAverageFilteredSourceH; 00061 typedef void *VRTComplexSourceH; 00062 typedef void *VRTDerivedRasterBandH; 00063 typedef void *VRTDriverH; 00064 typedef void *VRTFilteredSourceH; 00065 typedef void *VRTFuncSourceH; 00066 typedef void *VRTKernelFilteredSourceH; 00067 typedef void *VRTRasterBandH; 00068 typedef void *VRTRawRasterBandH; 00069 typedef void *VRTSimpleSourceH; 00070 typedef void *VRTSourceH; 00071 typedef void *VRTWarpedDatasetH; 00072 typedef void *VRTWarpedRasterBandH; 00076 typedef void *VRTDatasetH; 00078 typedef void *VRTSourcedRasterBandH; 00079 00080 /* ==================================================================== */ 00081 /* VRTDataset class. */ 00082 /* ==================================================================== */ 00083 00084 VRTDatasetH CPL_DLL CPL_STDCALL VRTCreate( int, int ); 00085 void CPL_DLL CPL_STDCALL VRTFlushCache( VRTDatasetH ); 00086 CPLXMLNode CPL_DLL * CPL_STDCALL VRTSerializeToXML( VRTDatasetH, const char * ); 00087 int CPL_DLL CPL_STDCALL VRTAddBand( VRTDatasetH, GDALDataType, char ** ); 00088 00089 /* ==================================================================== */ 00090 /* VRTSourcedRasterBand class. */ 00091 /* ==================================================================== */ 00092 00093 CPLErr CPL_STDCALL VRTAddSource( VRTSourcedRasterBandH, VRTSourceH ); 00094 CPLErr CPL_DLL CPL_STDCALL VRTAddSimpleSource( VRTSourcedRasterBandH, 00095 GDALRasterBandH, 00096 int, int, int, int, 00097 int, int, int, int, 00098 const char *, double ); 00099 CPLErr CPL_DLL CPL_STDCALL VRTAddComplexSource( VRTSourcedRasterBandH, 00100 GDALRasterBandH, 00101 int, int, int, int, 00102 int, int, int, int, 00103 double, double, double ); 00104 CPLErr CPL_DLL CPL_STDCALL VRTAddFuncSource( VRTSourcedRasterBandH, 00105 VRTImageReadFunc, 00106 void *, double ); 00107 00108 CPL_C_END 00109 00110 #endif /* GDAL_VRT_H_INCLUDED */
1.7.6.1.