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

gdal_priv.h

00001 /******************************************************************************
00002  * $Id: gdal_priv.h,v 1.47 2004/04/06 19:22:25 dron Exp $
00003  *
00004  * Name:     gdal_priv.h
00005  * Project:  GDAL Core
00006  * Purpose:  GDAL Core C++/Private declarations. 
00007  * Author:   Frank Warmerdam, warmerdam@pobox.com
00008  *
00009  ******************************************************************************
00010  * Copyright (c) 1998, 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_priv.h,v $
00032  * Revision 1.47  2004/04/06 19:22:25  dron
00033  * Removed GDALRasterBlock::IsCached(), added GDALRasterBand::IsBlockCached().
00034  *
00035  * Revision 1.46  2003/07/27 11:01:01  dron
00036  * GDALRasterBlock::IsCached() method added.
00037  *
00038  * Revision 1.45  2003/05/08 14:38:40  warmerda
00039  * added BlockBasedFlushCache
00040  *
00041  * Revision 1.44  2003/05/06 05:20:38  sperkins
00042  * cleaned up comments
00043  *
00044  * Revision 1.43  2003/05/06 05:13:36  sperkins
00045  * added Fill() and GDALFillRaster()
00046  *
00047  * Revision 1.42  2003/04/25 19:47:57  warmerda
00048  * added RasterIO on GDALDataset, added lock count on blocks
00049  *
00050  * Revision 1.41  2003/03/20 22:10:53  warmerda
00051  * added support for reporting cache thrashing
00052  *
00053  * Revision 1.40  2003/03/18 06:00:57  warmerda
00054  * made GDALRasterBand::FlushCache() virtual
00055  *
00056  * Revision 1.39  2003/01/28 16:07:30  warmerda
00057  * improved documentation
00058  *
00059  * Revision 1.38  2002/10/21 18:05:42  warmerda
00060  * added AutoSkipDrivers() method on driver manager
00061  *
00062  * Revision 1.37  2002/09/11 14:17:52  warmerda
00063  * make SetDescription() and GetDescription() virtual
00064  *
00065  * Revision 1.36  2002/09/04 06:52:05  warmerda
00066  * added unload driver support to GDALDriver
00067  *
00068  * Revision 1.35  2002/07/09 20:33:12  warmerda
00069  * expand tabs
00070  *
00071  * Revision 1.34  2002/06/19 18:19:59  warmerda
00072  * GDALOpenInfo: added bIsDirecory flag, removed VSIStatBuf
00073  *
00074  * Revision 1.33  2002/06/12 21:13:27  warmerda
00075  * use metadata based driver info
00076  *
00077  * Revision 1.32  2002/05/29 15:58:26  warmerda
00078  * removed GetDescription(), added SetColorInterpretation()
00079  *
00080  * Revision 1.31  2002/05/28 18:56:22  warmerda
00081  * added shared dataset concept
00082  *
00083  * Revision 1.30  2002/03/01 14:29:09  warmerda
00084  * added GetBand() method on GDALRasterBand
00085  *
00086  * Revision 1.29  2001/12/15 15:42:27  warmerda
00087  * *** empty log message ***
00088  *
00089  * Revision 1.28  2001/11/18 00:52:15  warmerda
00090  * removed GDALProjDef
00091  *
00092  * Revision 1.27  2001/11/16 21:36:01  warmerda
00093  * added the AddBand() method on GDALDataset
00094  *
00095  * Revision 1.26  2001/10/17 21:47:02  warmerda
00096  * added SetGCPs() on GDALDataset
00097  *
00098  * Revision 1.25  2001/10/02 13:15:16  warmerda
00099  * added CPL_DLL for GDALDefaultOverviews
00100  *
00101  * Revision 1.24  2001/06/20 16:08:54  warmerda
00102  * GDALDefaultOverviews now remembers ovr filename, and allows explicit setting
00103  *
00104  * Revision 1.23  2001/02/06 16:30:21  warmerda
00105  * Added gdal_frmts.h
00106  *
00107  * Revision 1.22  2000/10/06 15:26:08  warmerda
00108  * added SetNoDataValue, SetCategoryNames
00109  *
00110  * Revision 1.21  2000/07/20 13:38:26  warmerda
00111  * make GetGDALDriverManager public with CPL_DLL
00112  *
00113  * Revision 1.20  2000/04/30 23:22:16  warmerda
00114  * added CreateCopy support
00115  *
00116  * Revision 1.19  2000/04/21 21:55:01  warmerda
00117  * majorobject updates, and overview building
00118  *
00119  * Revision 1.18  2000/04/04 23:44:29  warmerda
00120  * added AutoLoadDrivers() to GDALDriverManager
00121  *
00122  * Revision 1.17  2000/03/31 13:41:24  warmerda
00123  * added gcps
00124  *
00125  * Revision 1.16  2000/03/24 00:09:05  warmerda
00126  * rewrote cache management
00127  *
00128  * Revision 1.15  2000/03/09 23:22:03  warmerda
00129  * added GetHistogram
00130  *
00131  * Revision 1.14  2000/03/06 02:20:35  warmerda
00132  * added colortables, overviews, etc
00133  *
00134  * Revision 1.12  2000/01/31 15:00:25  warmerda
00135  * added some documentation
00136  *
00137  * Revision 1.11  2000/01/31 14:24:36  warmerda
00138  * implemented dataset delete
00139  *
00140  * Revision 1.10  1999/11/11 21:59:07  warmerda
00141  * added GetDriver() for datasets
00142  *
00143  * Revision 1.9  1999/10/21 13:23:45  warmerda
00144  * Added a bit of driver related documentation.
00145  *
00146  * Revision 1.8  1999/10/21 12:04:11  warmerda
00147  * Reorganized header.
00148  *
00149  * Revision 1.7  1999/10/01 14:44:02  warmerda
00150  * added documentation
00151  *
00152  * Revision 1.6  1999/04/21 04:16:25  warmerda
00153  * experimental docs
00154  *
00155  * Revision 1.5  1999/01/11 15:36:18  warmerda
00156  * Added projections support, and a few other things.
00157  *
00158  * Revision 1.4  1998/12/31 18:54:25  warmerda
00159  * Implement initial GDALRasterBlock support, and block cache
00160  *
00161  * Revision 1.3  1998/12/06 22:17:09  warmerda
00162  * Fill out rasterio support.
00163  *
00164  * Revision 1.2  1998/12/03 18:34:06  warmerda
00165  * Update to use CPL
00166  *
00167  * Revision 1.1  1998/10/18 06:15:11  warmerda
00168  * Initial implementation.
00169  *
00170  */
00171 
00172 #ifndef GDAL_PRIV_H_INCLUDED
00173 #define GDAL_PRIV_H_INCLUDED
00174 
00175 /* -------------------------------------------------------------------- */
00176 /*      Predeclare various classes before pulling in gdal.h, the        */
00177 /*      public declarations.                                            */
00178 /* -------------------------------------------------------------------- */
00179 class GDALMajorObject;
00180 class GDALDataset;
00181 class GDALRasterBand;
00182 class GDALDriver;
00183 
00184 /* -------------------------------------------------------------------- */
00185 /*      Pull in the public declarations.  This gets the C apis, and     */
00186 /*      also various constants.  However, we will still get to          */
00187 /*      provide the real class definitions for the GDAL classes.        */
00188 /* -------------------------------------------------------------------- */
00189 
00190 #include "gdal.h"
00191 #include "gdal_frmts.h"
00192 #include "cpl_vsi.h"
00193 #include "cpl_conv.h"
00194 
00195 /* ******************************************************************** */
00196 /*                           GDALMajorObject                            */
00197 /*                                                                      */
00198 /*      Base class providing metadata, description and other            */
00199 /*      services shared by major objects.                               */
00200 /* ******************************************************************** */
00201 
00202 class CPL_DLL GDALMajorObject
00203 {
00204   protected:
00205     char             *pszDescription;
00206     char            **papszMetadata;
00207     
00208   public:
00209                         GDALMajorObject();
00210     virtual            ~GDALMajorObject();
00211                         
00212     virtual const char *GetDescription() const;
00213     virtual void        SetDescription( const char * );
00214 
00215     virtual char      **GetMetadata( const char * pszDomain = "" );
00216     virtual CPLErr      SetMetadata( char ** papszMetadata,
00217                                      const char * pszDomain = "" );
00218     virtual const char *GetMetadataItem( const char * pszName,
00219                                          const char * pszDomain = "" );
00220     virtual CPLErr      SetMetadataItem( const char * pszName,
00221                                          const char * pszValue,
00222                                          const char * pszDomain = "" );
00223 };
00224 
00225 /* ******************************************************************** */
00226 /*                         GDALDefaultOverviews                         */
00227 /* ******************************************************************** */
00228 class CPL_DLL GDALDefaultOverviews
00229 {
00230     GDALDataset *poDS;
00231     GDALDataset *poODS;
00232     
00233     char        *pszOvrFilename;
00234     
00235   public:
00236                GDALDefaultOverviews();
00237                ~GDALDefaultOverviews();
00238 
00239     void       Initialize( GDALDataset *poDS, const char *pszName = NULL, 
00240                            int bNameIsOVR = FALSE );
00241     int        IsInitialized() { return poDS != NULL; }
00242 
00243     int        GetOverviewCount(int);
00244     GDALRasterBand *GetOverview(int,int);
00245 
00246     CPLErr     BuildOverviews( const char * pszBasename,
00247                                const char * pszResampling, 
00248                                int nOverviews, int * panOverviewList,
00249                                int nBands, int * panBandList,
00250                                GDALProgressFunc pfnProgress,
00251                                void *pProgressData );
00252 };
00253 
00254 /* ******************************************************************** */
00255 /*                             GDALDataset                              */
00256 /* ******************************************************************** */
00257 
00258 class CPL_DLL GDALDataset : public GDALMajorObject
00259 {
00260     friend GDALDatasetH GDALOpen( const char *, GDALAccess);
00261     friend GDALDatasetH GDALOpenShared( const char *, GDALAccess);
00262     friend class GDALDriver;
00263 
00264   protected:
00265     GDALDriver  *poDriver;
00266     GDALAccess  eAccess;
00267     
00268     // Stored raster information.
00269     int         nRasterXSize;
00270     int         nRasterYSize;
00271     int         nBands;
00272     GDALRasterBand **papoBands;
00273 
00274     int         nRefCount;
00275     int         bShared;
00276 
00277                 GDALDataset(void);
00278     void        RasterInitialize( int, int );
00279     void        SetBand( int, GDALRasterBand * );
00280 
00281     GDALDefaultOverviews oOvManager;
00282     
00283     virtual CPLErr IBuildOverviews( const char *, int, int *,
00284                                     int, int *, GDALProgressFunc, void * );
00285     
00286     virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
00287                               void *, int, int, GDALDataType,
00288                               int, int *, int, int, int );
00289 
00290     CPLErr BlockBasedRasterIO( GDALRWFlag, int, int, int, int,
00291                                void *, int, int, GDALDataType,
00292                                int, int *, int, int, int );
00293     void   BlockBasedFlushCache();
00294 
00295     friend class GDALRasterBand;
00296     
00297   public:
00298     virtual     ~GDALDataset();
00299 
00300     int         GetRasterXSize( void );
00301     int         GetRasterYSize( void );
00302     int         GetRasterCount( void );
00303     GDALRasterBand *GetRasterBand( int );
00304 
00305     virtual void FlushCache(void);
00306 
00307     virtual const char *GetProjectionRef(void);
00308     virtual CPLErr SetProjection( const char * );
00309 
00310     virtual CPLErr GetGeoTransform( double * );
00311     virtual CPLErr SetGeoTransform( double * );
00312 
00313     virtual CPLErr        AddBand( GDALDataType eType, 
00314                                    char **papszOptions=NULL );
00315 
00316     virtual void *GetInternalHandle( const char * );
00317     virtual GDALDriver *GetDriver(void);
00318 
00319     virtual int    GetGCPCount();
00320     virtual const char *GetGCPProjection();
00321     virtual const GDAL_GCP *GetGCPs();
00322     virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
00323                             const char *pszGCPProjection );
00324  
00325     CPLErr      RasterIO( GDALRWFlag, int, int, int, int,
00326                           void *, int, int, GDALDataType,
00327                           int, int *, int, int, int );
00328 
00329     int           Reference();
00330     int           Dereference();
00331     GDALAccess    GetAccess() { return eAccess; }
00332 
00333     int           GetShared();
00334     void          MarkAsShared();
00335 
00336     static GDALDataset **GetOpenDatasets( int *pnDatasetCount );
00337 
00338     CPLErr BuildOverviews( const char *, int, int *,
00339                            int, int *, GDALProgressFunc, void * );
00340 };
00341 
00342 /* ******************************************************************** */
00343 /*                           GDALRasterBlock                            */
00344 /* ******************************************************************** */
00345 
00348 class CPL_DLL GDALRasterBlock
00349 {
00350     GDALDataType        eType;
00351     
00352     int                 nAge;
00353     int                 bDirty;
00354     int                 nLockCount;
00355 
00356     int                 nXOff;
00357     int                 nYOff;
00358        
00359     int                 nXSize;
00360     int                 nYSize;
00361     
00362     void                *pData;
00363 
00364     GDALRasterBand      *poBand;
00365     
00366     GDALRasterBlock     *poNext;
00367     GDALRasterBlock     *poPrevious;
00368 
00369   public:
00370                 GDALRasterBlock( GDALRasterBand *, int, int );
00371     virtual     ~GDALRasterBlock();
00372 
00373     CPLErr      Internalize( void );    /* make copy of data */
00374     void        Touch( void );          /* update age */
00375     void        MarkDirty( void );      /* data has been modified since read */
00376     void        MarkClean( void );
00377     void        AddLock( void ) { nLockCount++; }
00378     void        DropLock( void ) { nLockCount--; }
00379 
00380     CPLErr      Write();
00381 
00382     GDALDataType GetDataType() { return eType; }
00383     int         GetXOff() { return nXOff; }
00384     int         GetYOff() { return nYOff; }
00385     int         GetXSize() { return nXSize; }
00386     int         GetYSize() { return nYSize; }
00387     int         GetAge() { return nAge; }
00388     int         GetDirty() { return bDirty; }
00389     int         GetLockCount() { return nLockCount; }
00390 
00391     void        *GetDataRef( void ) { return pData; }
00392 
00393     GDALRasterBand *GetBand() { return poBand; }
00394 
00395     static int  FlushCacheBlock();
00396     static void Verify();
00397 };
00398 
00399 
00400 /* ******************************************************************** */
00401 /*                             GDALColorTable                           */
00402 /* ******************************************************************** */
00403 
00404 class CPL_DLL GDALColorTable
00405 {
00406     GDALPaletteInterp eInterp;
00407 
00408     int         nEntryCount;
00409     GDALColorEntry *paoEntries;
00410 
00411 public:
00412                 GDALColorTable( GDALPaletteInterp = GPI_RGB );
00413                 ~GDALColorTable();
00414 
00415     GDALColorTable *Clone() const;
00416 
00417     GDALPaletteInterp GetPaletteInterpretation() const;
00418 
00419     int           GetColorEntryCount() const;
00420     const GDALColorEntry *GetColorEntry( int ) const;
00421     int           GetColorEntryAsRGB( int, GDALColorEntry * ) const;
00422     void          SetColorEntry( int, const GDALColorEntry * );
00423 };
00424 
00425 /* ******************************************************************** */
00426 /*                            GDALRasterBand                            */
00427 /* ******************************************************************** */
00428 
00430 
00431 class CPL_DLL GDALRasterBand : public GDALMajorObject
00432 {
00433   protected:
00434     GDALDataset *poDS;
00435     int         nBand; /* 1 based */
00436 
00437     int         nRasterXSize;
00438     int         nRasterYSize;
00439     
00440     GDALDataType eDataType;
00441     GDALAccess  eAccess;
00442 
00443     /* stuff related to blocking, and raster cache */
00444     int         nBlockXSize;
00445     int         nBlockYSize;
00446     int         nBlocksPerRow;
00447     int         nBlocksPerColumn;
00448 
00449     GDALRasterBlock **papoBlocks;
00450 
00451     int         nBlockReads;
00452 
00453     friend class GDALDataset;
00454     friend class GDALRasterBlock;
00455 
00456   protected:
00457     virtual CPLErr IReadBlock( int, int, void * ) = 0;
00458     virtual CPLErr IWriteBlock( int, int, void * );
00459     virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
00460                               void *, int, int, GDALDataType,
00461                               int, int );
00462     CPLErr         OverviewRasterIO( GDALRWFlag, int, int, int, int,
00463                                      void *, int, int, GDALDataType,
00464                                      int, int );
00465 
00466     CPLErr         AdoptBlock( int, int, GDALRasterBlock * );
00467     void           InitBlockInfo();
00468     int            IsBlockCached( int, int );
00469 
00470   public:
00471                 GDALRasterBand();
00472                 
00473     virtual     ~GDALRasterBand();
00474 
00475     int         GetXSize();
00476     int         GetYSize();
00477     int         GetBand();
00478     GDALDataset*GetDataset();
00479 
00480     GDALDataType GetRasterDataType( void );
00481     void        GetBlockSize( int *, int * );
00482     GDALAccess  GetAccess();
00483     
00484     CPLErr      RasterIO( GDALRWFlag, int, int, int, int,
00485                           void *, int, int, GDALDataType,
00486                           int, int );
00487     CPLErr      ReadBlock( int, int, void * );
00488 
00489     CPLErr      WriteBlock( int, int, void * );
00490 
00491     GDALRasterBlock *GetBlockRef( int nXBlockOff, int nYBlockOff, 
00492                                   int bJustInitialize = FALSE );
00493     CPLErr      FlushBlock( int = -1, int = -1 );
00494 
00495     // New OpengIS CV_SampleDimension stuff.
00496 
00497     virtual CPLErr FlushCache();
00498     virtual char **GetCategoryNames();
00499     virtual double GetNoDataValue( int *pbSuccess = NULL );
00500     virtual double GetMinimum( int *pbSuccess = NULL );
00501     virtual double GetMaximum(int *pbSuccess = NULL );
00502     virtual double GetOffset( int *pbSuccess = NULL );
00503     virtual double GetScale( int *pbSuccess = NULL );
00504     virtual const char *GetUnitType();
00505     virtual GDALColorInterp GetColorInterpretation();
00506     virtual GDALColorTable *GetColorTable();
00507     virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0);
00508 
00509     virtual CPLErr SetCategoryNames( char ** );
00510     virtual CPLErr SetNoDataValue( double );
00511     virtual CPLErr SetColorTable( GDALColorTable * ); 
00512     virtual CPLErr SetColorInterpretation( GDALColorInterp );
00513 
00514     virtual int HasArbitraryOverviews();
00515     virtual int GetOverviewCount();
00516     virtual GDALRasterBand *GetOverview(int);
00517     virtual CPLErr BuildOverviews( const char *, int, int *,
00518                                    GDALProgressFunc, void * );
00519 
00520     CPLErr  GetHistogram( double dfMin, double dfMax,
00521                           int nBuckets, int * panHistogram,
00522                           int bIncludeOutOfRange, int bApproxOK,
00523                           GDALProgressFunc, void *pProgressData );
00524 };
00525 
00526 /* ******************************************************************** */
00527 /*                             GDALOpenInfo                             */
00528 /*                                                                      */
00529 /*      Structure of data about dataset for open functions.             */
00530 /* ******************************************************************** */
00531 
00532 class CPL_DLL GDALOpenInfo
00533 {
00534   public:
00535 
00536                 GDALOpenInfo( const char * pszFile, GDALAccess eAccessIn );
00537                 ~GDALOpenInfo( void );
00538     
00539     char        *pszFilename;
00540 
00541     GDALAccess  eAccess;
00542 
00543     int         bStatOK;
00544     int         bIsDirectory;
00545 
00546     FILE        *fp;
00547 
00548     int         nHeaderBytes;
00549     GByte       *pabyHeader;
00550 
00551 };
00552 
00553 /* ******************************************************************** */
00554 /*                              GDALDriver                              */
00555 /* ******************************************************************** */
00556 
00566 class CPL_DLL GDALDriver : public GDALMajorObject
00567 {
00568   public:
00569                         GDALDriver();
00570                         ~GDALDriver();
00571 
00572 /* -------------------------------------------------------------------- */
00573 /*      Public C++ methods.                                             */
00574 /* -------------------------------------------------------------------- */
00575     GDALDataset         *Create( const char * pszName,
00576                                  int nXSize, int nYSize, int nBands,
00577                                  GDALDataType eType, char ** papszOptions );
00578 
00579     CPLErr              Delete( const char * pszName );
00580 
00581     GDALDataset         *CreateCopy( const char *, GDALDataset *, 
00582                                      int, char **,
00583                                      GDALProgressFunc pfnProgress, 
00584                                      void * pProgressData );
00585     
00586 /* -------------------------------------------------------------------- */
00587 /*      The following are semiprivate, not intended to be accessed      */
00588 /*      by anyone but the formats instantiating and populating the      */
00589 /*      drivers.                                                        */
00590 /* -------------------------------------------------------------------- */
00591     GDALDataset         *(*pfnOpen)( GDALOpenInfo * );
00592 
00593     GDALDataset         *(*pfnCreate)( const char * pszName,
00594                                        int nXSize, int nYSize, int nBands,
00595                                        GDALDataType eType,
00596                                        char ** papszOptions );
00597 
00598     CPLErr              (*pfnDelete)( const char * pszName );
00599 
00600     GDALDataset         *(*pfnCreateCopy)( const char *, GDALDataset *, 
00601                                            int, char **,
00602                                            GDALProgressFunc pfnProgress, 
00603                                            void * pProgressData );
00604 
00605     void                *pDriverData;
00606 
00607     void                (*pfnUnloadDriver)(GDALDriver *);
00608 };
00609 
00610 /* ******************************************************************** */
00611 /*                          GDALDriverManager                           */
00612 /* ******************************************************************** */
00613 
00621 class CPL_DLL GDALDriverManager : public GDALMajorObject
00622 {
00623     int         nDrivers;
00624     GDALDriver  **papoDrivers;
00625 
00626     char        *pszHome;
00627     
00628  public:
00629                 GDALDriverManager();
00630                 ~GDALDriverManager();
00631                 
00632     int         GetDriverCount( void );
00633     GDALDriver  *GetDriver( int );
00634     GDALDriver  *GetDriverByName( const char * );
00635 
00636     int         RegisterDriver( GDALDriver * );
00637     void        MoveDriver( GDALDriver *, int );
00638     void        DeregisterDriver( GDALDriver * );
00639 
00640     void        AutoLoadDrivers();
00641     void        AutoSkipDrivers();
00642 
00643     const char *GetHome();
00644     void        SetHome( const char * );
00645 };
00646 
00647 CPL_C_START
00648 GDALDriverManager CPL_DLL * GetGDALDriverManager( void );
00649 CPL_C_END
00650 
00651 /* ==================================================================== */
00652 /*      An assortment of overview related stuff.                        */
00653 /* ==================================================================== */
00654 
00655 CPL_C_START
00656 
00657 CPLErr 
00658 GTIFFBuildOverviews( const char * pszFilename,
00659                      int nBands, GDALRasterBand **papoBandList, 
00660                      int nOverviews, int * panOverviewList,
00661                      const char * pszResampling, 
00662                      GDALProgressFunc pfnProgress, void * pProgressData );
00663 
00664 CPLErr
00665 GDALDefaultBuildOverviews( GDALDataset *hSrcDS, const char * pszBasename,
00666                            const char * pszResampling, 
00667                            int nOverviews, int * panOverviewList,
00668                            int nBands, int * panBandList,
00669                            GDALProgressFunc pfnProgress, void * pProgressData);
00670                            
00671 
00672 CPLErr
00673 GDALRegenerateOverviews( GDALRasterBand *, int, GDALRasterBand **,
00674                          const char *, GDALProgressFunc, void * );
00675 
00676 CPL_C_END
00677 
00678 #endif /* ndef GDAL_PRIV_H_INCLUDED */

Generated on Tue Mar 15 07:12:59 2005 for GDAL by  doxygen 1.4.0