GDAL
|
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 */