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 #define GDAL_DCAP_VIRTUALIO "DCAP_VIRTUALIO"
00180
00181 void CPL_DLL CPL_STDCALL GDALAllRegister( void );
00182
00183 GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver,
00184 const char *, int, int, int, GDALDataType,
00185 char ** );
00186 GDALDatasetH CPL_DLL CPL_STDCALL
00187 GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
00188 int, char **, GDALProgressFunc, void * );
00189
00190 GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename,
00191 char ** papszFileList );
00192 GDALDatasetH CPL_DLL CPL_STDCALL
00193 GDALOpen( const char *pszFilename, GDALAccess eAccess );
00194 GDALDatasetH CPL_DLL CPL_STDCALL GDALOpenShared( const char *, GDALAccess );
00195 int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * );
00196
00197 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * );
00198 int CPL_DLL CPL_STDCALL GDALGetDriverCount( void );
00199 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int );
00200 void CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH );
00201 int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH );
00202 void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH );
00203 void CPL_DLL CPL_STDCALL GDALDestroyDriverManager( void );
00204 CPLErr CPL_DLL CPL_STDCALL GDALDeleteDataset( GDALDriverH, const char * );
00205 CPLErr CPL_DLL CPL_STDCALL GDALRenameDataset( GDALDriverH,
00206 const char * pszNewName,
00207 const char * pszOldName );
00208 CPLErr CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH,
00209 const char * pszNewName,
00210 const char * pszOldName);
00211 int CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH,
00212 char** papszCreationOptions);
00213
00214
00215 const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH );
00216 const char CPL_DLL * CPL_STDCALL GDALGetDriverLongName( GDALDriverH );
00217 const char CPL_DLL * CPL_STDCALL GDALGetDriverHelpTopic( GDALDriverH );
00218 const char CPL_DLL * CPL_STDCALL GDALGetDriverCreationOptionList( GDALDriverH );
00219
00220
00221
00222
00223
00225 typedef struct
00226 {
00228 char *pszId;
00229
00231 char *pszInfo;
00232
00234 double dfGCPPixel;
00236 double dfGCPLine;
00237
00239 double dfGCPX;
00240
00242 double dfGCPY;
00243
00245 double dfGCPZ;
00246 } GDAL_GCP;
00247
00248 void CPL_DLL CPL_STDCALL GDALInitGCPs( int, GDAL_GCP * );
00249 void CPL_DLL CPL_STDCALL GDALDeinitGCPs( int, GDAL_GCP * );
00250 GDAL_GCP CPL_DLL * CPL_STDCALL GDALDuplicateGCPs( int, const GDAL_GCP * );
00251
00252 int CPL_DLL CPL_STDCALL
00253 GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs,
00254 double *padfGeoTransform, int bApproxOK );
00255 int CPL_DLL CPL_STDCALL
00256 GDALInvGeoTransform( double *padfGeoTransformIn,
00257 double *padfInvGeoTransformOut );
00258 void CPL_DLL CPL_STDCALL GDALApplyGeoTransform( double *, double, double,
00259 double *, double * );
00260
00261
00262
00263
00264
00265 char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * );
00266 CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **,
00267 const char * );
00268 const char CPL_DLL * CPL_STDCALL
00269 GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * );
00270 CPLErr CPL_DLL CPL_STDCALL
00271 GDALSetMetadataItem( GDALMajorObjectH, const char *, const char *,
00272 const char * );
00273 const char CPL_DLL * CPL_STDCALL GDALGetDescription( GDALMajorObjectH );
00274 void CPL_DLL CPL_STDCALL GDALSetDescription( GDALMajorObjectH, const char * );
00275
00276
00277
00278
00279
00280 GDALDriverH CPL_DLL CPL_STDCALL GDALGetDatasetDriver( GDALDatasetH );
00281 char CPL_DLL ** CPL_STDCALL GDALGetFileList( GDALDatasetH );
00282 void CPL_DLL CPL_STDCALL GDALClose( GDALDatasetH );
00283 int CPL_DLL CPL_STDCALL GDALGetRasterXSize( GDALDatasetH );
00284 int CPL_DLL CPL_STDCALL GDALGetRasterYSize( GDALDatasetH );
00285 int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH );
00286 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int );
00287
00288 CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType,
00289 char **papszOptions );
00290
00291 CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIO(
00292 GDALDatasetH hDS, GDALRWFlag eRWFlag,
00293 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00294 void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
00295 int nBandCount, int *panBandCount,
00296 int nPixelSpace, int nLineSpace, int nBandSpace);
00297
00298 CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS,
00299 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00300 int nBXSize, int nBYSize, GDALDataType eBDataType,
00301 int nBandCount, int *panBandCount, char **papszOptions );
00302
00303 const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH );
00304 CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * );
00305 CPLErr CPL_DLL CPL_STDCALL GDALGetGeoTransform( GDALDatasetH, double * );
00306 CPLErr CPL_DLL CPL_STDCALL GDALSetGeoTransform( GDALDatasetH, double * );
00307
00308 int CPL_DLL CPL_STDCALL GDALGetGCPCount( GDALDatasetH );
00309 const char CPL_DLL * CPL_STDCALL GDALGetGCPProjection( GDALDatasetH );
00310 const GDAL_GCP CPL_DLL * CPL_STDCALL GDALGetGCPs( GDALDatasetH );
00311 CPLErr CPL_DLL CPL_STDCALL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
00312 const char * );
00313
00314 void CPL_DLL * CPL_STDCALL GDALGetInternalHandle( GDALDatasetH, const char * );
00315 int CPL_DLL CPL_STDCALL GDALReferenceDataset( GDALDatasetH );
00316 int CPL_DLL CPL_STDCALL GDALDereferenceDataset( GDALDatasetH );
00317
00318 CPLErr CPL_DLL CPL_STDCALL
00319 GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
00320 int, int *, GDALProgressFunc, void * );
00321 void CPL_DLL CPL_STDCALL GDALGetOpenDatasets( GDALDatasetH **hDS, int *pnCount );
00322 int CPL_DLL CPL_STDCALL GDALGetAccess( GDALDatasetH hDS );
00323 void CPL_DLL CPL_STDCALL GDALFlushCache( GDALDatasetH hDS );
00324
00325 CPLErr CPL_DLL CPL_STDCALL
00326 GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags );
00327
00328 CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster(
00329 GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions,
00330 GDALProgressFunc pfnProgress, void *pProgressData );
00331
00332 CPLErr CPL_DLL
00333 GDALRegenerateOverviews( GDALRasterBandH hSrcBand,
00334 int nOverviewCount, GDALRasterBandH *pahOverviewBands,
00335 const char *pszResampling,
00336 GDALProgressFunc pfnProgress, void *pProgressData );
00337
00338
00339
00340
00341
00346 #define SRCVAL(papoSource, eSrcType, ii) \
00347 (eSrcType == GDT_Byte ? \
00348 ((GByte *)papoSource)[ii] : \
00349 (eSrcType == GDT_Float32 ? \
00350 ((float *)papoSource)[ii] : \
00351 (eSrcType == GDT_Float64 ? \
00352 ((double *)papoSource)[ii] : \
00353 (eSrcType == GDT_Int32 ? \
00354 ((GInt32 *)papoSource)[ii] : \
00355 (eSrcType == GDT_UInt16 ? \
00356 ((GUInt16 *)papoSource)[ii] : \
00357 (eSrcType == GDT_Int16 ? \
00358 ((GInt16 *)papoSource)[ii] : \
00359 (eSrcType == GDT_UInt32 ? \
00360 ((GUInt32 *)papoSource)[ii] : \
00361 (eSrcType == GDT_CInt16 ? \
00362 ((GInt16 *)papoSource)[ii * 2] : \
00363 (eSrcType == GDT_CInt32 ? \
00364 ((GInt32 *)papoSource)[ii * 2] : \
00365 (eSrcType == GDT_CFloat32 ? \
00366 ((float *)papoSource)[ii * 2] : \
00367 (eSrcType == GDT_CFloat64 ? \
00368 ((double *)papoSource)[ii * 2] : 0)))))))))))
00369
00370 typedef CPLErr
00371 (*GDALDerivedPixelFunc)(void **papoSources, int nSources, void *pData,
00372 int nBufXSize, int nBufYSize,
00373 GDALDataType eSrcType, GDALDataType eBufType,
00374 int nPixelSpace, int nLineSpace);
00375
00376 GDALDataType CPL_DLL CPL_STDCALL GDALGetRasterDataType( GDALRasterBandH );
00377 void CPL_DLL CPL_STDCALL
00378 GDALGetBlockSize( GDALRasterBandH, int * pnXSize, int * pnYSize );
00379
00380 CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB,
00381 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00382 int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions );
00383
00384 CPLErr CPL_DLL CPL_STDCALL
00385 GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
00386 int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00387 void * pBuffer, int nBXSize, int nBYSize,GDALDataType eBDataType,
00388 int nPixelSpace, int nLineSpace );
00389 CPLErr CPL_DLL CPL_STDCALL GDALReadBlock( GDALRasterBandH, int, int, void * );
00390 CPLErr CPL_DLL CPL_STDCALL GDALWriteBlock( GDALRasterBandH, int, int, void * );
00391 int CPL_DLL CPL_STDCALL GDALGetRasterBandXSize( GDALRasterBandH );
00392 int CPL_DLL CPL_STDCALL GDALGetRasterBandYSize( GDALRasterBandH );
00393 GDALAccess CPL_DLL CPL_STDCALL GDALGetRasterAccess( GDALRasterBandH );
00394 int CPL_DLL CPL_STDCALL GDALGetBandNumber( GDALRasterBandH );
00395 GDALDatasetH CPL_DLL CPL_STDCALL GDALGetBandDataset( GDALRasterBandH );
00396
00397 GDALColorInterp CPL_DLL CPL_STDCALL
00398 GDALGetRasterColorInterpretation( GDALRasterBandH );
00399 CPLErr CPL_DLL CPL_STDCALL
00400 GDALSetRasterColorInterpretation( GDALRasterBandH, GDALColorInterp );
00401 GDALColorTableH CPL_DLL CPL_STDCALL GDALGetRasterColorTable( GDALRasterBandH );
00402 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
00403 int CPL_DLL CPL_STDCALL GDALHasArbitraryOverviews( GDALRasterBandH );
00404 int CPL_DLL CPL_STDCALL GDALGetOverviewCount( GDALRasterBandH );
00405 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetOverview( GDALRasterBandH, int );
00406 double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
00407 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double );
00408 char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH );
00409 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
00410 double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
00411 double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
00412 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics(
00413 GDALRasterBandH, int bApproxOK, int bForce,
00414 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev );
00415 CPLErr CPL_DLL CPL_STDCALL GDALComputeRasterStatistics(
00416 GDALRasterBandH, int bApproxOK,
00417 double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev,
00418 GDALProgressFunc pfnProgress, void *pProgressData );
00419 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterStatistics(
00420 GDALRasterBandH hBand,
00421 double dfMin, double dfMax, double dfMean, double dfStdDev );
00422
00423 const char CPL_DLL * CPL_STDCALL GDALGetRasterUnitType( GDALRasterBandH );
00424 double CPL_DLL CPL_STDCALL GDALGetRasterOffset( GDALRasterBandH, int *pbSuccess );
00425 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterOffset( GDALRasterBandH hBand, double dfNewOffset);
00426 double CPL_DLL CPL_STDCALL GDALGetRasterScale( GDALRasterBandH, int *pbSuccess );
00427 CPLErr CPL_DLL CPL_STDCALL GDALSetRasterScale( GDALRasterBandH hBand, double dfNewOffset );
00428 void CPL_DLL CPL_STDCALL
00429 GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
00430 double adfMinMax[2] );
00431 CPLErr CPL_DLL CPL_STDCALL GDALFlushRasterCache( GDALRasterBandH hBand );
00432 CPLErr CPL_DLL CPL_STDCALL GDALGetRasterHistogram( GDALRasterBandH hBand,
00433 double dfMin, double dfMax,
00434 int nBuckets, int *panHistogram,
00435 int bIncludeOutOfRange, int bApproxOK,
00436 GDALProgressFunc pfnProgress,
00437 void * pProgressData );
00438 CPLErr CPL_DLL CPL_STDCALL GDALGetDefaultHistogram( GDALRasterBandH hBand,
00439 double *pdfMin, double *pdfMax,
00440 int *pnBuckets, int **ppanHistogram,
00441 int bForce,
00442 GDALProgressFunc pfnProgress,
00443 void * pProgressData );
00444 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultHistogram( GDALRasterBandH hBand,
00445 double dfMin, double dfMax,
00446 int nBuckets, int *panHistogram );
00447 int CPL_DLL CPL_STDCALL
00448 GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
00449 GDALRasterBandH CPL_DLL CPL_STDCALL
00450 GDALGetRasterSampleOverview( GDALRasterBandH, int );
00451 CPLErr CPL_DLL CPL_STDCALL GDALFillRaster( GDALRasterBandH hBand,
00452 double dfRealValue, double dfImaginaryValue );
00453 CPLErr CPL_DLL CPL_STDCALL
00454 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
00455 double *pdfMean, double *pdfStdDev,
00456 GDALProgressFunc pfnProgress,
00457 void *pProgressData );
00458 CPLErr CPL_DLL GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand,
00459 int nOverviewCount,
00460 GDALRasterBandH *pahOverviews,
00461 GDALProgressFunc pfnProgress,
00462 void *pProgressData );
00463
00464 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL GDALGetDefaultRAT(
00465 GDALRasterBandH hBand );
00466 CPLErr CPL_DLL CPL_STDCALL GDALSetDefaultRAT( GDALRasterBandH,
00467 GDALRasterAttributeTableH );
00468 CPLErr CPL_DLL CPL_STDCALL GDALAddDerivedBandPixelFunc( const char *pszName,
00469 GDALDerivedPixelFunc pfnPixelFunc );
00470
00471 GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetMaskBand( GDALRasterBandH hBand );
00472 int CPL_DLL CPL_STDCALL GDALGetMaskFlags( GDALRasterBandH hBand );
00473 CPLErr CPL_DLL CPL_STDCALL
00474 GDALCreateMaskBand( GDALRasterBandH hBand, int nFlags );
00475
00476 #define GMF_ALL_VALID 0x01
00477 #define GMF_PER_DATASET 0x02
00478 #define GMF_ALPHA 0x04
00479 #define GMF_NODATA 0x08
00480
00481
00482
00483
00484 int CPL_DLL CPL_STDCALL GDALGeneralCmdLineProcessor( int nArgc, char ***ppapszArgv,
00485 int nOptions );
00486 void CPL_DLL CPL_STDCALL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
00487 int nWordSkip );
00488 void CPL_DLL CPL_STDCALL
00489 GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
00490 void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
00491 int nWordCount );
00492
00493 void CPL_DLL
00494 GDALCopyBits( const GByte *pabySrcData, int nSrcOffset, int nSrcStep,
00495 GByte *pabyDstData, int nDstOffset, int nDstStep,
00496 int nBitCount, int nStepCount );
00497
00498 int CPL_DLL CPL_STDCALL GDALLoadWorldFile( const char *, double * );
00499 int CPL_DLL CPL_STDCALL GDALReadWorldFile( const char *, const char *,
00500 double * );
00501 int CPL_DLL CPL_STDCALL GDALWriteWorldFile( const char *, const char *,
00502 double * );
00503 int CPL_DLL CPL_STDCALL GDALLoadTabFile( const char *, double *, char **,
00504 int *, GDAL_GCP ** );
00505 int CPL_DLL CPL_STDCALL GDALReadTabFile( const char *, double *, char **,
00506 int *, GDAL_GCP ** );
00507 char CPL_DLL ** CPL_STDCALL GDALLoadRPBFile( const char *pszFilename,
00508 char **papszSiblingFiles );
00509 CPLErr CPL_DLL CPL_STDCALL GDALWriteRPBFile( const char *pszFilename,
00510 char **papszMD );
00511 char CPL_DLL ** CPL_STDCALL GDALLoadIMDFile( const char *pszFilename,
00512 char **papszSiblingFiles );
00513 CPLErr CPL_DLL CPL_STDCALL GDALWriteIMDFile( const char *pszFilename,
00514 char **papszMD );
00515
00516 const char CPL_DLL * CPL_STDCALL GDALDecToDMS( double, const char *, int );
00517 double CPL_DLL CPL_STDCALL GDALPackedDMSToDec( double );
00518 double CPL_DLL CPL_STDCALL GDALDecToPackedDMS( double );
00519
00520
00521
00522 #ifndef GDAL_VERSION_INFO_DEFINED
00523 #define GDAL_VERSION_INFO_DEFINED
00524 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
00525 #endif
00526
00527 #ifndef GDAL_CHECK_VERSION
00528
00540 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
00541 const char* pszCallingComponentName);
00542
00544 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
00545 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
00546
00547 #endif
00548
00549 typedef struct {
00550 double dfLINE_OFF;
00551 double dfSAMP_OFF;
00552 double dfLAT_OFF;
00553 double dfLONG_OFF;
00554 double dfHEIGHT_OFF;
00555
00556 double dfLINE_SCALE;
00557 double dfSAMP_SCALE;
00558 double dfLAT_SCALE;
00559 double dfLONG_SCALE;
00560 double dfHEIGHT_SCALE;
00561
00562 double adfLINE_NUM_COEFF[20];
00563 double adfLINE_DEN_COEFF[20];
00564 double adfSAMP_NUM_COEFF[20];
00565 double adfSAMP_DEN_COEFF[20];
00566
00567 double dfMIN_LONG;
00568 double dfMIN_LAT;
00569 double dfMAX_LONG;
00570 double dfMAX_LAT;
00571
00572 } GDALRPCInfo;
00573
00574 int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * );
00575
00576
00577
00578
00580 typedef struct
00581 {
00583 short c1;
00584
00586 short c2;
00587
00589 short c3;
00590
00592 short c4;
00593 } GDALColorEntry;
00594
00595 GDALColorTableH CPL_DLL CPL_STDCALL GDALCreateColorTable( GDALPaletteInterp );
00596 void CPL_DLL CPL_STDCALL GDALDestroyColorTable( GDALColorTableH );
00597 GDALColorTableH CPL_DLL CPL_STDCALL GDALCloneColorTable( GDALColorTableH );
00598 GDALPaletteInterp CPL_DLL CPL_STDCALL GDALGetPaletteInterpretation( GDALColorTableH );
00599 int CPL_DLL CPL_STDCALL GDALGetColorEntryCount( GDALColorTableH );
00600 const GDALColorEntry CPL_DLL * CPL_STDCALL GDALGetColorEntry( GDALColorTableH, int );
00601 int CPL_DLL CPL_STDCALL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
00602 void CPL_DLL CPL_STDCALL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
00603 void CPL_DLL CPL_STDCALL GDALCreateColorRamp( GDALColorTableH hTable,
00604 int nStartIndex, const GDALColorEntry *psStartColor,
00605 int nEndIndex, const GDALColorEntry *psEndColor );
00606
00607
00608
00609
00610
00611 typedef enum { GFT_Integer , GFT_Real, GFT_String
00615 } GDALRATFieldType;
00616
00617 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
00637 } GDALRATFieldUsage;
00638
00639 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00640 GDALCreateRasterAttributeTable(void);
00641 void CPL_DLL CPL_STDCALL GDALDestroyRasterAttributeTable(
00642 GDALRasterAttributeTableH );
00643
00644 int CPL_DLL CPL_STDCALL GDALRATGetColumnCount( GDALRasterAttributeTableH );
00645
00646 const char CPL_DLL * CPL_STDCALL GDALRATGetNameOfCol(
00647 GDALRasterAttributeTableH, int );
00648 GDALRATFieldUsage CPL_DLL CPL_STDCALL GDALRATGetUsageOfCol(
00649 GDALRasterAttributeTableH, int );
00650 GDALRATFieldType CPL_DLL CPL_STDCALL GDALRATGetTypeOfCol(
00651 GDALRasterAttributeTableH, int );
00652
00653 int CPL_DLL CPL_STDCALL GDALRATGetColOfUsage( GDALRasterAttributeTableH,
00654 GDALRATFieldUsage );
00655 int CPL_DLL CPL_STDCALL GDALRATGetRowCount( GDALRasterAttributeTableH );
00656
00657 const char CPL_DLL * CPL_STDCALL GDALRATGetValueAsString(
00658 GDALRasterAttributeTableH, int ,int);
00659 int CPL_DLL CPL_STDCALL GDALRATGetValueAsInt(
00660 GDALRasterAttributeTableH, int ,int);
00661 double CPL_DLL CPL_STDCALL GDALRATGetValueAsDouble(
00662 GDALRasterAttributeTableH, int ,int);
00663
00664 void CPL_DLL CPL_STDCALL GDALRATSetValueAsString( GDALRasterAttributeTableH, int, int,
00665 const char * );
00666 void CPL_DLL CPL_STDCALL GDALRATSetValueAsInt( GDALRasterAttributeTableH, int, int,
00667 int );
00668 void CPL_DLL CPL_STDCALL GDALRATSetValueAsDouble( GDALRasterAttributeTableH, int, int,
00669 double );
00670 void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH,
00671 int );
00672 CPLErr CPL_DLL CPL_STDCALL GDALRATCreateColumn( GDALRasterAttributeTableH,
00673 const char *,
00674 GDALRATFieldType,
00675 GDALRATFieldUsage );
00676 CPLErr CPL_DLL CPL_STDCALL GDALRATSetLinearBinning( GDALRasterAttributeTableH,
00677 double, double );
00678 int CPL_DLL CPL_STDCALL GDALRATGetLinearBinning( GDALRasterAttributeTableH,
00679 double *, double * );
00680 CPLErr CPL_DLL CPL_STDCALL GDALRATInitializeFromColorTable(
00681 GDALRasterAttributeTableH, GDALColorTableH );
00682 GDALColorTableH CPL_DLL CPL_STDCALL GDALRATTranslateToColorTable(
00683 int nEntryCount );
00684 void CPL_DLL CPL_STDCALL GDALRATDumpReadable( GDALRasterAttributeTableH,
00685 FILE * );
00686 GDALRasterAttributeTableH CPL_DLL CPL_STDCALL
00687 GDALRATClone( GDALRasterAttributeTableH );
00688
00689 int CPL_DLL CPL_STDCALL GDALRATGetRowOfValue( GDALRasterAttributeTableH , double );
00690
00691
00692
00693
00694
00695
00696 void CPL_DLL CPL_STDCALL GDALSetCacheMax( int nBytes );
00697 int CPL_DLL CPL_STDCALL GDALGetCacheMax(void);
00698 int CPL_DLL CPL_STDCALL GDALGetCacheUsed(void);
00699 int CPL_DLL CPL_STDCALL GDALFlushCacheBlock(void);
00700
00701 CPL_C_END
00702
00703 #endif