00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef GDAL_H_INCLUDED
00031 #define GDAL_H_INCLUDED
00032
00039 #ifndef DOXYGEN_SKIP
00040 #include "gdal_version.h"
00041 #include "cpl_port.h"
00042 #include "cpl_error.h"
00043 #include "cpl_progress.h"
00044 #endif
00045
00046
00047
00048
00049
00050 CPL_C_START
00051
00053 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,
00066 GDT_TypeCount = 12
00067 } GDALDataType;
00068
00069 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
00070 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
00071 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
00072 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
00073 GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType );
00074
00078 typedef enum
00079 {
00080 GARIO_PENDING = 0,
00081 GARIO_UPDATE = 1,
00082 GARIO_ERROR = 2,
00083 GARIO_COMPLETE = 3,
00084 GARIO_TypeCount = 4
00085 } GDALAsyncStatusType;
00086
00087 const char CPL_DLL * CPL_STDCALL GDALGetAsyncStatusTypeName( GDALAsyncStatusType );
00088 GDALAsyncStatusType CPL_DLL CPL_STDCALL GDALGetAsyncStatusTypeByName( const char * );
00089
00091 typedef enum { GA_ReadOnly = 0, GA_Update = 1
00094 } GDALAccess;
00095
00097 typedef enum { GF_Read = 0, GF_Write = 1
00100 } GDALRWFlag;
00101
00103 typedef enum
00104 {
00105 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
00123 } GDALColorInterp;
00124
00125 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
00126 GDALColorInterp CPL_DLL GDALGetColorInterpretationByName( const char *pszName );
00127
00129 typedef enum
00130 { GPI_Gray=0, GPI_RGB=1, GPI_CMYK=2, GPI_HLS=3
00135 } GDALPaletteInterp;
00136
00137 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
00138
00139
00140
00141 #define GDALMD_AREA_OR_POINT "AREA_OR_POINT"
00142 # define GDALMD_AOP_AREA "Area"
00143 # define GDALMD_AOP_POINT "Point"
00144
00145
00146
00147
00148
00149
00150 #define CPLE_WrongFormat 200
00151
00152
00153
00154
00155
00157 typedef void *GDALMajorObjectH;
00158
00160 typedef void *GDALDatasetH;
00161
00163 typedef void *GDALRasterBandH;
00164
00166 typedef void *GDALDriverH;
00167
00168 #ifndef DOXYGEN_SKIP
00169
00170 typedef void *GDALProjDefH;
00171 #endif
00172
00174 typedef void *GDALColorTableH;
00175
00177 typedef void *GDALRasterAttributeTableH;
00178
00180 typedef void *GDALAsyncReaderH;
00181
00182
00183
00184
00185
00186 #ifndef DOXYGEN_SKIP
00187
00188 typedef struct {
00189 char *pszOptionName;
00190 char *pszValueType;
00191
00192 char *pszDescription;
00193 char **papszOptions;
00194 } GDALOptionDefinition;
00195 #endif
00196
00197 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
00198 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
00199 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
00200 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
00201 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
00202 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
00203 #define GDAL_DMD_SUBDATASETS "DMD_SUBDATASETS"
00204
00205 #define GDAL_DCAP_CREATE "DCAP_CREATE"
00206 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
00207 #define GDAL_DCAP_VIRTUALIO "DCAP_VIRTUALIO"
00208
00209 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
00210
00211 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
00212 const char *, int, int, int, GDALDataType,
00213 char ** ) CPL_WARN_UNUSED_RESULT;
00214 GDALDatasetH CPL_DLL CPL_STDCALL
00215 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
00216 int, char **, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT;
00217
00218 GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename,
00219 char ** papszFileList );
00220 GDALDatasetH CPL_DLL CPL_STDCALL
00221 GDALOpen( const char *pszFilename, GDALAccess eAccess ) CPL_WARN_UNUSED_RESULT;
00222 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess ) CPL_WARN_UNUSED_RESULT;
00223 int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
00224
00225 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
00226 int CPL_DLL CPL_STDCALL GDALGetDriverCount( void );
00227 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
00228 void CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH );
00229 int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
00230 void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
00231 void CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
00232 CPLErr CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
00233 CPLErr CPL_DLL CPL_STDCALL GDALRenameDataset( GDALDriverH,
00234 const char * pszNewName,
00235 const char * pszOldName );
00236 CPLErr CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH,
00237 const char * pszNewName,
00238 const char * pszOldName);
00239 int CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH,
00240 char** papszCreationOptions);
00241
00242
00243 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
00244 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
00245 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
00246 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
00247
00248
00249
00250
00251
00253 typedef struct
00254 {
00256 char *pszId;
00257
00259 char *pszInfo;
00260
00262 double dfGCPPixel;
00264 double dfGCPLine;
00265
00267 double dfGCPX;
00268
00270 double dfGCPY;
00271
00273 double dfGCPZ;
00274 } GDAL_GCP;
00275
00276 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
00277 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
00278 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
00279
00280 int CPL_DLL CPL_STDCALL
00281 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
00282 double *padfGeoTransform, int bApproxOK );
00283 int CPL_DLL CPL_STDCALL
00284 GDALInvGeoTransform( double *padfGeoTransformIn,
00285 double *padfInvGeoTransformOut );
00286 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
00287 double *, double * );
00288
00289
00290
00291
00292
00293 char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
00294 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
00295 const char * );
00296 const char CPL_DLL * CPL_STDCALL
00297 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
00298 CPLErr CPL_DLL CPL_STDCALL
00299 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
00300 const char * );
00301 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
00302 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
00303
00304
00305
00306
00307
00308 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
00309 char CPL_DLL ** CPL_STDCALL GDALGetFileList( GDALDatasetH );
00310 void CPL_DLL CPL_STDCALL GDALClose( GDALDatasetH );
00311 int CPL_DLL CPL_STDCALL GDALGetRasterXSize( GDALDatasetH );
00312 int CPL_DLL CPL_STDCALL GDALGetRasterYSize( GDALDatasetH );
00313 int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH );
00314 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
00315
00316 CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
00317 char **papszOptions );
00318
00319 GDALAsyncReaderH CPL_DLL CPL_STDCALL
00320 GDALBeginAsyncReader(GDALDatasetH hDS, int nXOff, int nYOff,
00321 int nXSize, int nYSize,
00322 void *pBuf, int nBufXSize, int nBufYSize,
00323 GDALDataType eBufType, int nBandCount, int* panBandMap,
00324 int nPixelSpace, int nLineSpace, int nBandSpace,
00325 char **papszOptions);
00326
00327 void CPL_DLL CPL_STDCALL
00328 GDALEndAsyncReader(GDALDatasetH hDS, GDALAsyncReaderH hAsynchReaderH);
00329
00330 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
00331 GDALDatasetH hDS, GDALRWFlag eRWFlag,
00332 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00333 void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
00334 int nBandCount, int *panBandCount,
00335 int nPixelSpace, int nLineSpace, int nBandSpace);
00336
00337 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
00338 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00339 int nBXSize, int nBYSize, GDALDataType eBDataType,
00340 int nBandCount, int *panBandCount, char **papszOptions );
00341
00342 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
00343 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
00344 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
00345 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
00346
00347 int CPL_DLL CPL_STDCALL GDALGetGCPCount( GDALDatasetH );
00348 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
00349 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
00350 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
00351 const char * );
00352
00353 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
00354 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
00355 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
00356
00357 CPLErr CPL_DLL CPL_STDCALL
00358 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
00359 int, int *, GDALProgressFunc, void * );
00360 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
00361 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
00362 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
00363
00364 CPLErr CPL_DLL CPL_STDCALL
00365 GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags );
00366
00367 CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster(
00368 GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions,
00369 GDALProgressFunc pfnProgress, void *pProgressData );
00370
00371 CPLErr CPL_DLL CPL_STDCALL GDALRasterBandCopyWholeRaster(
00372 GDALRasterBandH hSrcBand, GDALRasterBandH hDstBand, char **papszOptions,
00373 GDALProgressFunc pfnProgress, void *pProgressData );
00374
00375 CPLErr CPL_DLL
00376 GDALRegenerateOverviews( GDALRasterBandH hSrcBand,
00377 int nOverviewCount, GDALRasterBandH *pahOverviewBands,
00378 const char *pszResampling,
00379 GDALProgressFunc pfnProgress, void *pProgressData );
00380
00381
00382
00383
00384
00389 #define SRCVAL(papoSource, eSrcType, ii) \
00390 (eSrcType == GDT_Byte ? \
00391 ((GByte *)papoSource)[ii] : \
00392 (eSrcType == GDT_Float32 ? \
00393 ((float *)papoSource)[ii] : \
00394 (eSrcType == GDT_Float64 ? \
00395 ((double *)papoSource)[ii] : \
00396 (eSrcType == GDT_Int32 ? \
00397 ((GInt32 *)papoSource)[ii] : \
00398 (eSrcType == GDT_UInt16 ? \
00399 ((GUInt16 *)papoSource)[ii] : \
00400 (eSrcType == GDT_Int16 ? \
00401 ((GInt16 *)papoSource)[ii] : \
00402 (eSrcType == GDT_UInt32 ? \
00403 ((GUInt32 *)papoSource)[ii] : \
00404 (eSrcType == GDT_CInt16 ? \
00405 ((GInt16 *)papoSource)[ii * 2] : \
00406 (eSrcType == GDT_CInt32 ? \
00407 ((GInt32 *)papoSource)[ii * 2] : \
00408 (eSrcType == GDT_CFloat32 ? \
00409 ((float *)papoSource)[ii * 2] : \
00410 (eSrcType == GDT_CFloat64 ? \
00411 ((double *)papoSource)[ii * 2] : 0)))))))))))
00412
00413 typedef CPLErr
00414 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
00415 int nBufXSize, int nBufYSize,
00416 GDALDataType eSrcType, GDALDataType eBufType,
00417 int nPixelSpace, int nLineSpace);
00418
00419 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
00420 void CPL_DLL CPL_STDCALL
00421 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
00422
00423 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
00424 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00425 int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
00426
00427 CPLErr CPL_DLL CPL_STDCALL
00428 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
00429 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00430 void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
00431 int nPixelSpace, int nLineSpace );
00432 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
00433 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
00434 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
00435 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
00436 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
00437 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
00438 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
00439
00440 GDALColorInterp CPL_DLL CPL_STDCALL
00441 GDALGetRasterColorInterpretation( GDALRasterBandH );
00442 CPLErr CPL_DLL CPL_STDCALL
00443 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
00444 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
00445 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
00446 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
00447 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
00448 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
00449 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
00450 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
00451 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
00452 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
00453 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
00454 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
00455 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
00456 GDALRasterBandH, int bApproxOK, int bForce,
00457 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
00458 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
00459 GDALRasterBandH, int bApproxOK,
00460 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
00461 GDALProgressFunc pfnProgress, void *pProgressData );
00462 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
00463 GDALRasterBandH hBand,
00464 double dfMin, double dfMax, double dfMean, double dfStdDev );
00465
00466 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
00467 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterUnitType( GDALRasterBandH hBand, const char *pszNewValue );
00468 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
00469 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
00470 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
00471 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
00472 void CPL_DLL CPL_STDCALL
00473 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
00474 double adfMinMax[2] );
00475 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
00476 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
00477 double dfMin, double dfMax,
00478 int nBuckets, int *panHistogram,
00479 int bIncludeOutOfRange, int bApproxOK,
00480 GDALProgressFunc pfnProgress,
00481 void * pProgressData );
00482 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
00483 double *pdfMin, double *pdfMax,
00484 int *pnBuckets, int **ppanHistogram,
00485 int bForce,
00486 GDALProgressFunc pfnProgress,
00487 void * pProgressData );
00488 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
00489 double dfMin, double dfMax,
00490 int nBuckets, int *panHistogram );
00491 int CPL_DLL CPL_STDCALL
00492 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
00493 GDALRasterBandH CPL_DLL CPL_STDCALL
00494 GDALGetRasterSampleOverview( GDALRasterBandH, int );
00495 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
00496 double dfRealValue, double dfImaginaryValue );
00497 CPLErr CPL_DLL CPL_STDCALL
00498 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
00499 double *pdfMean, double *pdfStdDev,
00500 GDALProgressFunc pfnProgress,
00501 void *pProgressData );
00502 CPLErr CPL_DLL GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
00503 int nOverviewCount,
00504 GDALRasterBandH *pahOverviews,
00505 GDALProgressFunc pfnProgress,
00506 void *pProgressData );
00507
00508 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
00509 GDALRasterBandH hBand );
00510 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
00511 GDALRasterAttributeTableH );
00512 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
00513 GDALDerivedPixelFunc pfnPixelFunc );
00514
00515 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetMaskBand( GDALRasterBandH hBand );
00516 int CPL_DLL CPL_STDCALL GDALGetMaskFlags( GDALRasterBandH hBand );
00517 CPLErr CPL_DLL CPL_STDCALL
00518 GDALCreateMaskBand( GDALRasterBandH hBand, int nFlags );
00519
00520 #define GMF_ALL_VALID 0x01
00521 #define GMF_PER_DATASET 0x02
00522 #define GMF_ALPHA 0x04
00523 #define GMF_NODATA 0x08
00524
00525
00526
00527
00528
00529 GDALAsyncStatusType CPL_DLL CPL_STDCALL
00530 GDALARGetNextUpdatedRegion(GDALAsyncReaderH hARIO, double dfTimeout,
00531 int* pnXBufOff, int* pnYBufOff,
00532 int* pnXBufSize, int* pnYBufSize );
00533 int CPL_DLL CPL_STDCALL GDALARLockBuffer(GDALAsyncReaderH hARIO,
00534 double dfTimeout);
00535 void CPL_DLL CPL_STDCALL GDALARUnlockBuffer(GDALAsyncReaderH hARIO);
00536
00537
00538
00539
00540 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
00541 int nOptions );
00542 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
00543 int nWordSkip );
00544 void CPL_DLL CPL_STDCALL
00545 GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
00546 void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
00547 int nWordCount );
00548
00549 void CPL_DLL
00550 GDALCopyBits( const GByte *pabySrcData, int nSrcOffset, int nSrcStep,
00551 GByte *pabyDstData, int nDstOffset, int nDstStep,
00552 int nBitCount, int nStepCount );
00553
00554 int CPL_DLL CPL_STDCALL GDALLoadWorldFile( const char *, double * );
00555 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *, const char *,
00556 double * );
00557 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *, const char *,
00558 double * );
00559 int CPL_DLL CPL_STDCALL GDALLoadTabFile( const char *, double *, char **,
00560 int *, GDAL_GCP ** );
00561 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *, double *, char **,
00562 int *, GDAL_GCP ** );
00563 int CPL_DLL CPL_STDCALL GDALLoadOziMapFile( const char *, double *, char **,
00564 int *, GDAL_GCP ** );
00565 int CPL_DLL CPL_STDCALL GDALReadOziMapFile( const char * , double *,
00566 char **, int *, GDAL_GCP ** );
00567 char CPL_DLL ** CPL_STDCALL GDALLoadRPBFile( const char *pszFilename,
00568 char **papszSiblingFiles );
00569 char CPL_DLL ** CPL_STDCALL GDALLoadRPCFile( const char *pszFilename,
00570 char **papszSiblingFiles );
00571 CPLErr CPL_DLL CPL_STDCALL GDALWriteRPBFile( const char *pszFilename,
00572 char **papszMD );
00573 char CPL_DLL ** CPL_STDCALL GDALLoadIMDFile( const char *pszFilename,
00574 char **papszSiblingFiles );
00575 CPLErr CPL_DLL CPL_STDCALL GDALWriteIMDFile( const char *pszFilename,
00576 char **papszMD );
00577
00578 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
00579 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
00580 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
00581
00582
00583
00584 #ifndef GDAL_VERSION_INFO_DEFINED
00585 #define GDAL_VERSION_INFO_DEFINED
00586 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
00587 #endif
00588
00589 #ifndef GDAL_CHECK_VERSION
00590
00591 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
00592 const char* pszCallingComponentName);
00593
00597 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
00598 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
00599
00600 #endif
00601
00602 typedef struct {
00603 double dfLINE_OFF;
00604 double dfSAMP_OFF;
00605 double dfLAT_OFF;
00606 double dfLONG_OFF;
00607 double dfHEIGHT_OFF;
00608
00609 double dfLINE_SCALE;
00610 double dfSAMP_SCALE;
00611 double dfLAT_SCALE;
00612 double dfLONG_SCALE;
00613 double dfHEIGHT_SCALE;
00614
00615 double adfLINE_NUM_COEFF[20];
00616 double adfLINE_DEN_COEFF[20];
00617 double adfSAMP_NUM_COEFF[20];
00618 double adfSAMP_DEN_COEFF[20];
00619
00620 double dfMIN_LONG;
00621 double dfMIN_LAT;
00622 double dfMAX_LONG;
00623 double dfMAX_LAT;
00624
00625 } GDALRPCInfo;
00626
00627 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
00628
00629
00630
00631
00632
00634 typedef struct
00635 {
00637 short c1;
00638
00640 short c2;
00641
00643 short c3;
00644
00646 short c4;
00647 } GDALColorEntry;
00648
00649 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
00650 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
00651 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
00652 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
00653 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
00654 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
00655 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
00656 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
00657 void CPL_DLL CPL_STDCALL GDALCreateColorRamp( GDALColorTableH hTable,
00658 int nStartIndex, const GDALColorEntry *psStartColor,
00659 int nEndIndex, const GDALColorEntry *psEndColor );
00660
00661
00662
00663
00664
00666 typedef enum { GFT_Integer , GFT_Real, GFT_String
00670 } GDALRATFieldType;
00671
00673 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
00693 } GDALRATFieldUsage;
00694
00695 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00696 GDALCreateRasterAttributeTable(void);
00697 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
00698 GDALRasterAttributeTableH );
00699
00700 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
00701
00702 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
00703 GDALRasterAttributeTableH, int );
00704 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
00705 GDALRasterAttributeTableH, int );
00706 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
00707 GDALRasterAttributeTableH, int );
00708
00709 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
00710 GDALRATFieldUsage );
00711 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
00712
00713 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
00714 GDALRasterAttributeTableH, int ,int);
00715 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
00716 GDALRasterAttributeTableH, int ,int);
00717 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
00718 GDALRasterAttributeTableH, int ,int);
00719
00720 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
00721 const char * );
00722 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
00723 int );
00724 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
00725 double );
00726 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
00727 int );
00728 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
00729 const char *,
00730 GDALRATFieldType,
00731 GDALRATFieldUsage );
00732 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
00733 double, double );
00734 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
00735 double *, double * );
00736 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
00737 GDALRasterAttributeTableH, GDALColorTableH );
00738 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
00739 GDALRasterAttributeTableH, int nEntryCount );
00740 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
00741 FILE * );
00742 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00743 GDALRATClone( GDALRasterAttributeTableH );
00744
00745 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
00746
00747
00748
00749
00750
00751
00752 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
00753 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
00754 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
00755 void CPL_DLL CPL_STDCALL GDALSetCacheMax64( GIntBig nBytes );
00756 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheMax64(void);
00757 GIntBig CPL_DLL CPL_STDCALL GDALGetCacheUsed64(void);
00758
00759 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
00760
00761 CPL_C_END
00762
00763 #endif