- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

# gdal.h

Go to the documentation of this file.

    00001 /******************************************************************************
    00002  * $Id: gdal.h 29330 2015-06-14 12:11:11Z rouault $
    00003  *
    00004  * Project:  GDAL Core
    00005  * Purpose:  GDAL Core C/Public declarations.
    00006  * Author:   Frank Warmerdam, warmerdam@pobox.com
    00007  *
    00008  ******************************************************************************
    00009  * Copyright (c) 1998, 2002 Frank Warmerdam
    00010  * Copyright (c) 2007-2014, Even Rouault <even dot rouault at mines-paris dot org>
    00011  *
    00012  * Permission is hereby granted, free of charge, to any person obtaining a
    00013  * copy of this software and associated documentation files (the "Software"),
    00014  * to deal in the Software without restriction, including without limitation
    00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    00016  * and/or sell copies of the Software, and to permit persons to whom the
    00017  * Software is furnished to do so, subject to the following conditions:
    00018  *
    00019  * The above copyright notice and this permission notice shall be included
    00020  * in all copies or substantial portions of the Software.
    00021  *
    00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    00023  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    00025  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    00026  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    00027  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    00028  * DEALINGS IN THE SOFTWARE.
    00029  ****************************************************************************/
    00030
    00031 #ifndef GDAL_H_INCLUDED
    00032 #define GDAL_H_INCLUDED
    00033
    00040 #ifndef DOXYGEN_SKIP
    00041 #include "gdal_version.h"
    00042 #include "cpl_port.h"
    00043 #include "cpl_error.h"
    00044 #include "cpl_progress.h"
    00045 #include "cpl_virtualmem.h"
    00046 #include "cpl_minixml.h"
    00047 #include "ogr_api.h"
    00048 #endif
    00049
    00050 /* -------------------------------------------------------------------- */
    00051 /*      Significant constants.                                          */
    00052 /* -------------------------------------------------------------------- */
    00053
    00054 CPL_C_START
    00055
    00057 typedef enum {              GDT_Unknown = 0,           GDT_Byte = 1,         GDT_UInt16 = 2,           GDT_Int16 = 3,      GDT_UInt32 = 4,        GDT_Int32 = 5,        GDT_Float32 = 6,        GDT_Float64 = 7,                        GDT_CInt16 = 8,                        GDT_CInt32 = 9,                      GDT_CFloat32 = 10,                      GDT_CFloat64 = 11,
    00070     GDT_TypeCount = 12          /* maximum type # + 1 */
    00071 } GDALDataType;
    00072
    00073 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
    00074 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
    00075 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
    00076 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
    00077 GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType );
    00078
    00082 typedef enum
    00083 {
    00084         GARIO_PENDING = 0,
    00085         GARIO_UPDATE = 1,
    00086         GARIO_ERROR = 2,
    00087         GARIO_COMPLETE = 3,
    00088         GARIO_TypeCount = 4
    00089 } GDALAsyncStatusType;
    00090
    00091 const char CPL_DLL * CPL_STDCALL GDALGetAsyncStatusTypeName( GDALAsyncStatusType );
    00092 GDALAsyncStatusType CPL_DLL CPL_STDCALL GDALGetAsyncStatusTypeByName( const char * );
    00093
    00095 typedef enum { GA_ReadOnly = 0,           GA_Update = 1
    00098 } GDALAccess;
    00099
    00101 typedef enum {   GF_Read = 0,  GF_Write = 1
    00104 } GDALRWFlag;
    00105
    00106 /* NOTE: values are selected to be consistent with GDALResampleAlg of alg/gdalwarper.h */
    00110 typedef enum
    00111 {                            GRIORA_NearestNeighbour = 0,                        GRIORA_Bilinear = 1, GRIORA_Cubic = 2,    GRIORA_CubicSpline = 3, GRIORA_Lanczos = 4,                                      GRIORA_Average = 5,
    00119                                                         GRIORA_Mode = 6,                               GRIORA_Gauss = 7
    00121     /* NOTE: values 8 to 12 are reserved for max,min,med,Q1,Q3 */
    00122 } GDALRIOResampleAlg;
    00123
    00124 /* NOTE to developers: only add members, and if so edit INIT_RASTERIO_EXTRA_ARG */
    00125 /* and INIT_RASTERIO_EXTRA_ARG */
    00129 typedef struct
    00130 {
    00132     int                    nVersion;
    00133
    00135     GDALRIOResampleAlg     eResampleAlg;
    00136
    00138     GDALProgressFunc       pfnProgress;
    00140     void                  *pProgressData;
    00141
    00146     int                    bFloatingPointWindowValidity;
    00148     double                 dfXOff;
    00150     double                 dfYOff;
    00152     double                 dfXSize;
    00154     double                 dfYSize;
    00155 } GDALRasterIOExtraArg;
    00156
    00157 #define RASTERIO_EXTRA_ARG_CURRENT_VERSION  1
    00158
    00162 #define INIT_RASTERIO_EXTRA_ARG(s)  \
    00163     do { (s).nVersion = RASTERIO_EXTRA_ARG_CURRENT_VERSION; \
    00164          (s).eResampleAlg = GRIORA_NearestNeighbour; \
    00165          (s).pfnProgress = NULL; \
    00166          (s).pProgressData = NULL; \
    00167          (s).bFloatingPointWindowValidity = FALSE; } while(0)
    00168
    00170 typedef enum
    00171 {
    00172     GCI_Undefined=0,                                      GCI_GrayIndex=1,          GCI_PaletteIndex=2,                         GCI_RedBand=3,                       GCI_GreenBand=4,                        GCI_BlueBand=5,              GCI_AlphaBand=6,                          GCI_HueBand=7,                   GCI_SaturationBand=8,                    GCI_LightnessBand=9,                        GCI_CyanBand=10,                     GCI_MagentaBand=11,                      GCI_YellowBand=12,                       GCI_BlackBand=13,                                    GCI_YCbCr_YBand=14,                                      GCI_YCbCr_CbBand=15,                                      GCI_YCbCr_CrBand=16,                              GCI_Max=16
    00190 } GDALColorInterp;
    00191
    00192 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
    00193 GDALColorInterp CPL_DLL GDALGetColorInterpretationByName( const char *pszName );
    00194
    00196 typedef enum
    00197 {                      GPI_Gray=0,  GPI_RGB=1, GPI_CMYK=2,     GPI_HLS=3
    00202 } GDALPaletteInterp;
    00203
    00204 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
    00205
    00206 /* "well known" metadata items. */
    00207
    00208 #define GDALMD_AREA_OR_POINT   "AREA_OR_POINT"
    00209 #  define GDALMD_AOP_AREA      "Area"
    00210 #  define GDALMD_AOP_POINT     "Point"
    00211
    00212 /* -------------------------------------------------------------------- */
    00213 /*      GDAL Specific error codes.                                      */
    00214 /*                                                                      */
    00215 /*      error codes 100 to 299 reserved for GDAL.                       */
    00216 /* -------------------------------------------------------------------- */
    00217 #define CPLE_WrongFormat        200
    00218
    00219 /* -------------------------------------------------------------------- */
    00220 /*      Define handle types related to various internal classes.        */
    00221 /* -------------------------------------------------------------------- */
    00222
    00224 typedef void *GDALMajorObjectH;
    00225
    00227 typedef void *GDALDatasetH;
    00228
    00230 typedef void *GDALRasterBandH;
    00231
    00233 typedef void *GDALDriverH;
    00234
    00236 typedef void *GDALColorTableH;
    00237
    00239 typedef void *GDALRasterAttributeTableH;
    00240
    00242 typedef void *GDALAsyncReaderH;
    00243
    00245 typedef GIntBig GSpacing;
    00246
    00247 /* ==================================================================== */
    00248 /*      Registration/driver related.                                    */
    00249 /* ==================================================================== */
    00250
    00252 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
    00253
    00255 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
    00256
    00258 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
    00259
    00261 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
    00262
    00267 #define GDAL_DMD_CONNECTION_PREFIX "DMD_CONNECTION_PREFIX"
    00268
    00272 #define GDAL_DMD_EXTENSIONS "DMD_EXTENSIONS"
    00273
    00275 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
    00276
    00280 #define GDAL_DMD_OPENOPTIONLIST "DMD_OPENOPTIONLIST"
    00281
    00283 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
    00284
    00288 #define GDAL_DMD_CREATIONFIELDDATATYPES "DMD_CREATIONFIELDDATATYPES"
    00289
    00291 #define GDAL_DMD_SUBDATASETS "DMD_SUBDATASETS"
    00292
    00294 #define GDAL_DCAP_OPEN       "DCAP_OPEN"
    00295
    00297 #define GDAL_DCAP_CREATE     "DCAP_CREATE"
    00298
    00300 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
    00301
    00303 #define GDAL_DCAP_VIRTUALIO  "DCAP_VIRTUALIO"
    00304
    00308 #define GDAL_DCAP_RASTER     "DCAP_RASTER"
    00309
    00313 #define GDAL_DCAP_VECTOR     "DCAP_VECTOR"
    00314
    00318 #define GDAL_DCAP_NOTNULL_FIELDS "DCAP_NOTNULL_FIELDS"
    00319
    00323 #define GDAL_DCAP_DEFAULT_FIELDS "DCAP_DEFAULT_FIELDS"
    00324
    00328 #define GDAL_DCAP_NOTNULL_GEOMFIELDS "DCAP_NOTNULL_GEOMFIELDS"
    00329
    00330 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
    00331
    00332 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
    00333                                  const char *, int, int, int, GDALDataType,
    00334                                  char ** ) CPL_WARN_UNUSED_RESULT;
    00335 GDALDatasetH CPL_DLL CPL_STDCALL
    00336 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
    00337                 int, char **, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT;
    00338
    00339 GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename,
    00340                                             char ** papszFileList );
    00341 GDALDatasetH CPL_DLL CPL_STDCALL
    00342 GDALOpen( const char *pszFilename, GDALAccess eAccess ) CPL_WARN_UNUSED_RESULT;
    00343 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess ) CPL_WARN_UNUSED_RESULT;
    00344
    00345
    00346 /* Note: we define GDAL_OF_READONLY and GDAL_OF_UPDATE to be on purpose */
    00347 /* equals to GA_ReadOnly and GA_Update */
    00348
    00353 #define     GDAL_OF_READONLY        0x00
    00354
    00359 #define     GDAL_OF_UPDATE          0x01
    00360
    00365 #define     GDAL_OF_ALL             0x00
    00366
    00371 #define     GDAL_OF_RASTER          0x02
    00372
    00377 #define     GDAL_OF_VECTOR          0x04
    00378 /* Some space for GDAL 3.0 new types ;-) */
    00379 /*#define     GDAL_OF_OTHER_KIND1   0x08 */
    00380 /*#define     GDAL_OF_OTHER_KIND2   0x10 */
    00381 #ifndef DOXYGEN_SKIP
    00382 #define     GDAL_OF_KIND_MASK       0x1E
    00383 #endif
    00384
    00389 #define     GDAL_OF_SHARED          0x20
    00390
    00395 #define     GDAL_OF_VERBOSE_ERROR   0x40
    00396
    00403 #define     GDAL_OF_INTERNAL        0x80
    00404
    00405 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenEx( const char* pszFilename,
    00406                                              unsigned int nOpenFlags,
    00407                                              const char* const* papszAllowedDrivers,
    00408                                              const char* const* papszOpenOptions,
    00409                                              const char* const* papszSiblingFiles ) CPL_WARN_UNUSED_RESULT;
    00410
    00411 int          CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
    00412
    00413 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
    00414 int CPL_DLL         CPL_STDCALL GDALGetDriverCount( void );
    00415 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
    00416 void        CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH );
    00417 int         CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
    00418 void        CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
    00419 void        CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
    00420 void        CPL_DLL             GDALDestroy( void );
    00421 CPLErr      CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
    00422 CPLErr      CPL_DLL CPL_STDCALL GDALRenameDataset( GDALDriverH,
    00423                                                    const char * pszNewName,
    00424                                                    const char * pszOldName );
    00425 CPLErr      CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH,
    00426                                                       const char * pszNewName,
    00427                                                       const char * pszOldName);
    00428 int         CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH,
    00429                                                              char** papszCreationOptions);
    00430
    00431 /* The following are deprecated */
    00432 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
    00433 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
    00434 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
    00435 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
    00436
    00437 /* ==================================================================== */
    00438 /*      GDAL_GCP                                                        */
    00439 /* ==================================================================== */
    00440
    00442 typedef struct
    00443 {
    00445     char        *pszId;
    00446
    00448     char        *pszInfo;
    00449
    00451     double      dfGCPPixel;
    00453     double      dfGCPLine;
    00454
    00456     double      dfGCPX;
    00457
    00459     double      dfGCPY;
    00460
    00462     double      dfGCPZ;
    00463 } GDAL_GCP;
    00464
    00465 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
    00466 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
    00467 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
    00468
    00469 int CPL_DLL CPL_STDCALL
    00470 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
    00471                         double *padfGeoTransform, int bApproxOK )  CPL_WARN_UNUSED_RESULT;
    00472 int CPL_DLL CPL_STDCALL
    00473 GDALInvGeoTransform( double *padfGeoTransformIn,
    00474                      double *padfInvGeoTransformOut ) CPL_WARN_UNUSED_RESULT;
    00475 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
    00476                                                 double *, double * );
    00477 void CPL_DLL GDALComposeGeoTransforms(const double *padfGeoTransform1,
    00478                                       const double *padfGeoTransform2,
    00479                                       double *padfGeoTransformOut);
    00480
    00481 /* ==================================================================== */
    00482 /*      major objects (dataset, and, driver, drivermanager).            */
    00483 /* ==================================================================== */
    00484
    00485 char CPL_DLL  ** CPL_STDCALL GDALGetMetadataDomainList( GDALMajorObjectH hObject );
    00486 char CPL_DLL  ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
    00487 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
    00488                                             const char * );
    00489 const char CPL_DLL * CPL_STDCALL
    00490 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
    00491 CPLErr CPL_DLL CPL_STDCALL
    00492 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
    00493                      const char * );
    00494 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
    00495 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
    00496
    00497 /* ==================================================================== */
    00498 /*      GDALDataset class ... normally this represents one file.        */
    00499 /* ==================================================================== */
    00500
    00501 #define GDAL_DS_LAYER_CREATIONOPTIONLIST "DS_LAYER_CREATIONOPTIONLIST"
    00502
    00503 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
    00504 char CPL_DLL ** CPL_STDCALL GDALGetFileList( GDALDatasetH );
    00505 void CPL_DLL CPL_STDCALL   GDALClose( GDALDatasetH );
    00506 int CPL_DLL CPL_STDCALL     GDALGetRasterXSize( GDALDatasetH );
    00507 int CPL_DLL CPL_STDCALL     GDALGetRasterYSize( GDALDatasetH );
    00508 int CPL_DLL CPL_STDCALL     GDALGetRasterCount( GDALDatasetH );
    00509 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
    00510
    00511 CPLErr CPL_DLL  CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
    00512                              char **papszOptions );
    00513
    00514 GDALAsyncReaderH CPL_DLL CPL_STDCALL
    00515 GDALBeginAsyncReader(GDALDatasetH hDS, int nXOff, int nYOff,
    00516                      int nXSize, int nYSize,
    00517                      void *pBuf, int nBufXSize, int nBufYSize,
    00518                      GDALDataType eBufType, int nBandCount, int* panBandMap,
    00519                      int nPixelSpace, int nLineSpace, int nBandSpace,
    00520                      char **papszOptions);
    00521
    00522 void  CPL_DLL CPL_STDCALL
    00523 GDALEndAsyncReader(GDALDatasetH hDS, GDALAsyncReaderH hAsynchReaderH);
    00524
    00525 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
    00526     GDALDatasetH hDS, GDALRWFlag eRWFlag,
    00527     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00528     void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
    00529     int nBandCount, int *panBandCount,
    00530     int nPixelSpace, int nLineSpace, int nBandSpace);
    00531
    00532 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIOEx(
    00533     GDALDatasetH hDS, GDALRWFlag eRWFlag,
    00534     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00535     void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
    00536     int nBandCount, int *panBandCount,
    00537     GSpacing nPixelSpace, GSpacing nLineSpace, GSpacing nBandSpace,
    00538     GDALRasterIOExtraArg* psExtraArg);
    00539
    00540 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
    00541     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00542     int nBXSize, int nBYSize, GDALDataType eBDataType,
    00543     int nBandCount, int *panBandCount, char **papszOptions );
    00544
    00545 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
    00546 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
    00547 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
    00548 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
    00549
    00550 int CPL_DLL CPL_STDCALL  GDALGetGCPCount( GDALDatasetH );
    00551 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
    00552 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
    00553 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
    00554                                         const char * );
    00555
    00556 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
    00557 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
    00558 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
    00559
    00560 CPLErr CPL_DLL CPL_STDCALL
    00561 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
    00562                     int, int *, GDALProgressFunc, void * );
    00563 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
    00564 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
    00565 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
    00566
    00567 CPLErr CPL_DLL CPL_STDCALL
    00568               GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags );
    00569
    00570 CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster(
    00571     GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions,
    00572     GDALProgressFunc pfnProgress, void *pProgressData );
    00573
    00574 CPLErr CPL_DLL CPL_STDCALL GDALRasterBandCopyWholeRaster(
    00575     GDALRasterBandH hSrcBand, GDALRasterBandH hDstBand, char **papszOptions,
    00576     GDALProgressFunc pfnProgress, void *pProgressData );
    00577
    00578 CPLErr CPL_DLL
    00579 GDALRegenerateOverviews( GDALRasterBandH hSrcBand,
    00580                          int nOverviewCount, GDALRasterBandH *pahOverviewBands,
    00581                          const char *pszResampling,
    00582                          GDALProgressFunc pfnProgress, void *pProgressData );
    00583
    00584 int    CPL_DLL GDALDatasetGetLayerCount( GDALDatasetH );
    00585 OGRLayerH CPL_DLL GDALDatasetGetLayer( GDALDatasetH, int );
    00586 OGRLayerH CPL_DLL GDALDatasetGetLayerByName( GDALDatasetH, const char * );
    00587 OGRErr    CPL_DLL GDALDatasetDeleteLayer( GDALDatasetH, int );
    00588 OGRLayerH CPL_DLL GDALDatasetCreateLayer( GDALDatasetH, const char *,
    00589                                       OGRSpatialReferenceH, OGRwkbGeometryType,
    00590                                       char ** );
    00591 OGRLayerH CPL_DLL GDALDatasetCopyLayer( GDALDatasetH, OGRLayerH, const char *,
    00592                                         char ** );
    00593 int    CPL_DLL GDALDatasetTestCapability( GDALDatasetH, const char * );
    00594 OGRLayerH CPL_DLL GDALDatasetExecuteSQL( GDALDatasetH, const char *,
    00595                                      OGRGeometryH, const char * );
    00596 void   CPL_DLL GDALDatasetReleaseResultSet( GDALDatasetH, OGRLayerH );
    00597 OGRStyleTableH CPL_DLL GDALDatasetGetStyleTable( GDALDatasetH );
    00598 void   CPL_DLL GDALDatasetSetStyleTableDirectly( GDALDatasetH, OGRStyleTableH );
    00599 void   CPL_DLL GDALDatasetSetStyleTable( GDALDatasetH, OGRStyleTableH );
    00600 OGRErr CPL_DLL GDALDatasetStartTransaction(GDALDatasetH hDS, int bForce);
    00601 OGRErr CPL_DLL GDALDatasetCommitTransaction(GDALDatasetH hDS);
    00602 OGRErr CPL_DLL GDALDatasetRollbackTransaction(GDALDatasetH hDS);
    00603
    00604
    00605 /* ==================================================================== */
    00606 /*      GDALRasterBand ... one band/channel in a dataset.               */
    00607 /* ==================================================================== */
    00608
    00613 #define SRCVAL(papoSource, eSrcType, ii) \
    00614       (eSrcType == GDT_Byte ? \
    00615           ((GByte *)papoSource)[ii] : \
    00616       (eSrcType == GDT_Float32 ? \
    00617           ((float *)papoSource)[ii] : \
    00618       (eSrcType == GDT_Float64 ? \
    00619           ((double *)papoSource)[ii] : \
    00620       (eSrcType == GDT_Int32 ? \
    00621           ((GInt32 *)papoSource)[ii] : \
    00622       (eSrcType == GDT_UInt16 ? \
    00623           ((GUInt16 *)papoSource)[ii] : \
    00624       (eSrcType == GDT_Int16 ? \
    00625           ((GInt16 *)papoSource)[ii] : \
    00626       (eSrcType == GDT_UInt32 ? \
    00627           ((GUInt32 *)papoSource)[ii] : \
    00628       (eSrcType == GDT_CInt16 ? \
    00629           ((GInt16 *)papoSource)[ii * 2] : \
    00630       (eSrcType == GDT_CInt32 ? \
    00631           ((GInt32 *)papoSource)[ii * 2] : \
    00632       (eSrcType == GDT_CFloat32 ? \
    00633           ((float *)papoSource)[ii * 2] : \
    00634       (eSrcType == GDT_CFloat64 ? \
    00635           ((double *)papoSource)[ii * 2] : 0)))))))))))
    00636
    00637 typedef CPLErr
    00638 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
    00639                         int nBufXSize, int nBufYSize,
    00640                         GDALDataType eSrcType, GDALDataType eBufType,
    00641                         int nPixelSpace, int nLineSpace);
    00642
    00643 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
    00644 void CPL_DLL CPL_STDCALL
    00645 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
    00646
    00647 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
    00648     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00649     int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
    00650
    00651 CPLErr CPL_DLL CPL_STDCALL
    00652 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
    00653               int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00654               void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
    00655               int nPixelSpace, int nLineSpace );
    00656 CPLErr CPL_DLL CPL_STDCALL
    00657 GDALRasterIOEx( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
    00658               int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
    00659               void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
    00660               GSpacing nPixelSpace, GSpacing nLineSpace,
    00661               GDALRasterIOExtraArg* psExtraArg );
    00662 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
    00663 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
    00664 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
    00665 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
    00666 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
    00667 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
    00668 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
    00669
    00670 GDALColorInterp CPL_DLL CPL_STDCALL
    00671 GDALGetRasterColorInterpretation( GDALRasterBandH );
    00672 CPLErr CPL_DLL CPL_STDCALL
    00673 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
    00674 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
    00675 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
    00676 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
    00677 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
    00678 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
    00679 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
    00680 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
    00681 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
    00682 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
    00683 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
    00684 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
    00685 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
    00686     GDALRasterBandH, int bApproxOK, int bForce,
    00687     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
    00688 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
    00689     GDALRasterBandH, int bApproxOK,
    00690     double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
    00691     GDALProgressFunc pfnProgress, void *pProgressData );
    00692 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
    00693     GDALRasterBandH hBand,
    00694     double dfMin, double dfMax, double dfMean, double dfStdDev );
    00695
    00696 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
    00697 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterUnitType( GDALRasterBandH hBand, const char *pszNewValue );
    00698 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
    00699 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
    00700 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
    00701 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
    00702 void CPL_DLL CPL_STDCALL
    00703 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
    00704                          double adfMinMax[2] );
    00705 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
    00706 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
    00707                                        double dfMin, double dfMax,
    00708                                        int nBuckets, int *panHistogram,
    00709                                        int bIncludeOutOfRange, int bApproxOK,
    00710                                        GDALProgressFunc pfnProgress,
    00711                                        void * pProgressData ) CPL_WARN_DEPRECATED("Use GDALGetRasterHistogramEx() instead");
    00712 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogramEx( GDALRasterBandH hBand,
    00713                                        double dfMin, double dfMax,
    00714                                        int nBuckets, GUIntBig *panHistogram,
    00715                                        int bIncludeOutOfRange, int bApproxOK,
    00716                                        GDALProgressFunc pfnProgress,
    00717                                        void * pProgressData );
    00718 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
    00719                                        double *pdfMin, double *pdfMax,
    00720                                        int *pnBuckets, int **ppanHistogram,
    00721                                        int bForce,
    00722                                        GDALProgressFunc pfnProgress,
    00723                                        void * pProgressData ) CPL_WARN_DEPRECATED("Use GDALGetDefaultHistogramEx() instead");
    00724 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogramEx( GDALRasterBandH hBand,
    00725                                        double *pdfMin, double *pdfMax,
    00726                                        int *pnBuckets, GUIntBig **ppanHistogram,
    00727                                        int bForce,
    00728                                        GDALProgressFunc pfnProgress,
    00729                                        void * pProgressData );
    00730 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
    00731                                        double dfMin, double dfMax,
    00732                                        int nBuckets, int *panHistogram ) CPL_WARN_DEPRECATED("Use GDALSetDefaultHistogramEx() instead");
    00733 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogramEx( GDALRasterBandH hBand,
    00734                                        double dfMin, double dfMax,
    00735                                        int nBuckets, GUIntBig *panHistogram );
    00736 int CPL_DLL CPL_STDCALL
    00737 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
    00738 GDALRasterBandH CPL_DLL CPL_STDCALL
    00739 GDALGetRasterSampleOverview( GDALRasterBandH, int );
    00740 GDALRasterBandH CPL_DLL CPL_STDCALL
    00741 GDALGetRasterSampleOverviewEx( GDALRasterBandH, GUIntBig );
    00742 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
    00743                           double dfRealValue, double dfImaginaryValue );
    00744 CPLErr CPL_DLL CPL_STDCALL
    00745 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
    00746                              double *pdfMean, double *pdfStdDev,
    00747                              GDALProgressFunc pfnProgress,
    00748                              void *pProgressData );
    00749 CPLErr CPL_DLL  GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
    00750                                         int nOverviewCount,
    00751                                         GDALRasterBandH *pahOverviews,
    00752                                         GDALProgressFunc pfnProgress,
    00753                                         void *pProgressData );
    00754
    00755 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
    00756     GDALRasterBandH hBand );
    00757 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
    00758                                               GDALRasterAttributeTableH );
    00759 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
    00760                                     GDALDerivedPixelFunc pfnPixelFunc );
    00761
    00762 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetMaskBand( GDALRasterBandH hBand );
    00763 int CPL_DLL CPL_STDCALL GDALGetMaskFlags( GDALRasterBandH hBand );
    00764 CPLErr CPL_DLL CPL_STDCALL
    00765                        GDALCreateMaskBand( GDALRasterBandH hBand, int nFlags );
    00766
    00767 #define GMF_ALL_VALID     0x01
    00768 #define GMF_PER_DATASET   0x02
    00769 #define GMF_ALPHA         0x04
    00770 #define GMF_NODATA        0x08
    00771
    00772 /* ==================================================================== */
    00773 /*     GDALAsyncReader                                                  */
    00774 /* ==================================================================== */
    00775
    00776 GDALAsyncStatusType CPL_DLL CPL_STDCALL
    00777 GDALARGetNextUpdatedRegion(GDALAsyncReaderH hARIO, double dfTimeout,
    00778                          int* pnXBufOff, int* pnYBufOff,
    00779                          int* pnXBufSize, int* pnYBufSize );
    00780 int CPL_DLL CPL_STDCALL GDALARLockBuffer(GDALAsyncReaderH hARIO,
    00781                                         double dfTimeout);
    00782 void CPL_DLL CPL_STDCALL GDALARUnlockBuffer(GDALAsyncReaderH hARIO);
    00783
    00784 /* -------------------------------------------------------------------- */
    00785 /*      Helper functions.                                               */
    00786 /* -------------------------------------------------------------------- */
    00787 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
    00788                                          int nOptions );
    00789 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
    00790                             int nWordSkip );
    00791 void CPL_DLL CPL_STDCALL
    00792     GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
    00793                    void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
    00794                    int nWordCount );
    00795
    00796 void CPL_DLL
    00797 GDALCopyBits( const GByte *pabySrcData, int nSrcOffset, int nSrcStep,
    00798               GByte *pabyDstData, int nDstOffset, int nDstStep,
    00799               int nBitCount, int nStepCount );
    00800
    00801 int CPL_DLL CPL_STDCALL GDALLoadWorldFile( const char *, double * );
    00802 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *, const char *,
    00803                                            double * );
    00804 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *, const char *,
    00805                                             double * );
    00806 int CPL_DLL CPL_STDCALL GDALLoadTabFile( const char *, double *, char **,
    00807                                          int *, GDAL_GCP ** );
    00808 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *, double *, char **,
    00809                                          int *, GDAL_GCP ** );
    00810 int CPL_DLL CPL_STDCALL GDALLoadOziMapFile( const char *, double *, char **,
    00811                                             int *, GDAL_GCP ** );
    00812 int CPL_DLL CPL_STDCALL GDALReadOziMapFile( const char * ,  double *,
    00813                                             char **, int *, GDAL_GCP ** );
    00814
    00815 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
    00816 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
    00817 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
    00818
    00819 /* Note to developers : please keep this section in sync with ogr_core.h */
    00820
    00821 #ifndef GDAL_VERSION_INFO_DEFINED
    00822 #define GDAL_VERSION_INFO_DEFINED
    00823 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
    00824 #endif
    00825
    00826 #ifndef GDAL_CHECK_VERSION
    00827
    00828 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
    00829                                           const char* pszCallingComponentName);
    00830
    00834 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
    00835  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
    00836
    00837 #endif
    00838
    00839 typedef struct {
    00840     double      dfLINE_OFF;
    00841     double      dfSAMP_OFF;
    00842     double      dfLAT_OFF;
    00843     double      dfLONG_OFF;
    00844     double      dfHEIGHT_OFF;
    00845
    00846     double      dfLINE_SCALE;
    00847     double      dfSAMP_SCALE;
    00848     double      dfLAT_SCALE;
    00849     double      dfLONG_SCALE;
    00850     double      dfHEIGHT_SCALE;
    00851
    00852     double      adfLINE_NUM_COEFF[20];
    00853     double      adfLINE_DEN_COEFF[20];
    00854     double      adfSAMP_NUM_COEFF[20];
    00855     double      adfSAMP_DEN_COEFF[20];
    00856
    00857     double      dfMIN_LONG;
    00858     double      dfMIN_LAT;
    00859     double      dfMAX_LONG;
    00860     double      dfMAX_LAT;
    00861
    00862 } GDALRPCInfo;
    00863
    00864 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
    00865
    00866 /* ==================================================================== */
    00867 /*      Color tables.                                                   */
    00868 /* ==================================================================== */
    00869
    00871 typedef struct
    00872 {
    00874     short      c1;
    00875
    00877     short      c2;
    00878
    00880     short      c3;
    00881
    00883     short      c4;
    00884 } GDALColorEntry;
    00885
    00886 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
    00887 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
    00888 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
    00889 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
    00890 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
    00891 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
    00892 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
    00893 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
    00894 void CPL_DLL CPL_STDCALL GDALCreateColorRamp( GDALColorTableH hTable,
    00895             int nStartIndex, const GDALColorEntry *psStartColor,
    00896             int nEndIndex, const GDALColorEntry *psEndColor );
    00897
    00898 /* ==================================================================== */
    00899 /*      Raster Attribute Table                                          */
    00900 /* ==================================================================== */
    00901
    00903 typedef enum {             GFT_Integer ,    GFT_Real,                    GFT_String
    00907 } GDALRATFieldType;
    00908
    00910 typedef enum {          GFU_Generic = 0,             GFU_PixelCount = 1,                      GFU_Name = 2,             GFU_Min = 3,             GFU_Max = 4,           GFU_MinMax = 5,         GFU_Red = 6,       GFU_Green = 7,        GFU_Blue = 8, GFU_Alpha = 9,         GFU_RedMin = 10,       GFU_GreenMin = 11,        GFU_BlueMin = 12,       GFU_AlphaMin = 13,         GFU_RedMax = 14,       GFU_GreenMax = 15,        GFU_BlueMax = 16,       GFU_AlphaMax = 17,               GFU_MaxCount
    00930 } GDALRATFieldUsage;
    00931
    00932 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
    00933                                            GDALCreateRasterAttributeTable(void);
    00934 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
    00935     GDALRasterAttributeTableH );
    00936
    00937 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
    00938
    00939 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
    00940     GDALRasterAttributeTableH, int );
    00941 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
    00942     GDALRasterAttributeTableH, int );
    00943 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
    00944     GDALRasterAttributeTableH, int );
    00945
    00946 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
    00947                                               GDALRATFieldUsage );
    00948 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
    00949
    00950 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
    00951     GDALRasterAttributeTableH, int ,int);
    00952 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
    00953     GDALRasterAttributeTableH, int ,int);
    00954 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
    00955     GDALRasterAttributeTableH, int ,int);
    00956
    00957 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
    00958                                                   const char * );
    00959 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
    00960                                                int );
    00961 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
    00962                                                   double );
    00963
    00964 int CPL_DLL CPL_STDCALL GDALRATChangesAreWrittenToFile( GDALRasterAttributeTableH hRAT );
    00965
    00966 CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsDouble( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag,
    00967                                         int iField, int iStartRow, int iLength, double *pdfData );
    00968 CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsInteger( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag,
    00969                                         int iField, int iStartRow, int iLength, int *pnData);
    00970 CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsString( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag,
    00971                                         int iField, int iStartRow, int iLength, char **papszStrList);
    00972
    00973 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
    00974                                              int );
    00975 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
    00976                                                 const char *,
    00977                                                 GDALRATFieldType,
    00978                                                 GDALRATFieldUsage );
    00979 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
    00980                                                     double, double );
    00981 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
    00982                                                  double *, double * );
    00983 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
    00984     GDALRasterAttributeTableH, GDALColorTableH );
    00985 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
    00986     GDALRasterAttributeTableH, int nEntryCount );
    00987 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
    00988                                               FILE * );
    00989 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
    00990     GDALRATClone( GDALRasterAttributeTableH );
    00991
    00992 void CPL_DLL* CPL_STDCALL
    00993     GDALRATSerializeJSON( GDALRasterAttributeTableH );
    00994
    00995 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
    00996
    00997
    00998 /* ==================================================================== */
    00999 /*      GDAL Cache Management                                           */
    01000 /* ==================================================================== */
    01001
    01002 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
    01003 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
    01004 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
    01005 void CPL_DLL CPL_STDCALL GDALSetCacheMax64( GIntBig nBytes );
    01006 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheMax64(void);
    01007 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheUsed64(void);
    01008
    01009 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
    01010
    01011 /* ==================================================================== */
    01012 /*      GDAL virtual memory                                             */
    01013 /* ==================================================================== */
    01014
    01015 CPLVirtualMem CPL_DLL* GDALDatasetGetVirtualMem( GDALDatasetH hDS,
    01016                                                  GDALRWFlag eRWFlag,
    01017                                                  int nXOff, int nYOff,
    01018                                                  int nXSize, int nYSize,
    01019                                                  int nBufXSize, int nBufYSize,
    01020                                                  GDALDataType eBufType,
    01021                                                  int nBandCount, int* panBandMap,
    01022                                                  int nPixelSpace,
    01023                                                  GIntBig nLineSpace,
    01024                                                  GIntBig nBandSpace,
    01025                                                  size_t nCacheSize,
    01026                                                  size_t nPageSizeHint,
    01027                                                  int bSingleThreadUsage,
    01028                                                  char **papszOptions );
    01029
    01030 CPLVirtualMem CPL_DLL* GDALRasterBandGetVirtualMem( GDALRasterBandH hBand,
    01031                                          GDALRWFlag eRWFlag,
    01032                                          int nXOff, int nYOff,
    01033                                          int nXSize, int nYSize,
    01034                                          int nBufXSize, int nBufYSize,
    01035                                          GDALDataType eBufType,
    01036                                          int nPixelSpace,
    01037                                          GIntBig nLineSpace,
    01038                                          size_t nCacheSize,
    01039                                          size_t nPageSizeHint,
    01040                                          int bSingleThreadUsage,
    01041                                          char **papszOptions );
    01042
    01043 CPLVirtualMem CPL_DLL* GDALGetVirtualMemAuto( GDALRasterBandH hBand,
    01044                                               GDALRWFlag eRWFlag,
    01045                                               int *pnPixelSpace,
    01046                                               GIntBig *pnLineSpace,
    01047                                               char **papszOptions );
    01048
    01049 typedef enum
    01050 {
    01052     GTO_TIP,
    01054     GTO_BIT,
    01056     GTO_BSQ
    01057 } GDALTileOrganization;
    01058
    01059 CPLVirtualMem CPL_DLL* GDALDatasetGetTiledVirtualMem( GDALDatasetH hDS,
    01060                                                       GDALRWFlag eRWFlag,
    01061                                                       int nXOff, int nYOff,
    01062                                                       int nXSize, int nYSize,
    01063                                                       int nTileXSize, int nTileYSize,
    01064                                                       GDALDataType eBufType,
    01065                                                       int nBandCount, int* panBandMap,
    01066                                                       GDALTileOrganization eTileOrganization,
    01067                                                       size_t nCacheSize,
    01068                                                       int bSingleThreadUsage,
    01069                                                       char **papszOptions );
    01070
    01071 CPLVirtualMem CPL_DLL* GDALRasterBandGetTiledVirtualMem( GDALRasterBandH hBand,
    01072                                                          GDALRWFlag eRWFlag,
    01073                                                          int nXOff, int nYOff,
    01074                                                          int nXSize, int nYSize,
    01075                                                          int nTileXSize, int nTileYSize,
    01076                                                          GDALDataType eBufType,
    01077                                                          size_t nCacheSize,
    01078                                                          int bSingleThreadUsage,
    01079                                                          char **papszOptions );
    01080
    01081 /* =================================================================== */
    01082 /*      Misc API                                                        */
    01083 /* ==================================================================== */
    01084
    01085 CPLXMLNode CPL_DLL* GDALGetJPEG2000Structure(const char* pszFilename,
    01086                                              char** papszOptions);
    01087
    01088 CPL_C_END
    01089
    01090 #endif /* ndef GDAL_H_INCLUDED */

Generated for GDAL by 1.7.1.