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 #include "gdal_version.h"
00040 #include "cpl_port.h"
00041 #include "cpl_error.h"
00042
00043
00044
00045
00046
00047 CPL_C_START
00048
00050 typedef enum {
00051 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,
00063 GDT_TypeCount = 12
00064 } GDALDataType;
00065
00066 int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType );
00067 int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType );
00068 const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType );
00069 GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * );
00070 GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType );
00071
00073 typedef enum { GA_ReadOnly = 0, GA_Update = 1
00076 } GDALAccess;
00077
00079 typedef enum { GF_Read = 0, GF_Write = 1
00082 } GDALRWFlag;
00083
00085 typedef enum
00086 {
00087 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
00105 } GDALColorInterp;
00106
00108 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
00109
00111 typedef enum
00112 { GPI_Gray=0, GPI_RGB=1, GPI_CMYK=2, GPI_HLS=3
00117 } GDALPaletteInterp;
00118
00120 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
00121
00122
00123
00124 #define GDALMD_AREA_OR_POINT "AREA_OR_POINT"
00125 # define GDALMD_AOP_AREA "Area"
00126 # define GDALMD_AOP_POINT "Point"
00127
00128
00129
00130
00131
00132
00133 #define CPLE_WrongFormat 200
00134
00135
00136
00137
00138 typedef void *GDALMajorObjectH;
00139 typedef void *GDALDatasetH;
00140 typedef void *GDALRasterBandH;
00141 typedef void *GDALDriverH;
00142 typedef void *GDALProjDefH;
00143 typedef void *GDALColorTableH;
00144 typedef void *GDALRasterAttributeTableH;
00145
00146
00147
00148
00149
00150 typedef int (CPL_STDCALL *GDALProgressFunc)(double,const char *, void *);
00151 int CPL_DLL CPL_STDCALL GDALDummyProgress( double, const char *, void *);
00152 int CPL_DLL CPL_STDCALL GDALTermProgress( double, const char *, void *);
00153 int CPL_DLL CPL_STDCALL GDALScaledProgress( double, const char *, void *);
00154 void CPL_DLL * CPL_STDCALL GDALCreateScaledProgress( double, double,
00155 GDALProgressFunc, void * );
00156 void CPL_DLL CPL_STDCALL GDALDestroyScaledProgress( void * );
00157
00158
00159
00160
00161
00162 typedef struct {
00163 char *pszOptionName;
00164 char *pszValueType;
00165
00166 char *pszDescription;
00167 char **papszOptions;
00168 } GDALOptionDefinition;
00169
00170 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
00171 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
00172 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
00173 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
00174 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST"
00175 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES"
00176
00177 #define GDAL_DCAP_CREATE "DCAP_CREATE"
00178 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
00179
00180 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
00181
00182 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
00183 const char *, int, int, int, GDALDataType,
00184 char ** );
00185 GDALDatasetH CPL_DLL CPL_STDCALL
00186 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
00187 int, char **, GDALProgressFunc, void * );
00188
00189 GDALDatasetH CPL_DLL CPL_STDCALL
00190 GDALOpen( const char *pszFilename, GDALAccess eAccess );
00191 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess );
00192 int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
00193
00194 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
00195 int CPL_DLL CPL_STDCALL GDALGetDriverCount( void );
00196 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
00197 int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
00198 void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
00199 void CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
00200 CPLErr CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
00201
00202
00203 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
00204 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
00205 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
00206 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
00207
00208
00209
00210
00211
00213 typedef struct
00214 {
00216 char *pszId;
00217
00219 char *pszInfo;
00220
00222 double dfGCPPixel;
00224 double dfGCPLine;
00225
00227 double dfGCPX;
00228
00230 double dfGCPY;
00231
00233 double dfGCPZ;
00234 } GDAL_GCP;
00235
00236 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
00237 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
00238 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
00239
00240 int CPL_DLL CPL_STDCALL
00241 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
00242 double *padfGeoTransform, int bApproxOK );
00243 int CPL_DLL CPL_STDCALL
00244 GDALInvGeoTransform( double *padfGeoTransformIn,
00245 double *padfInvGeoTransformOut );
00246 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
00247 double *, double * );
00248
00249
00250
00251
00252
00253 char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
00254 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
00255 const char * );
00256 const char CPL_DLL * CPL_STDCALL
00257 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
00258 CPLErr CPL_DLL CPL_STDCALL
00259 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
00260 const char * );
00261 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
00262 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
00263
00264
00265
00266
00267
00268 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
00269 void CPL_DLL CPL_STDCALL GDALClose( GDALDatasetH );
00270 int CPL_DLL CPL_STDCALL GDALGetRasterXSize( GDALDatasetH );
00271 int CPL_DLL CPL_STDCALL GDALGetRasterYSize( GDALDatasetH );
00272 int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH );
00273 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
00274
00275 CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
00276 char **papszOptions );
00277
00278 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
00279 GDALDatasetH hDS, GDALRWFlag eRWFlag,
00280 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00281 void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
00282 int nBandCount, int *panBandCount,
00283 int nPixelSpace, int nLineSpace, int nBandSpace);
00284
00285 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
00286 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00287 int nBXSize, int nBYSize, GDALDataType eBDataType,
00288 int nBandCount, int *panBandCount, char **papszOptions );
00289
00290 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
00291 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
00292 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
00293 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
00294
00295 int CPL_DLL CPL_STDCALL GDALGetGCPCount( GDALDatasetH );
00296 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
00297 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
00298 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
00299 const char * );
00300
00301 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
00302 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
00303 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
00304
00305 CPLErr CPL_DLL CPL_STDCALL
00306 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
00307 int, int *, GDALProgressFunc, void * );
00308 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
00309 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
00310 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
00311
00312
00313
00314
00315
00320 #define SRCVAL(papoSource, eSrcType, ii) \
00321 (eSrcType == GDT_Byte ? \
00322 ((char *)papoSource)[ii] : \
00323 (eSrcType == GDT_Float32 ? \
00324 ((float *)papoSource)[ii] : \
00325 (eSrcType == GDT_Float64 ? \
00326 ((double *)papoSource)[ii] : \
00327 (eSrcType == GDT_Int32 ? \
00328 ((GInt32 *)papoSource)[ii] : \
00329 (eSrcType == GDT_UInt16 ? \
00330 ((GUInt16 *)papoSource)[ii] : \
00331 (eSrcType == GDT_Int16 ? \
00332 ((GInt16 *)papoSource)[ii] : \
00333 (eSrcType == GDT_UInt32 ? \
00334 ((GUInt32 *)papoSource)[ii] : \
00335 (eSrcType == GDT_CInt16 ? \
00336 ((GInt16 *)papoSource)[ii * 2] : \
00337 (eSrcType == GDT_CInt32 ? \
00338 ((GInt32 *)papoSource)[ii * 2] : \
00339 (eSrcType == GDT_CFloat32 ? \
00340 ((float *)papoSource)[ii * 2] : \
00341 (eSrcType == GDT_CFloat64 ? \
00342 ((double *)papoSource)[ii * 2] : 0)))))))))))
00343
00344 typedef CPLErr
00345 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
00346 int nBufXSize, int nBufYSize,
00347 GDALDataType eSrcType, GDALDataType eBufType,
00348 int nPixelSpace, int nLineSpace);
00349
00350 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
00351 void CPL_DLL CPL_STDCALL
00352 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
00353
00354 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
00355 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00356 int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
00357
00358 CPLErr CPL_DLL CPL_STDCALL
00359 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
00360 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00361 void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
00362 int nPixelSpace, int nLineSpace );
00363 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
00364 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
00365 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
00366 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
00367 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
00368 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
00369 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
00370
00371 GDALColorInterp CPL_DLL CPL_STDCALL
00372 GDALGetRasterColorInterpretation( GDALRasterBandH );
00373 CPLErr CPL_DLL CPL_STDCALL
00374 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
00375 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
00376 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
00377 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
00378 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
00379 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
00380 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
00381 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
00382 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
00383 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
00384 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
00385 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
00386 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
00387 GDALRasterBandH, int bApproxOK, int bForce,
00388 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
00389 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
00390 GDALRasterBandH, int bApproxOK,
00391 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
00392 GDALProgressFunc pfnProgress, void *pProgressData );
00393 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
00394 GDALRasterBandH hBand,
00395 double dfMin, double dfMax, double dfMean, double dfStdDev );
00396
00397 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
00398 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
00399 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
00400 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
00401 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
00402 void CPL_DLL CPL_STDCALL
00403 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
00404 double adfMinMax[2] );
00405 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
00406 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
00407 double dfMin, double dfMax,
00408 int nBuckets, int *panHistogram,
00409 int bIncludeOutOfRange, int bApproxOK,
00410 GDALProgressFunc pfnProgress,
00411 void * pProgressData );
00412 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
00413 double *pdfMin, double *pdfMax,
00414 int *pnBuckets, int **ppanHistogram,
00415 int bForce,
00416 GDALProgressFunc pfnProgress,
00417 void * pProgressData );
00418 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
00419 double dfMin, double dfMax,
00420 int nBuckets, int *panHistogram );
00421 int CPL_DLL CPL_STDCALL
00422 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
00423 GDALRasterBandH CPL_DLL CPL_STDCALL
00424 GDALGetRasterSampleOverview( GDALRasterBandH, int );
00425 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
00426 double dfRealValue, double dfImaginaryValue );
00427 CPLErr CPL_DLL CPL_STDCALL
00428 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
00429 double *pdfMean, double *pdfStdDev,
00430 GDALProgressFunc pfnProgress,
00431 void *pProgressData );
00432 CPLErr CPL_DLL GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
00433 int nOverviewCount,
00434 GDALRasterBandH *pahOverviews,
00435 GDALProgressFunc pfnProgress,
00436 void *pProgressData );
00437
00438 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
00439 GDALRasterBandH hBand );
00440 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
00441 GDALRasterAttributeTableH );
00442 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
00443 GDALDerivedPixelFunc pfnPixelFunc );
00444
00445
00446
00447
00448 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
00449 int nOptions );
00450 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
00451 int nWordSkip );
00452 void CPL_DLL CPL_STDCALL
00453 GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
00454 void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
00455 int nWordCount );
00456
00457 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *pszBaseFilename,
00458 const char *pszExtension,
00459 double * padfGeoTransform );
00460 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *pszBaseFilename,
00461 const char *pszExtension,
00462 double * padfGeoTransform );
00463 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *pszBaseFilename,
00464 double *padfGeoTransform, char **ppszWKT,
00465 int *pnGCPCount, GDAL_GCP **ppasGCPs );
00466
00467 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
00468 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
00469 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
00470
00471 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
00472
00473 typedef struct {
00474 double dfLINE_OFF;
00475 double dfSAMP_OFF;
00476 double dfLAT_OFF;
00477 double dfLONG_OFF;
00478 double dfHEIGHT_OFF;
00479
00480 double dfLINE_SCALE;
00481 double dfSAMP_SCALE;
00482 double dfLAT_SCALE;
00483 double dfLONG_SCALE;
00484 double dfHEIGHT_SCALE;
00485
00486 double adfLINE_NUM_COEFF[20];
00487 double adfLINE_DEN_COEFF[20];
00488 double adfSAMP_NUM_COEFF[20];
00489 double adfSAMP_DEN_COEFF[20];
00490
00491 double dfMIN_LONG;
00492 double dfMIN_LAT;
00493 double dfMAX_LONG;
00494 double dfMAX_LAT;
00495
00496 } GDALRPCInfo;
00497
00498 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
00499
00500
00501
00502
00504 typedef struct
00505 {
00507 short c1;
00508
00510 short c2;
00511
00513 short c3;
00514
00516 short c4;
00517 } GDALColorEntry;
00518
00519 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
00520 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
00521 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
00522 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
00523 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
00524 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
00525 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
00526 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
00527
00528
00529
00530
00531
00532 typedef enum { GFT_Integer , GFT_Real, GFT_String
00536 } GDALRATFieldType;
00537
00538 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
00558 } GDALRATFieldUsage;
00559
00560 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00561 GDALCreateRasterAttributeTable(void);
00562 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
00563 GDALRasterAttributeTableH );
00564
00565 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
00566
00567 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
00568 GDALRasterAttributeTableH, int );
00569 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
00570 GDALRasterAttributeTableH, int );
00571 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
00572 GDALRasterAttributeTableH, int );
00573
00574 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
00575 GDALRATFieldUsage );
00576 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
00577
00578 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
00579 GDALRasterAttributeTableH, int ,int);
00580 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
00581 GDALRasterAttributeTableH, int ,int);
00582 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
00583 GDALRasterAttributeTableH, int ,int);
00584
00585 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
00586 const char * );
00587 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
00588 int );
00589 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
00590 double );
00591 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
00592 int );
00593 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
00594 const char *,
00595 GDALRATFieldType,
00596 GDALRATFieldUsage );
00597 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
00598 double, double );
00599 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
00600 double *, double * );
00601 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
00602 GDALRasterAttributeTableH, GDALColorTableH );
00603 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
00604 int nEntryCount );
00605 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
00606 FILE * );
00607 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00608 GDALRATClone( GDALRasterAttributeTableH );
00609
00610 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
00611
00612
00613
00614
00615
00616
00617 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
00618 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
00619 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
00620 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
00621
00622 CPL_C_END
00623
00624 #endif