00001 /****************************************************************************** 00002 * $Id: gdal_h-source.html,v 1.14 2002/12/21 19:13:12 warmerda Exp $ 00003 * 00004 * Name: gdal.h 00005 * Project: GDAL Core 00006 * Purpose: GDAL Core C/Public declarations. 00007 * Author: Frank Warmerdam, warmerda@home.com 00008 * 00009 ****************************************************************************** 00010 * Copyright (c) 1998, 2002 Frank Warmerdam 00011 * 00012 * Permission is hereby granted, free of charge, to any person obtaining a 00013 * copy of this software and associated documentation files (the "Software"), 00014 * to deal in the Software without restriction, including without limitation 00015 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00016 * and/or sell copies of the Software, and to permit persons to whom the 00017 * Software is furnished to do so, subject to the following conditions: 00018 * 00019 * The above copyright notice and this permission notice shall be included 00020 * in all copies or substantial portions of the Software. 00021 * 00022 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00023 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00024 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00025 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00026 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00027 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00028 * DEALINGS IN THE SOFTWARE. 00029 ****************************************************************************** 00030 * 00031 * $Log: gdal_h-source.html,v $ 00031 * Revision 1.14 2002/12/21 19:13:12 warmerda 00031 * updated 00031 * 00032 * Revision 1.59 2002/12/21 17:28:35 warmerda 00033 * actually, lets use 1.1.8.0 00034 * 00035 * Revision 1.58 2002/12/21 17:26:43 warmerda 00036 * updated version to 1.1.7.5 00037 * 00038 * Revision 1.57 2002/12/05 15:46:38 warmerda 00039 * added GDALReadTabFile() 00040 * 00041 * Revision 1.56 2002/11/23 18:07:41 warmerda 00042 * added DMD_CREATIONDATATYPES 00043 * 00044 * Revision 1.55 2002/10/24 14:18:29 warmerda 00045 * intermediate version update 00046 * 00047 * Revision 1.54 2002/09/11 14:17:38 warmerda 00048 * added C GDALSetDescription() 00049 * 00050 * Revision 1.53 2002/09/06 01:29:55 warmerda 00051 * added C entry points for GetAccess() and GetOpenDatasets() 00052 * 00053 * Revision 1.52 2002/09/04 06:52:35 warmerda 00054 * added GDALDestroyDriverManager 00055 * 00056 * Revision 1.51 2002/07/09 20:33:12 warmerda 00057 * expand tabs 00058 * 00059 * Revision 1.50 2002/06/12 21:13:27 warmerda 00060 * use metadata based driver info 00061 * 00062 * Revision 1.49 2002/05/28 18:55:46 warmerda 00063 * added GDALOpenShared() and GDALDumpOpenDatasets 00064 * 00065 * Revision 1.48 2002/05/14 21:38:32 warmerda 00066 * make INST_DATA overidable with binary patch 00067 * 00068 * Revision 1.47 2002/05/06 21:37:29 warmerda 00069 * added GDALGCPsToGeoTransform 00070 * 00071 * Revision 1.46 2002/04/24 16:25:04 warmerda 00072 * Ensure that GDAL{Read,Write}WorldFile() are exported on Windows. 00073 * 00074 * Revision 1.45 2002/04/19 12:22:05 dron 00075 * added GDALWriteWorldFile() 00076 * 00077 * Revision 1.44 2002/04/16 13:59:33 warmerda 00078 * added GDALVersionInfo 00079 * 00080 * Revision 1.43 2002/04/16 13:26:08 warmerda 00081 * upgrade to version 1.1.7 00082 * 00083 * Revision 1.42 2002/02/04 19:23:09 warmerda 00084 * *** empty log message *** 00085 * 00086 * Revision 1.41 2002/01/13 03:12:04 warmerda 00087 * added version/release information 00088 * 00089 * Revision 1.40 2001/12/10 17:43:22 warmerda 00090 * fixed GDALAddBand() prototype 00091 * 00092 * Revision 1.39 2001/11/18 00:52:15 warmerda 00093 * removed GDALProjDef 00094 * 00095 * Revision 1.38 2001/11/16 21:36:01 warmerda 00096 * added the AddBand() method on GDALDataset 00097 * 00098 * Revision 1.37 2001/10/17 21:47:02 warmerda 00099 * added SetGCPs() on GDALDataset 00100 * 00101 * Revision 1.36 2001/07/05 13:13:40 warmerda 00102 * added UnitType from C support 00103 * 00104 * Revision 1.35 2001/05/01 18:09:25 warmerda 00105 * added GDALReadWorldFile() 00106 * 00107 * Revision 1.34 2001/01/30 22:32:42 warmerda 00108 * added AVERAGE_MP (magnitude preserving averaging) overview resampling type 00109 * 00110 * Revision 1.33 2000/10/06 18:30:01 warmerda 00111 * Fixed CPL_DLL position for GDALGetRasterCategoryNames(). 00112 * 00113 * Revision 1.32 2000/10/06 15:23:03 warmerda 00114 * added some new functions 00115 * 00116 * Revision 1.31 2000/08/25 14:26:51 warmerda 00117 * added GDALHasArbitraryOverviews 00118 * 00119 * Revision 1.30 2000/08/18 15:24:48 warmerda 00120 * added GDALTermProgress 00121 * 00122 * Revision 1.29 2000/07/11 14:35:43 warmerda 00123 * added documentation 00124 * 00125 * Revision 1.28 2000/06/27 17:30:21 warmerda 00126 * added GDALGetRasterSampleOverview 00127 * 00128 * Revision 1.27 2000/06/26 22:17:49 warmerda 00129 * added scaled progress support 00130 * 00131 * Revision 1.26 2000/06/26 18:47:31 warmerda 00132 * added GDALBuildOverviews 00133 * 00134 * Revision 1.25 2000/06/26 15:26:21 warmerda 00135 * added GDALGetDescription 00136 * 00137 * Revision 1.24 2000/06/05 17:24:05 warmerda 00138 * added real complex support 00139 * 00140 * Revision 1.23 2000/04/30 23:22:16 warmerda 00141 * added CreateCopy support 00142 * 00143 * Revision 1.22 2000/04/26 18:25:29 warmerda 00144 * added missing CPL_DLL attributes 00145 * 00146 * Revision 1.21 2000/04/21 21:54:37 warmerda 00147 * updated metadata API 00148 * 00149 * Revision 1.20 2000/03/31 13:41:25 warmerda 00150 * added gcps 00151 * 00152 * Revision 1.19 2000/03/24 00:09:05 warmerda 00153 * rewrote cache management 00154 * 00155 * Revision 1.18 2000/03/09 23:22:03 warmerda 00156 * added GetHistogram 00157 * 00158 * Revision 1.17 2000/03/08 19:59:16 warmerda 00159 * added GDALFlushRasterCache 00160 * 00161 * Revision 1.16 2000/03/06 21:50:37 warmerda 00162 * added min/max support 00163 * 00164 * Revision 1.15 2000/03/06 02:19:56 warmerda 00165 * added lots of new functions 00166 * 00167 * Revision 1.14 2000/01/31 14:24:36 warmerda 00168 * implemented dataset delete 00169 * 00170 * Revision 1.13 1999/11/11 21:59:06 warmerda 00171 * added GetDriver() for datasets 00172 * 00173 * Revision 1.12 1999/10/21 13:23:28 warmerda 00174 * Added C callable driver related functions. 00175 * 00176 * Revision 1.11 1999/10/01 14:44:02 warmerda 00177 * added documentation 00178 * 00179 * Revision 1.10 1999/07/23 19:35:22 warmerda 00180 * added GDALSwapWords(), GDALCopyWords() 00181 * 00182 * Revision 1.9 1999/05/23 02:46:26 warmerda 00183 * Added documentation short description. 00184 * 00185 * Revision 1.8 1999/04/21 04:16:13 warmerda 00186 * experimental docs 00187 * 00188 * Revision 1.7 1999/03/02 21:09:48 warmerda 00189 * add GDALDecToDMS() 00190 * 00191 * Revision 1.6 1999/01/11 15:36:17 warmerda 00192 * Added projections support, and a few other things. 00193 * 00194 * Revision 1.5 1998/12/31 18:53:33 warmerda 00195 * Add GDALGetDriverByName 00196 * 00197 * Revision 1.4 1998/12/06 22:16:27 warmerda 00198 * Added GDALCreate(). 00199 * 00200 * Revision 1.3 1998/12/06 02:50:36 warmerda 00201 * Added three new functions. 00202 * 00203 * Revision 1.2 1998/12/03 18:34:05 warmerda 00204 * Update to use CPL 00205 * 00206 * Revision 1.1 1998/10/18 06:15:10 warmerda 00207 * Initial implementation. 00208 * 00209 */ 00210 00211 #ifndef GDAL_H_INCLUDED 00212 #define GDAL_H_INCLUDED 00213 00220 #include "cpl_port.h" 00221 #include "cpl_error.h" 00222 00223 /* -------------------------------------------------------------------- */ 00224 /* GDAL Version Information. */ 00225 /* -------------------------------------------------------------------- */ 00226 #ifndef GDAL_VERSION_NUM 00227 # define GDAL_VERSION_NUM 1180 00228 #endif 00229 #ifndef GDAL_RELEASE_DATE 00230 # define GDAL_RELEASE_DATE 20021221 00231 #endif 00232 #ifndef GDAL_RELEASE_NAME 00233 # define GDAL_RELEASE_NAME "1.1.8.0" 00234 #endif 00235 00236 /* -------------------------------------------------------------------- */ 00237 /* Significant constants. */ 00238 /* -------------------------------------------------------------------- */ 00239 00240 CPL_C_START 00241 00243 typedef enum { 00244 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, 00256 GDT_TypeCount = 12 /* maximum type # + 1 */ 00257 } GDALDataType; 00258 00259 int CPL_DLL GDALGetDataTypeSize( GDALDataType ); 00260 int CPL_DLL GDALDataTypeIsComplex( GDALDataType ); 00261 const char CPL_DLL *GDALGetDataTypeName( GDALDataType ); 00262 GDALDataType CPL_DLL GDALDataTypeUnion( GDALDataType, GDALDataType ); 00263 00265 typedef enum { GA_ReadOnly = 0, GA_Update = 1 00268 } GDALAccess; 00269 00271 typedef enum { GF_Read = 0, GF_Write = 1 00274 } GDALRWFlag; 00275 00277 typedef enum 00278 { 00279 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 00293 } GDALColorInterp; 00294 00296 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp ); 00297 00299 typedef enum 00300 { GPI_Gray=0, GPI_RGB=1, GPI_CMYK=2, GPI_HLS=3 00305 } GDALPaletteInterp; 00306 00308 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp ); 00309 00310 /* -------------------------------------------------------------------- */ 00311 /* GDAL Specific error codes. */ 00312 /* */ 00313 /* error codes 100 to 299 reserved for GDAL. */ 00314 /* -------------------------------------------------------------------- */ 00315 #define CPLE_WrongFormat 200 00316 00317 /* -------------------------------------------------------------------- */ 00318 /* Define handle types related to various internal classes. */ 00319 /* -------------------------------------------------------------------- */ 00320 typedef void *GDALMajorObjectH; 00321 typedef void *GDALDatasetH; 00322 typedef void *GDALRasterBandH; 00323 typedef void *GDALDriverH; 00324 typedef void *GDALProjDefH; 00325 typedef void *GDALColorTableH; 00326 00327 /* -------------------------------------------------------------------- */ 00328 /* Callback "progress" function. */ 00329 /* -------------------------------------------------------------------- */ 00332 typedef int (*GDALProgressFunc)(double,const char *, void *); 00333 int CPL_DLL GDALDummyProgress( double, const char *, void *); 00334 int CPL_DLL GDALTermProgress( double, const char *, void *); 00335 int CPL_DLL GDALScaledProgress( double, const char *, void *); 00336 void CPL_DLL *GDALCreateScaledProgress( double, double, 00337 GDALProgressFunc, void * ); 00338 void CPL_DLL GDALDestroyScaledProgress( void * ); 00339 00340 /* ==================================================================== */ 00341 /* Registration/driver related. */ 00342 /* ==================================================================== */ 00343 00344 typedef struct { 00345 char *pszOptionName; 00346 char *pszValueType; /* "boolean", "int", "float", "string", 00347 "string-select" */ 00348 char *pszDescription; 00349 char **papszOptions; 00350 } GDALOptionDefinition; 00351 00352 #define GDAL_DMD_LONGNAME "DMD_LONGNAME" 00353 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC" 00354 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE" 00355 #define GDAL_DMD_EXTENSION "DMD_EXTENSION" 00356 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST" 00357 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES" 00358 00359 #define GDAL_DCAP_CREATE "DCAP_CREATE" 00360 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY" 00361 00362 void CPL_DLL GDALAllRegister( void ); 00363 00364 GDALDatasetH CPL_DLL GDALCreate( GDALDriverH hDriver, 00365 const char *, int, int, int, GDALDataType, 00366 char ** ); 00367 GDALDatasetH CPL_DLL GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH, 00368 int, char **, GDALProgressFunc, void * ); 00369 00370 GDALDatasetH CPL_DLL GDALOpen( const char *, GDALAccess ); 00371 GDALDatasetH CPL_DLL GDALOpenShared( const char *, GDALAccess ); 00372 int CPL_DLL GDALDumpOpenDatasets( FILE * ); 00373 00374 GDALDriverH CPL_DLL GDALGetDriverByName( const char * ); 00375 int CPL_DLL GDALGetDriverCount(); 00376 GDALDriverH CPL_DLL GDALGetDriver( int ); 00377 int CPL_DLL GDALRegisterDriver( GDALDriverH ); 00378 void CPL_DLL GDALDeregisterDriver( GDALDriverH ); 00379 void CPL_DLL GDALDestroyDriverManager( void ); 00380 CPLErr CPL_DLL GDALDeleteDataset( GDALDriverH, const char * ); 00381 00382 /* The following are deprecated */ 00383 const char CPL_DLL *GDALGetDriverShortName( GDALDriverH ); 00384 const char CPL_DLL *GDALGetDriverLongName( GDALDriverH ); 00385 const char CPL_DLL *GDALGetDriverHelpTopic( GDALDriverH ); 00386 00387 /* ==================================================================== */ 00388 /* GDAL_GCP */ 00389 /* ==================================================================== */ 00390 00392 typedef struct 00393 { 00395 char *pszId; 00396 00398 char *pszInfo; 00399 00401 double dfGCPPixel; 00403 double dfGCPLine; 00404 00406 double dfGCPX; 00407 00409 double dfGCPY; 00410 00412 double dfGCPZ; 00413 } GDAL_GCP; 00414 00415 void CPL_DLL GDALInitGCPs( int, GDAL_GCP * ); 00416 void CPL_DLL GDALDeinitGCPs( int, GDAL_GCP * ); 00417 GDAL_GCP CPL_DLL *GDALDuplicateGCPs( int, const GDAL_GCP * ); 00418 00419 int CPL_DLL GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs, 00420 double *padfGeoTransform, int bApproxOK ); 00421 00422 /* ==================================================================== */ 00423 /* major objects (dataset, and, driver, drivermanager). */ 00424 /* ==================================================================== */ 00425 00426 char CPL_DLL **GDALGetMetadata( GDALMajorObjectH, const char * ); 00427 CPLErr CPL_DLL GDALSetMetadata( GDALMajorObjectH, char **, 00428 const char * ); 00429 const char CPL_DLL *GDALGetMetadataItem( GDALMajorObjectH, const char *, 00430 const char * ); 00431 CPLErr CPL_DLL GDALSetMetadataItem( GDALMajorObjectH, 00432 const char *, const char *, 00433 const char * ); 00434 const char CPL_DLL *GDALGetDescription( GDALMajorObjectH ); 00435 void CPL_DLL GDALSetDescription( GDALMajorObjectH, const char * ); 00436 00437 /* ==================================================================== */ 00438 /* GDALDataset class ... normally this represents one file. */ 00439 /* ==================================================================== */ 00440 00441 GDALDriverH CPL_DLL GDALGetDatasetDriver( GDALDatasetH ); 00442 void CPL_DLL GDALClose( GDALDatasetH ); 00443 int CPL_DLL GDALGetRasterXSize( GDALDatasetH ); 00444 int CPL_DLL GDALGetRasterYSize( GDALDatasetH ); 00445 int CPL_DLL GDALGetRasterCount( GDALDatasetH ); 00446 GDALRasterBandH CPL_DLL GDALGetRasterBand( GDALDatasetH, int ); 00447 00448 CPLErr CPL_DLL GDALAddBand( GDALDatasetH hDS, GDALDataType eType, 00449 char **papszOptions ); 00450 00451 const char CPL_DLL *GDALGetProjectionRef( GDALDatasetH ); 00452 CPLErr CPL_DLL GDALSetProjection( GDALDatasetH, const char * ); 00453 CPLErr CPL_DLL GDALGetGeoTransform( GDALDatasetH, double * ); 00454 CPLErr CPL_DLL GDALSetGeoTransform( GDALDatasetH, double * ); 00455 00456 int CPL_DLL GDALGetGCPCount( GDALDatasetH ); 00457 const char CPL_DLL *GDALGetGCPProjection( GDALDatasetH ); 00458 const GDAL_GCP CPL_DLL *GDALGetGCPs( GDALDatasetH ); 00459 CPLErr CPL_DLL GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *, 00460 const char * ); 00461 00462 void CPL_DLL *GDALGetInternalHandle( GDALDatasetH, const char * ); 00463 int CPL_DLL GDALReferenceDataset( GDALDatasetH ); 00464 int CPL_DLL GDALDereferenceDataset( GDALDatasetH ); 00465 00466 CPLErr CPL_DLL GDALBuildOverviews( GDALDatasetH, const char *, int, int *, 00467 int, int *, GDALProgressFunc, void * ); 00468 void CPL_DLL GDALGetOpenDatasets( GDALDatasetH ***hDS, int *pnCount ); 00469 int CPL_DLL GDALGetAccess( GDALDatasetH hDS ); 00470 00471 /* ==================================================================== */ 00472 /* GDALRasterBand ... one band/channel in a dataset. */ 00473 /* ==================================================================== */ 00474 00475 GDALDataType CPL_DLL GDALGetRasterDataType( GDALRasterBandH ); 00476 void CPL_DLL GDALGetBlockSize( GDALRasterBandH, 00477 int * pnXSize, int * pnYSize ); 00478 00479 CPLErr CPL_DLL GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag, 00480 int nDSXOff, int nDSYOff, 00481 int nDSXSize, int nDSYSize, 00482 void * pBuffer, int nBXSize, int nBYSize, 00483 GDALDataType eBDataType, 00484 int nPixelSpace, int nLineSpace ); 00485 CPLErr CPL_DLL GDALReadBlock( GDALRasterBandH, int, int, void * ); 00486 CPLErr CPL_DLL GDALWriteBlock( GDALRasterBandH, int, int, void * ); 00487 int CPL_DLL GDALGetRasterBandXSize( GDALRasterBandH ); 00488 int CPL_DLL GDALGetRasterBandYSize( GDALRasterBandH ); 00489 char CPL_DLL **GDALGetRasterMetadata( GDALRasterBandH ); 00490 00491 GDALColorInterp CPL_DLL GDALGetRasterColorInterpretation( GDALRasterBandH ); 00492 CPLErr CPL_DLL GDALSetRasterColorInterpretation( GDALRasterBandH, 00493 GDALColorInterp ); 00494 GDALColorTableH CPL_DLL GDALGetRasterColorTable( GDALRasterBandH ); 00495 CPLErr CPL_DLL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH ); 00496 int CPL_DLL GDALHasArbitraryOverviews( GDALRasterBandH ); 00497 int CPL_DLL GDALGetOverviewCount( GDALRasterBandH ); 00498 GDALRasterBandH CPL_DLL GDALGetOverview( GDALRasterBandH, int ); 00499 double CPL_DLL GDALGetRasterNoDataValue( GDALRasterBandH, int * ); 00500 CPLErr CPL_DLL GDALSetRasterNoDataValue( GDALRasterBandH, double ); 00501 char CPL_DLL ** GDALGetRasterCategoryNames( GDALRasterBandH ); 00502 CPLErr CPL_DLL GDALSetRasterCategoryNames( GDALRasterBandH, char ** ); 00503 double CPL_DLL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess ); 00504 double CPL_DLL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess ); 00505 const char CPL_DLL *GDALGetRasterUnitType( GDALRasterBandH ); 00506 void CPL_DLL GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK, 00507 double adfMinMax[2] ); 00508 CPLErr CPL_DLL GDALFlushRasterCache( GDALRasterBandH hBand ); 00509 CPLErr CPL_DLL GDALGetRasterHistogram( GDALRasterBandH hBand, 00510 double dfMin, double dfMax, 00511 int nBuckets, int *panHistogram, 00512 int bIncludeOutOfRange, int bApproxOK, 00513 GDALProgressFunc pfnProgress, 00514 void * pProgressData ); 00515 int CPL_DLL GDALGetRandomRasterSample( GDALRasterBandH, int, float * ); 00516 GDALRasterBandH CPL_DLL GDALGetRasterSampleOverview( GDALRasterBandH, int ); 00517 00518 CPLErr GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep, 00519 double *pdfMean, double *pdfStdDev, 00520 GDALProgressFunc pfnProgress, 00521 void *pProgressData ); 00522 CPLErr GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand, 00523 int nOverviewCount, 00524 GDALRasterBandH *pahOverviews, 00525 GDALProgressFunc pfnProgress, 00526 void *pProgressData ); 00527 00528 /* -------------------------------------------------------------------- */ 00529 /* Helper functions. */ 00530 /* -------------------------------------------------------------------- */ 00531 void CPL_DLL GDALSwapWords( void *pData, int nWordSize, int nWordCount, 00532 int nWordSkip ); 00533 void CPL_DLL 00534 GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset, 00535 void * pDstData, GDALDataType eDstType, int nDstPixelOffset, 00536 int nWordCount ); 00537 00538 int CPL_DLL GDALReadWorldFile( const char *pszBaseFilename, 00539 const char *pszExtension, 00540 double * padfGeoTransform ); 00541 int CPL_DLL GDALWriteWorldFile( const char *pszBaseFilename, 00542 const char *pszExtension, 00543 double * padfGeoTransform ); 00544 int CPL_DLL GDALReadTabFile( const char *pszBaseFilename, 00545 double *padfGeoTransform, char **ppszWKT, 00546 int *pnGCPCount, GDAL_GCP **ppasGCPs ); 00547 00548 const char CPL_DLL *GDALDecToDMS( double, const char *, int ); 00549 00550 const char CPL_DLL *GDALVersionInfo( const char * ); 00551 00552 /* ==================================================================== */ 00553 /* Color tables. */ 00554 /* ==================================================================== */ 00556 typedef struct 00557 { 00559 short c1; 00560 00562 short c2; 00563 00565 short c3; 00566 00568 short c4; 00569 } GDALColorEntry; 00570 00571 GDALColorTableH CPL_DLL GDALCreateColorTable( GDALPaletteInterp ); 00572 void CPL_DLL GDALDestroyColorTable( GDALColorTableH ); 00573 GDALColorTableH CPL_DLL GDALCloneColorTable( GDALColorTableH ); 00574 GDALPaletteInterp CPL_DLL GDALGetPaletteInterpretation( GDALColorTableH ); 00575 int CPL_DLL GDALGetColorEntryCount( GDALColorTableH ); 00576 const GDALColorEntry CPL_DLL *GDALGetColorEntry( GDALColorTableH, int ); 00577 int CPL_DLL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *); 00578 void CPL_DLL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * ); 00579 00580 /* ==================================================================== */ 00581 /* GDAL Cache Management */ 00582 /* ==================================================================== */ 00583 00584 void CPL_DLL GDALSetCacheMax( int nBytes ); 00585 int CPL_DLL GDALGetCacheMax(); 00586 int CPL_DLL GDALGetCacheUsed(); 00587 int CPL_DLL GDALFlushCacheBlock(); 00588 00589 CPL_C_END 00590 00591 #endif /* ndef GDAL_H_INCLUDED */