Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

gdal.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * $Id: gdal.h,v 1.77 2004/03/10 19:18:29 warmerda Exp $
00003  *
00004  * Name:     gdal.h
00005  * Project:  GDAL Core
00006  * Purpose:  GDAL Core C/Public declarations.
00007  * Author:   Frank Warmerdam, warmerdam@pobox.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,v $
00032  * Revision 1.77  2004/03/10 19:18:29  warmerda
00033  * updated date
00034  *
00035  * Revision 1.76  2004/03/01 18:30:44  warmerda
00036  * Updated release date.
00037  *
00038  * Revision 1.75  2004/02/25 09:03:15  dron
00039  * Added GDALPackedDMSToDec() and GDALDecToPackedDMS() functions.
00040  *
00041  * Revision 1.74  2004/02/19 15:55:52  warmerda
00042  * updated to 1.2.0
00043  *
00044  * Revision 1.73  2004/02/04 21:30:12  warmerda
00045  * ensure GDALGetDataTypeByName is exported
00046  *
00047  * Revision 1.72  2004/01/18 16:43:37  dron
00048  * Added GDALGetDataTypeByName() function.
00049  *
00050  * Revision 1.71  2003/07/18 04:46:48  sperkins
00051  * added CPL_DLL to GDALFillRaster
00052  *
00053  * Revision 1.70  2003/06/27 20:03:11  warmerda
00054  * updated version to 1.1.9
00055  *
00056  * Revision 1.69  2003/06/03 19:44:00  warmerda
00057  * added GDALRPCInfo support
00058  *
00059  * Revision 1.68  2003/05/06 05:20:38  sperkins
00060  * cleaned up comments
00061  *
00062  * Revision 1.67  2003/05/06 05:13:36  sperkins
00063  * added Fill() and GDALFillRaster()
00064  *
00065  * Revision 1.66  2003/05/02 19:47:57  warmerda
00066  * added C GetBandNumber and GetBandDataset entry points
00067  *
00068  * Revision 1.65  2003/04/30 17:13:48  warmerda
00069  * added docs for many C functions
00070  *
00071  * Revision 1.64  2003/04/30 15:48:31  warmerda
00072  * Fixed email address, trimmed log messages.
00073  *
00074  * Revision 1.63  2003/04/25 19:46:13  warmerda
00075  * added GDALDatasetRasterIO
00076  *
00077  * Revision 1.62  2003/03/18 06:01:03  warmerda
00078  * Added GDALFlushCache()
00079  *
00080  * Revision 1.61  2003/02/20 18:34:12  warmerda
00081  * added GDALGetRasterAccess()
00082  *
00083  * Revision 1.60  2003/01/27 21:55:52  warmerda
00084  * various documentation improvements
00085  *
00086  * Revision 1.59  2002/12/21 17:28:35  warmerda
00087  * actually, lets use 1.1.8.0
00088  *
00089  * Revision 1.58  2002/12/21 17:26:43  warmerda
00090  * updated version to 1.1.7.5
00091  *
00092  * Revision 1.57  2002/12/05 15:46:38  warmerda
00093  * added GDALReadTabFile()
00094  *
00095  * Revision 1.56  2002/11/23 18:07:41  warmerda
00096  * added DMD_CREATIONDATATYPES
00097  *
00098  * Revision 1.55  2002/10/24 14:18:29  warmerda
00099  * intermediate version update
00100  *
00101  * Revision 1.54  2002/09/11 14:17:38  warmerda
00102  * added C GDALSetDescription()
00103  *
00104  * Revision 1.53  2002/09/06 01:29:55  warmerda
00105  * added C entry points for GetAccess() and GetOpenDatasets()
00106  *
00107  * Revision 1.52  2002/09/04 06:52:35  warmerda
00108  * added GDALDestroyDriverManager
00109  *
00110  * Revision 1.51  2002/07/09 20:33:12  warmerda
00111  * expand tabs
00112  *
00113  * Revision 1.50  2002/06/12 21:13:27  warmerda
00114  * use metadata based driver info
00115  *
00116  * Revision 1.49  2002/05/28 18:55:46  warmerda
00117  * added GDALOpenShared() and GDALDumpOpenDatasets
00118  *
00119  * Revision 1.48  2002/05/14 21:38:32  warmerda
00120  * make INST_DATA overidable with binary patch
00121  *
00122  * Revision 1.47  2002/05/06 21:37:29  warmerda
00123  * added GDALGCPsToGeoTransform
00124  *
00125  * Revision 1.46  2002/04/24 16:25:04  warmerda
00126  * Ensure that GDAL{Read,Write}WorldFile() are exported on Windows.
00127  *
00128  * Revision 1.45  2002/04/19 12:22:05  dron
00129  * added GDALWriteWorldFile()
00130  *
00131  * Revision 1.44  2002/04/16 13:59:33  warmerda
00132  * added GDALVersionInfo
00133  *
00134  * Revision 1.43  2002/04/16 13:26:08  warmerda
00135  * upgrade to version 1.1.7
00136  */
00137 
00138 #ifndef GDAL_H_INCLUDED
00139 #define GDAL_H_INCLUDED
00140 
00147 #include "cpl_port.h"
00148 #include "cpl_error.h"
00149 
00150 /* -------------------------------------------------------------------- */
00151 /*      GDAL Version Information.                                       */
00152 /* -------------------------------------------------------------------- */
00153 #ifndef GDAL_VERSION_NUM
00154 #  define GDAL_VERSION_NUM      1200
00155 #endif
00156 #ifndef GDAL_RELEASE_DATE
00157 #  define GDAL_RELEASE_DATE     20040310
00158 #endif
00159 #ifndef GDAL_RELEASE_NAME
00160 #  define GDAL_RELEASE_NAME     "1.2.0.0"
00161 #endif
00162 
00163 /* -------------------------------------------------------------------- */
00164 /*      Significant constants.                                          */
00165 /* -------------------------------------------------------------------- */
00166 
00167 CPL_C_START
00168 
00170 typedef enum {
00171     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,
00183     GDT_TypeCount = 12          /* maximum type # + 1 */
00184 } GDALDataType;
00185 
00186 int CPL_DLL GDALGetDataTypeSize( GDALDataType );
00187 int CPL_DLL GDALDataTypeIsComplex( GDALDataType );
00188 const char CPL_DLL *GDALGetDataTypeName( GDALDataType );
00189 GDALDataType CPL_DLL GDALGetDataTypeByName( const char * );
00190 GDALDataType CPL_DLL GDALDataTypeUnion( GDALDataType, GDALDataType );
00191 
00193 typedef enum { GA_ReadOnly = 0,           GA_Update = 1
00196 } GDALAccess;
00197 
00199 typedef enum {   GF_Read = 0,  GF_Write = 1
00202 } GDALRWFlag;
00203 
00205 typedef enum
00206 {
00207     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
00221 } GDALColorInterp;
00222 
00224 const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp );
00225 
00227 typedef enum 
00228 {                      GPI_Gray=0,  GPI_RGB=1, GPI_CMYK=2,     GPI_HLS=3
00233 } GDALPaletteInterp;
00234 
00236 const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp );
00237 
00238 /* -------------------------------------------------------------------- */
00239 /*      GDAL Specific error codes.                                      */
00240 /*                                                                      */
00241 /*      error codes 100 to 299 reserved for GDAL.                       */
00242 /* -------------------------------------------------------------------- */
00243 #define CPLE_WrongFormat        200
00244 
00245 /* -------------------------------------------------------------------- */
00246 /*      Define handle types related to various internal classes.        */
00247 /* -------------------------------------------------------------------- */
00248 typedef void *GDALMajorObjectH;
00249 typedef void *GDALDatasetH;
00250 typedef void *GDALRasterBandH;
00251 typedef void *GDALDriverH;
00252 typedef void *GDALProjDefH;
00253 typedef void *GDALColorTableH;
00254 
00255 /* -------------------------------------------------------------------- */
00256 /*      Callback "progress" function.                                   */
00257 /* -------------------------------------------------------------------- */
00258 
00259 typedef int (*GDALProgressFunc)(double,const char *, void *);
00260 int CPL_DLL GDALDummyProgress( double, const char *, void *);
00261 int CPL_DLL GDALTermProgress( double, const char *, void *);
00262 int CPL_DLL GDALScaledProgress( double, const char *, void *);
00263 void CPL_DLL *GDALCreateScaledProgress( double, double,
00264                                         GDALProgressFunc, void * );
00265 void CPL_DLL GDALDestroyScaledProgress( void * );
00266 
00267 /* ==================================================================== */
00268 /*      Registration/driver related.                                    */
00269 /* ==================================================================== */
00270 
00271 typedef struct {
00272     char      *pszOptionName;
00273     char      *pszValueType;   /* "boolean", "int", "float", "string", 
00274                                   "string-select" */
00275     char      *pszDescription;
00276     char      **papszOptions;
00277 } GDALOptionDefinition;
00278 
00279 #define GDAL_DMD_LONGNAME "DMD_LONGNAME"
00280 #define GDAL_DMD_HELPTOPIC "DMD_HELPTOPIC"
00281 #define GDAL_DMD_MIMETYPE "DMD_MIMETYPE"
00282 #define GDAL_DMD_EXTENSION "DMD_EXTENSION"
00283 #define GDAL_DMD_CREATIONOPTIONLIST "DMD_CREATIONOPTIONLIST" 
00284 #define GDAL_DMD_CREATIONDATATYPES "DMD_CREATIONDATATYPES" 
00285 
00286 #define GDAL_DCAP_CREATE     "DCAP_CREATE"
00287 #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY"
00288 
00289 void CPL_DLL GDALAllRegister( void );
00290 
00291 GDALDatasetH CPL_DLL GDALCreate( GDALDriverH hDriver,
00292                                  const char *, int, int, int, GDALDataType,
00293                                  char ** );
00294 GDALDatasetH CPL_DLL GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH,
00295                                      int, char **, GDALProgressFunc, void * );
00296 
00297 GDALDatasetH CPL_DLL GDALOpen( const char *pszFilename, GDALAccess eAccess );
00298 GDALDatasetH CPL_DLL GDALOpenShared( const char *, GDALAccess );
00299 int          CPL_DLL GDALDumpOpenDatasets( FILE * );
00300 
00301 GDALDriverH CPL_DLL GDALGetDriverByName( const char * );
00302 int CPL_DLL         GDALGetDriverCount();
00303 GDALDriverH CPL_DLL GDALGetDriver( int );
00304 int         CPL_DLL GDALRegisterDriver( GDALDriverH );
00305 void        CPL_DLL GDALDeregisterDriver( GDALDriverH );
00306 void        CPL_DLL GDALDestroyDriverManager( void );
00307 CPLErr      CPL_DLL GDALDeleteDataset( GDALDriverH, const char * );
00308 
00309 /* The following are deprecated */
00310 const char CPL_DLL *GDALGetDriverShortName( GDALDriverH );
00311 const char CPL_DLL *GDALGetDriverLongName( GDALDriverH );
00312 const char CPL_DLL *GDALGetDriverHelpTopic( GDALDriverH );
00313 
00314 /* ==================================================================== */
00315 /*      GDAL_GCP                                                        */
00316 /* ==================================================================== */
00317 
00319 typedef struct
00320 {
00322     char        *pszId; 
00323 
00325     char        *pszInfo;
00326 
00328     double      dfGCPPixel;
00330     double      dfGCPLine;
00331 
00333     double      dfGCPX;
00334 
00336     double      dfGCPY;
00337 
00339     double      dfGCPZ;
00340 } GDAL_GCP;
00341 
00342 void CPL_DLL GDALInitGCPs( int, GDAL_GCP * );
00343 void CPL_DLL GDALDeinitGCPs( int, GDAL_GCP * );
00344 GDAL_GCP CPL_DLL *GDALDuplicateGCPs( int, const GDAL_GCP * );
00345 
00346 int CPL_DLL GDALGCPsToGeoTransform( int nGCPCount, const GDAL_GCP *pasGCPs, 
00347                                     double *padfGeoTransform, int bApproxOK ); 
00348 int CPL_DLL GDALInvGeoTransform( double *padfGeoTransformIn, 
00349                                  double *padfInvGeoTransformOut );
00350 
00351 /* ==================================================================== */
00352 /*      major objects (dataset, and, driver, drivermanager).            */
00353 /* ==================================================================== */
00354 
00355 char CPL_DLL  **GDALGetMetadata( GDALMajorObjectH, const char * );
00356 CPLErr CPL_DLL  GDALSetMetadata( GDALMajorObjectH, char **,
00357                                  const char * );
00358 const char CPL_DLL *GDALGetMetadataItem( GDALMajorObjectH, const char *, 
00359                                          const char * );
00360 CPLErr CPL_DLL  GDALSetMetadataItem( GDALMajorObjectH,
00361                                      const char *, const char *,
00362                                      const char * );
00363 const char CPL_DLL *GDALGetDescription( GDALMajorObjectH );
00364 void       CPL_DLL  GDALSetDescription( GDALMajorObjectH, const char * );
00365 
00366 /* ==================================================================== */
00367 /*      GDALDataset class ... normally this represents one file.        */
00368 /* ==================================================================== */
00369 
00370 GDALDriverH CPL_DLL GDALGetDatasetDriver( GDALDatasetH );
00371 void CPL_DLL   GDALClose( GDALDatasetH );
00372 int CPL_DLL     GDALGetRasterXSize( GDALDatasetH );
00373 int CPL_DLL     GDALGetRasterYSize( GDALDatasetH );
00374 int CPL_DLL     GDALGetRasterCount( GDALDatasetH );
00375 GDALRasterBandH CPL_DLL GDALGetRasterBand( GDALDatasetH, int );
00376 
00377 CPLErr CPL_DLL  GDALAddBand( GDALDatasetH hDS, GDALDataType eType, 
00378                              char **papszOptions );
00379 
00380 CPLErr CPL_DLL GDALDatasetRasterIO( 
00381     GDALDatasetH hDS, GDALRWFlag eRWFlag,
00382     int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize,
00383     void * pBuffer, int nBXSize, int nBYSize, GDALDataType eBDataType,
00384     int nBandCount, int *panBandCount, 
00385     int nPixelSpace, int nLineSpace, int nBandSpace);
00386 
00387 const char CPL_DLL *GDALGetProjectionRef( GDALDatasetH );
00388 CPLErr CPL_DLL  GDALSetProjection( GDALDatasetH, const char * );
00389 CPLErr CPL_DLL  GDALGetGeoTransform( GDALDatasetH, double * );
00390 CPLErr CPL_DLL  GDALSetGeoTransform( GDALDatasetH, double * );
00391 
00392 int CPL_DLL     GDALGetGCPCount( GDALDatasetH );
00393 const char CPL_DLL *GDALGetGCPProjection( GDALDatasetH );
00394 const GDAL_GCP CPL_DLL *GDALGetGCPs( GDALDatasetH );
00395 CPLErr CPL_DLL  GDALSetGCPs( GDALDatasetH, int, const GDAL_GCP *,
00396                              const char * );
00397 
00398 void CPL_DLL   *GDALGetInternalHandle( GDALDatasetH, const char * );
00399 int CPL_DLL     GDALReferenceDataset( GDALDatasetH );
00400 int CPL_DLL     GDALDereferenceDataset( GDALDatasetH );
00401 
00402 CPLErr CPL_DLL  GDALBuildOverviews( GDALDatasetH, const char *, int, int *,
00403                                     int, int *, GDALProgressFunc, void * );
00404 void CPL_DLL    GDALGetOpenDatasets( GDALDatasetH ***hDS, int *pnCount );
00405 int CPL_DLL     GDALGetAccess( GDALDatasetH hDS );
00406 void CPL_DLL    GDALFlushCache( GDALDatasetH hDS );
00407 
00408 /* ==================================================================== */
00409 /*      GDALRasterBand ... one band/channel in a dataset.               */
00410 /* ==================================================================== */
00411 
00412 GDALDataType CPL_DLL GDALGetRasterDataType( GDALRasterBandH );
00413 void CPL_DLL    GDALGetBlockSize( GDALRasterBandH,
00414                                   int * pnXSize, int * pnYSize );
00415 
00416 CPLErr CPL_DLL GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag,
00417                               int nDSXOff, int nDSYOff,
00418                               int nDSXSize, int nDSYSize,
00419                               void * pBuffer, int nBXSize, int nBYSize,
00420                               GDALDataType eBDataType,
00421                               int nPixelSpace, int nLineSpace );
00422 CPLErr CPL_DLL GDALReadBlock( GDALRasterBandH, int, int, void * );
00423 CPLErr CPL_DLL GDALWriteBlock( GDALRasterBandH, int, int, void * );
00424 int CPL_DLL GDALGetRasterBandXSize( GDALRasterBandH );
00425 int CPL_DLL GDALGetRasterBandYSize( GDALRasterBandH );
00426 char CPL_DLL  **GDALGetRasterMetadata( GDALRasterBandH );
00427 GDALAccess CPL_DLL GDALGetRasterAccess( GDALRasterBandH );
00428 int CPL_DLL GDALGetBandNumber( GDALRasterBandH );
00429 GDALDatasetH CPL_DLL GDALGetBandDataset( GDALRasterBandH );
00430 
00431 GDALColorInterp CPL_DLL GDALGetRasterColorInterpretation( GDALRasterBandH );
00432 CPLErr CPL_DLL GDALSetRasterColorInterpretation( GDALRasterBandH,
00433                                                  GDALColorInterp );
00434 GDALColorTableH CPL_DLL GDALGetRasterColorTable( GDALRasterBandH );
00435 CPLErr CPL_DLL GDALSetRasterColorTable( GDALRasterBandH, GDALColorTableH );
00436 int CPL_DLL     GDALHasArbitraryOverviews( GDALRasterBandH );
00437 int CPL_DLL             GDALGetOverviewCount( GDALRasterBandH );
00438 GDALRasterBandH CPL_DLL GDALGetOverview( GDALRasterBandH, int );
00439 double CPL_DLL GDALGetRasterNoDataValue( GDALRasterBandH, int * );
00440 CPLErr CPL_DLL GDALSetRasterNoDataValue( GDALRasterBandH, double );
00441 char CPL_DLL ** GDALGetRasterCategoryNames( GDALRasterBandH );
00442 CPLErr CPL_DLL GDALSetRasterCategoryNames( GDALRasterBandH, char ** );
00443 double CPL_DLL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess );
00444 double CPL_DLL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess );
00445 const char CPL_DLL *GDALGetRasterUnitType( GDALRasterBandH );
00446 void CPL_DLL GDALComputeRasterMinMax( GDALRasterBandH hBand, int bApproxOK,
00447                                       double adfMinMax[2] );
00448 CPLErr CPL_DLL GDALFlushRasterCache( GDALRasterBandH hBand );
00449 CPLErr CPL_DLL GDALGetRasterHistogram( GDALRasterBandH hBand,
00450                                        double dfMin, double dfMax,
00451                                        int nBuckets, int *panHistogram,
00452                                        int bIncludeOutOfRange, int bApproxOK,
00453                                        GDALProgressFunc pfnProgress,
00454                                        void * pProgressData );
00455 int CPL_DLL GDALGetRandomRasterSample( GDALRasterBandH, int, float * );
00456 GDALRasterBandH CPL_DLL GDALGetRasterSampleOverview( GDALRasterBandH, int );
00457 CPLErr CPL_DLL GDALFillRaster( GDALRasterBandH hBand, double dfRealValue,
00458                        double dfImaginaryValue );
00459 CPLErr GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep, 
00460                              double *pdfMean, double *pdfStdDev, 
00461                              GDALProgressFunc pfnProgress,
00462                              void *pProgressData );
00463 CPLErr GDALOverviewMagnitudeCorrection( GDALRasterBandH hBaseBand, 
00464                                         int nOverviewCount, 
00465                                         GDALRasterBandH *pahOverviews, 
00466                                         GDALProgressFunc pfnProgress, 
00467                                         void *pProgressData );
00468 
00469 /* -------------------------------------------------------------------- */
00470 /*      Helper functions.                                               */
00471 /* -------------------------------------------------------------------- */
00472 void CPL_DLL GDALSwapWords( void *pData, int nWordSize, int nWordCount,
00473                             int nWordSkip );
00474 void CPL_DLL
00475     GDALCopyWords( void * pSrcData, GDALDataType eSrcType, int nSrcPixelOffset,
00476                    void * pDstData, GDALDataType eDstType, int nDstPixelOffset,
00477                    int nWordCount );
00478 
00479 int CPL_DLL GDALReadWorldFile( const char *pszBaseFilename, 
00480                        const char *pszExtension, 
00481                        double * padfGeoTransform );
00482 int CPL_DLL GDALWriteWorldFile( const char *pszBaseFilename, 
00483                        const char *pszExtension, 
00484                        double * padfGeoTransform );
00485 int CPL_DLL GDALReadTabFile( const char *pszBaseFilename, 
00486                              double *padfGeoTransform, char **ppszWKT,
00487                              int *pnGCPCount, GDAL_GCP **ppasGCPs );
00488 
00489 const char CPL_DLL *GDALDecToDMS( double, const char *, int );
00490 double CPL_DLL GDALPackedDMSToDec( double );
00491 double CPL_DLL GDALDecToPackedDMS( double );
00492 
00493 const char CPL_DLL *GDALVersionInfo( const char * );
00494 
00495 typedef struct { 
00496     double      dfLINE_OFF;
00497     double      dfSAMP_OFF;
00498     double      dfLAT_OFF;
00499     double      dfLONG_OFF;
00500     double      dfHEIGHT_OFF;
00501 
00502     double      dfLINE_SCALE;
00503     double      dfSAMP_SCALE;
00504     double      dfLAT_SCALE;
00505     double      dfLONG_SCALE;
00506     double      dfHEIGHT_SCALE;
00507 
00508     double      adfLINE_NUM_COEFF[20];
00509     double      adfLINE_DEN_COEFF[20];
00510     double      adfSAMP_NUM_COEFF[20];
00511     double      adfSAMP_DEN_COEFF[20];
00512     
00513     double      dfMIN_LONG;
00514     double      dfMIN_LAT;
00515     double      dfMAX_LONG;
00516     double      dfMAX_LAT;
00517 
00518 } GDALRPCInfo;
00519 
00520 int CPL_DLL GDALExtractRPCInfo( char **, GDALRPCInfo * );
00521 
00522 /* ==================================================================== */
00523 /*      Color tables.                                                   */
00524 /* ==================================================================== */
00526 typedef struct
00527 {
00529     short      c1;      
00530 
00532     short      c2;      
00533 
00535     short      c3;      
00536 
00538     short      c4;      
00539 } GDALColorEntry;
00540 
00541 GDALColorTableH CPL_DLL GDALCreateColorTable( GDALPaletteInterp );
00542 void CPL_DLL            GDALDestroyColorTable( GDALColorTableH );
00543 GDALColorTableH CPL_DLL GDALCloneColorTable( GDALColorTableH );
00544 GDALPaletteInterp CPL_DLL GDALGetPaletteInterpretation( GDALColorTableH );
00545 int CPL_DLL             GDALGetColorEntryCount( GDALColorTableH );
00546 const GDALColorEntry CPL_DLL *GDALGetColorEntry( GDALColorTableH, int );
00547 int CPL_DLL GDALGetColorEntryAsRGB( GDALColorTableH, int, GDALColorEntry *);
00548 void CPL_DLL GDALSetColorEntry( GDALColorTableH, int, const GDALColorEntry * );
00549 
00550 /* ==================================================================== */
00551 /*      GDAL Cache Management                                           */
00552 /* ==================================================================== */
00553 
00554 void CPL_DLL GDALSetCacheMax( int nBytes );
00555 int CPL_DLL GDALGetCacheMax();
00556 int CPL_DLL GDALGetCacheUsed();
00557 int CPL_DLL GDALFlushCacheBlock();
00558 
00559 CPL_C_END
00560 
00561 #endif /* ndef GDAL_H_INCLUDED */

Generated on Thu Mar 25 08:13:39 2004 for GDAL by doxygen 1.3.6-20040222