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
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138 #ifndef GDAL_H_INCLUDED
00139 #define GDAL_H_INCLUDED
00140
00147 #include "gdal_version.h"
00148 #include "cpl_port.h"
00149 #include "cpl_error.h"
00150
00151
00152
00153
00154
00155 CPL_C_START
00156
00158 typedef enum {
00159 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,
00171 GDT_TypeCount = 12
00172 } GDALDataType;
00173
00174 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
00175 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
00176 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
00177 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
00178 GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType );
00179
00181 typedef enum { GA_ReadOnly = 0, GA_Update = 1
00184 } GDALAccess;
00185
00187 typedef enum { GF_Read = 0, GF_Write = 1
00190 } GDALRWFlag;
00191
00193 typedef enum
00194 {
00195 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
00213 } GDALColorInterp;
00214
00216 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
00217
00219 typedef enum
00220 { GPI_Gray=0, GPI_RGB=1, GPI_CMYK=2, GPI_HLS=3
00225 } GDALPaletteInterp;
00226
00228 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
00229
00230
00231
00232 #define GDALMD_AREA_OR_POINT "AREA_OR_POINT"
00233 # define GDALMD_AOP_AREA "Area"
00234 # define GDALMD_AOP_POINT "Point"
00235
00236
00237
00238
00239
00240
00241 #define CPLE_WrongFormat 200
00242
00243
00244
00245
00246 typedef void *GDALMajorObjectH;
00247 typedef void *GDALDatasetH;
00248 typedef void *GDALRasterBandH;
00249 typedef void *GDALDriverH;
00250 typedef void *GDALProjDefH;
00251 typedef void *GDALColorTableH;
00252 typedef void *GDALRasterAttributeTableH;
00253
00254
00255
00256
00257
00258 typedef int (CPL_STDCALL *GDALProgressFunc)(double,const char *, void *);
00259 int CPL_DLL CPL_STDCALL GDALDummyProgress( double, const char *, void *);
00260 int CPL_DLL CPL_STDCALL GDALTermProgress( double, const char *, void *);
00261 int CPL_DLL CPL_STDCALL GDALScaledProgress( double, const char *, void *);
00262 void CPL_DLL * CPL_STDCALL GDALCreateScaledProgress( double, double,
00263 GDALProgressFunc, void * );
00264 void CPL_DLL CPL_STDCALL GDALDestroyScaledProgress( void * );
00265
00266
00267
00268
00269
00270 typedef struct {
00271 char *pszOptionName;
00272 char *pszValueType;
00273
00274 char *pszDescription;
00275 char **papszOptions;
00276 } GDALOptionDefinition;
00277
00278 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
00279 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
00280 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
00281 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
00282 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
00283 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
00284
00285 #define GDAL_DCAP_CREATE "DCAP_CREATE"
00286 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
00287
00288 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
00289
00290 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
00291 const char *, int, int, int, GDALDataType,
00292 char ** );
00293 GDALDatasetH CPL_DLL CPL_STDCALL
00294 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
00295 int, char **, GDALProgressFunc, void * );
00296
00297 GDALDatasetH CPL_DLL CPL_STDCALL
00298 GDALOpen( const char *pszFilename, GDALAccess eAccess );
00299 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess );
00300 int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
00301
00302 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
00303 int CPL_DLL CPL_STDCALL GDALGetDriverCount( void );
00304 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
00305 int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
00306 void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
00307 void CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
00308 CPLErr CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
00309
00310
00311 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
00312 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
00313 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
00314 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
00315
00316
00317
00318
00319
00321 typedef struct
00322 {
00324 char *pszId;
00325
00327 char *pszInfo;
00328
00330 double dfGCPPixel;
00332 double dfGCPLine;
00333
00335 double dfGCPX;
00336
00338 double dfGCPY;
00339
00341 double dfGCPZ;
00342 } GDAL_GCP;
00343
00344 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
00345 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
00346 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
00347
00348 int CPL_DLL CPL_STDCALL
00349 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
00350 double *padfGeoTransform, int bApproxOK );
00351 int CPL_DLL CPL_STDCALL
00352 GDALInvGeoTransform( double *padfGeoTransformIn,
00353 double *padfInvGeoTransformOut );
00354 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
00355 double *, double * );
00356
00357
00358
00359
00360
00361 char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
00362 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
00363 const char * );
00364 const char CPL_DLL * CPL_STDCALL
00365 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
00366 CPLErr CPL_DLL CPL_STDCALL
00367 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
00368 const char * );
00369 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
00370 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
00371
00372
00373
00374
00375
00376 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
00377 void CPL_DLL CPL_STDCALL GDALClose( GDALDatasetH );
00378 int CPL_DLL CPL_STDCALL GDALGetRasterXSize( GDALDatasetH );
00379 int CPL_DLL CPL_STDCALL GDALGetRasterYSize( GDALDatasetH );
00380 int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH );
00381 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
00382
00383 CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
00384 char **papszOptions );
00385
00386 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
00387 GDALDatasetH hDS, GDALRWFlag eRWFlag,
00388 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00389 void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
00390 int nBandCount, int *panBandCount,
00391 int nPixelSpace, int nLineSpace, int nBandSpace);
00392
00393 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
00394 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00395 int nBXSize, int nBYSize, GDALDataType eBDataType,
00396 int nBandCount, int *panBandCount, char **papszOptions );
00397
00398 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
00399 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
00400 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
00401 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
00402
00403 int CPL_DLL CPL_STDCALL GDALGetGCPCount( GDALDatasetH );
00404 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
00405 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
00406 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
00407 const char * );
00408
00409 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
00410 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
00411 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
00412
00413 CPLErr CPL_DLL CPL_STDCALL
00414 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
00415 int, int *, GDALProgressFunc, void * );
00416 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
00417 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
00418 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
00419
00420
00421
00422
00423
00428 #define SRCVAL(papoSource, eSrcType, ii) \
00429 (eSrcType == GDT_Byte ? \
00430 ((char *)papoSource)[ii] : \
00431 (eSrcType == GDT_Float32 ? \
00432 ((float *)papoSource)[ii] : \
00433 (eSrcType == GDT_Float64 ? \
00434 ((double *)papoSource)[ii] : \
00435 (eSrcType == GDT_Int32 ? \
00436 ((GInt32 *)papoSource)[ii] : \
00437 (eSrcType == GDT_UInt16 ? \
00438 ((GUInt16 *)papoSource)[ii] : \
00439 (eSrcType == GDT_Int16 ? \
00440 ((GInt16 *)papoSource)[ii] : \
00441 (eSrcType == GDT_UInt32 ? \
00442 ((GUInt32 *)papoSource)[ii] : \
00443 (eSrcType == GDT_CInt16 ? \
00444 ((GInt16 *)papoSource)[ii * 2] : \
00445 (eSrcType == GDT_CInt32 ? \
00446 ((GInt32 *)papoSource)[ii * 2] : \
00447 (eSrcType == GDT_CFloat32 ? \
00448 ((float *)papoSource)[ii * 2] : \
00449 (eSrcType == GDT_CFloat64 ? \
00450 ((double *)papoSource)[ii * 2] : 0)))))))))))
00451
00452 typedef CPLErr
00453 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
00454 int nBufXSize, int nBufYSize,
00455 GDALDataType eSrcType, GDALDataType eBufType,
00456 int nPixelSpace, int nLineSpace);
00457
00458 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
00459 void CPL_DLL CPL_STDCALL
00460 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
00461
00462 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
00463 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00464 int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
00465
00466 CPLErr CPL_DLL CPL_STDCALL
00467 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
00468 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00469 void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
00470 int nPixelSpace, int nLineSpace );
00471 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
00472 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
00473 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
00474 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
00475 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
00476 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
00477 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
00478
00479 GDALColorInterp CPL_DLL CPL_STDCALL
00480 GDALGetRasterColorInterpretation( GDALRasterBandH );
00481 CPLErr CPL_DLL CPL_STDCALL
00482 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
00483 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
00484 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
00485 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
00486 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
00487 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
00488 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
00489 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
00490 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
00491 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
00492 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
00493 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
00494 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
00495 GDALRasterBandH, int bApproxOK, int bForce,
00496 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
00497 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
00498 GDALRasterBandH, int bApproxOK,
00499 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
00500 GDALProgressFunc pfnProgress, void *pProgressData );
00501 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
00502 GDALRasterBandH hBand,
00503 double dfMin, double dfMax, double dfMean, double dfStdDev );
00504
00505 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
00506 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
00507 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
00508 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
00509 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
00510 void CPL_DLL CPL_STDCALL
00511 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
00512 double adfMinMax[2] );
00513 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
00514 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
00515 double dfMin, double dfMax,
00516 int nBuckets, int *panHistogram,
00517 int bIncludeOutOfRange, int bApproxOK,
00518 GDALProgressFunc pfnProgress,
00519 void * pProgressData );
00520 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
00521 double *pdfMin, double *pdfMax,
00522 int *pnBuckets, int **ppanHistogram,
00523 int bForce,
00524 GDALProgressFunc pfnProgress,
00525 void * pProgressData );
00526 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
00527 double dfMin, double dfMax,
00528 int nBuckets, int *panHistogram );
00529 int CPL_DLL CPL_STDCALL
00530 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
00531 GDALRasterBandH CPL_DLL CPL_STDCALL
00532 GDALGetRasterSampleOverview( GDALRasterBandH, int );
00533 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
00534 double dfRealValue, double dfImaginaryValue );
00535 CPLErr CPL_DLL CPL_STDCALL
00536 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
00537 double *pdfMean, double *pdfStdDev,
00538 GDALProgressFunc pfnProgress,
00539 void *pProgressData );
00540 CPLErr CPL_DLL GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
00541 int nOverviewCount,
00542 GDALRasterBandH *pahOverviews,
00543 GDALProgressFunc pfnProgress,
00544 void *pProgressData );
00545
00546 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
00547 GDALRasterBandH hBand );
00548 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
00549 GDALRasterAttributeTableH );
00550 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
00551 GDALDerivedPixelFunc pfnPixelFunc );
00552
00553
00554
00555
00556 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
00557 int nOptions );
00558 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
00559 int nWordSkip );
00560 void CPL_DLL CPL_STDCALL
00561 GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
00562 void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
00563 int nWordCount );
00564
00565 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *pszBaseFilename,
00566 const char *pszExtension,
00567 double * padfGeoTransform );
00568 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *pszBaseFilename,
00569 const char *pszExtension,
00570 double * padfGeoTransform );
00571 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *pszBaseFilename,
00572 double *padfGeoTransform, char **ppszWKT,
00573 int *pnGCPCount, GDAL_GCP **ppasGCPs );
00574
00575 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
00576 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
00577 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
00578
00579 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
00580
00581 typedef struct {
00582 double dfLINE_OFF;
00583 double dfSAMP_OFF;
00584 double dfLAT_OFF;
00585 double dfLONG_OFF;
00586 double dfHEIGHT_OFF;
00587
00588 double dfLINE_SCALE;
00589 double dfSAMP_SCALE;
00590 double dfLAT_SCALE;
00591 double dfLONG_SCALE;
00592 double dfHEIGHT_SCALE;
00593
00594 double adfLINE_NUM_COEFF[20];
00595 double adfLINE_DEN_COEFF[20];
00596 double adfSAMP_NUM_COEFF[20];
00597 double adfSAMP_DEN_COEFF[20];
00598
00599 double dfMIN_LONG;
00600 double dfMIN_LAT;
00601 double dfMAX_LONG;
00602 double dfMAX_LAT;
00603
00604 } GDALRPCInfo;
00605
00606 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
00607
00608
00609
00610
00612 typedef struct
00613 {
00615 short c1;
00616
00618 short c2;
00619
00621 short c3;
00622
00624 short c4;
00625 } GDALColorEntry;
00626
00627 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
00628 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
00629 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
00630 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
00631 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
00632 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
00633 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
00634 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
00635
00636
00637
00638
00639
00640 typedef enum { GFT_Integer , GFT_Real, GFT_String
00644 } GDALRATFieldType;
00645
00646 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
00666 } GDALRATFieldUsage;
00667
00668 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00669 GDALCreateRasterAttributeTable(void);
00670 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
00671 GDALRasterAttributeTableH );
00672
00673 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
00674
00675 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
00676 GDALRasterAttributeTableH, int );
00677 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
00678 GDALRasterAttributeTableH, int );
00679 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
00680 GDALRasterAttributeTableH, int );
00681
00682 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
00683 GDALRATFieldUsage );
00684 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
00685
00686 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
00687 GDALRasterAttributeTableH, int ,int);
00688 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
00689 GDALRasterAttributeTableH, int ,int);
00690 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
00691 GDALRasterAttributeTableH, int ,int);
00692
00693 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
00694 const char * );
00695 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
00696 int );
00697 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
00698 double );
00699 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
00700 int );
00701 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
00702 const char *,
00703 GDALRATFieldType,
00704 GDALRATFieldUsage );
00705 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
00706 double, double );
00707 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
00708 double *, double * );
00709 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
00710 GDALRasterAttributeTableH, GDALColorTableH );
00711 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
00712 int nEntryCount );
00713 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
00714 FILE * );
00715 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00716 GDALRATClone( GDALRasterAttributeTableH );
00717
00718 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
00719
00720
00721
00722
00723
00724
00725 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
00726 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
00727 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
00728 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
00729
00730 CPL_C_END
00731
00732 #endif