GDAL
gdal_vrt.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: gdal_vrt.h 36558 2016-11-30 01:46:53Z goatbar $
3  *
4  * Project: Virtual GDAL Datasets
5  * Purpose: C/Public declarations of virtual GDAL dataset objects.
6  * Author: Andrey Kiselev, dron@ak4719.spb.edu
7  *
8  ******************************************************************************
9  * Copyright (c) 2007, Andrey Kiselev <dron@ak4719.spb.edu>
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  ****************************************************************************/
29 
30 #ifndef GDAL_VRT_H_INCLUDED
31 #define GDAL_VRT_H_INCLUDED
32 
39 #include "cpl_error.h"
40 #include "cpl_minixml.h"
41 #include "cpl_port.h"
42 #include "gdal.h"
43 
45 #define VRT_NODATA_UNSET -1234.56
46 
48 
50 typedef CPLErr
51 (*VRTImageReadFunc)( void *hCBData,
52  int nXOff, int nYOff, int nXSize, int nYSize,
53  void *pData );
54 
55 /* -------------------------------------------------------------------- */
56 /* Define handle types related to various VRT dataset classes. */
57 /* -------------------------------------------------------------------- */
59 typedef void *VRTAveragedSourceH;
60 typedef void *VRTAverageFilteredSourceH;
61 typedef void *VRTComplexSourceH;
62 typedef void *VRTDerivedRasterBandH;
63 typedef void *VRTDriverH;
64 typedef void *VRTFilteredSourceH;
65 typedef void *VRTFuncSourceH;
66 typedef void *VRTKernelFilteredSourceH;
67 typedef void *VRTRasterBandH;
68 typedef void *VRTRawRasterBandH;
69 typedef void *VRTSimpleSourceH;
70 typedef void *VRTSourceH;
71 typedef void *VRTWarpedDatasetH;
72 typedef void *VRTWarpedRasterBandH;
76 typedef void *VRTDatasetH;
78 typedef void *VRTSourcedRasterBandH;
79 
80 /* ==================================================================== */
81 /* VRTDataset class. */
82 /* ==================================================================== */
83 
84 VRTDatasetH CPL_DLL CPL_STDCALL VRTCreate( int, int );
85 void CPL_DLL CPL_STDCALL VRTFlushCache( VRTDatasetH );
86 CPLXMLNode CPL_DLL * CPL_STDCALL VRTSerializeToXML( VRTDatasetH, const char * );
87 int CPL_DLL CPL_STDCALL VRTAddBand( VRTDatasetH, GDALDataType, char ** );
88 
89 /* ==================================================================== */
90 /* VRTSourcedRasterBand class. */
91 /* ==================================================================== */
92 
93 CPLErr CPL_STDCALL VRTAddSource( VRTSourcedRasterBandH, VRTSourceH );
94 CPLErr CPL_DLL CPL_STDCALL VRTAddSimpleSource( VRTSourcedRasterBandH,
96  int, int, int, int,
97  int, int, int, int,
98  const char *, double );
99 CPLErr CPL_DLL CPL_STDCALL VRTAddComplexSource( VRTSourcedRasterBandH,
101  int, int, int, int,
102  int, int, int, int,
103  double, double, double );
104 CPLErr CPL_DLL CPL_STDCALL VRTAddFuncSource( VRTSourcedRasterBandH,
106  void *, double );
107 
108 CPL_C_END
109 
110 #endif /* GDAL_VRT_H_INCLUDED */
CPLErr(* VRTImageReadFunc)(void *hCBData, int nXOff, int nYOff, int nXSize, int nYSize, void *pData)
Type for a function that returns the pixel data in a provided window.
Definition: gdal_vrt.h:51
GDALDataType
Definition: gdal.h:57
Document node structure.
Definition: cpl_minixml.h:66
Definitions for CPL mini XML Parser/Serializer.
Core portability definitions for CPL.
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:352
CPLErr VRTAddSimpleSource(VRTSourcedRasterBandH, GDALRasterBandH, int, int, int, int, int, int, int, int, const char *, double)
Definition: vrtsourcedrasterband.cpp:1186
VRTDatasetH VRTCreate(int, int)
Definition: vrtdataset.cpp:86
void * GDALRasterBandH
Opaque type used for the C bindings of the C++ GDALRasterBand class.
Definition: gdal.h:244
CPLErr VRTAddSource(VRTSourcedRasterBandH, VRTSourceH)
Definition: vrtsourcedrasterband.cpp:928
CPLErr VRTAddFuncSource(VRTSourcedRasterBandH, VRTImageReadFunc, void *, double)
Definition: vrtsourcedrasterband.cpp:1324
int VRTAddBand(VRTDatasetH, GDALDataType, char **)
Definition: vrtdataset.cpp:1105
CPLXMLNode * VRTSerializeToXML(VRTDatasetH, const char *)
Definition: vrtdataset.cpp:329
Public (C callable) GDAL entry points.
CPL error handling services.
void * VRTSourcedRasterBandH
Opaque type for a VRT sourced raster band.
Definition: gdal_vrt.h:78
CPLErr VRTAddComplexSource(VRTSourcedRasterBandH, GDALRasterBandH, int, int, int, int, int, int, int, int, double, double, double)
Definition: vrtsourcedrasterband.cpp:1265
void VRTFlushCache(VRTDatasetH)
Definition: vrtdataset.cpp:218
void * VRTDatasetH
Opaque type for a VRT dataset.
Definition: gdal_vrt.h:76
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:354
CPLErr
Error category.
Definition: cpl_error.h:52

Generated for GDAL by doxygen 1.8.8.