<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>gdal_priv.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.3-20001105 on Thu Mar 28 09:47:29 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>gdal_priv.h</h1><div class="fragment"><pre>00001 <font class="comment">/******************************************************************************</font> 00002 <font class="comment"> * $Id: gdal_priv_h-source.html,v 1.11 2002/04/16 13:11:48 warmerda Exp $</font> 00003 <font class="comment"> *</font> 00004 <font class="comment"> * Name: gdal_priv.h</font> 00005 <font class="comment"> * Project: GDAL Core</font> 00006 <font class="comment"> * Purpose: GDAL Core C++/Private declarations. </font> 00007 <font class="comment"> * Author: Frank Warmerdam, warmerda@home.com</font> 00008 <font class="comment"> *</font> 00009 <font class="comment"> ******************************************************************************</font> 00010 <font class="comment"> * Copyright (c) 1998, Frank Warmerdam</font> 00011 <font class="comment"> *</font> 00012 <font class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</font> 00013 <font class="comment"> * copy of this software and associated documentation files (the "Software"),</font> 00014 <font class="comment"> * to deal in the Software without restriction, including without limitation</font> 00015 <font class="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</font> 00016 <font class="comment"> * and/or sell copies of the Software, and to permit persons to whom the</font> 00017 <font class="comment"> * Software is furnished to do so, subject to the following conditions:</font> 00018 <font class="comment"> *</font> 00019 <font class="comment"> * The above copyright notice and this permission notice shall be included</font> 00020 <font class="comment"> * in all copies or substantial portions of the Software.</font> 00021 <font class="comment"> *</font> 00022 <font class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</font> 00023 <font class="comment"> * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</font> 00024 <font class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</font> 00025 <font class="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</font> 00026 <font class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</font> 00027 <font class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</font> 00028 <font class="comment"> * DEALINGS IN THE SOFTWARE.</font> 00029 <font class="comment"> ******************************************************************************</font> 00030 <font class="comment"> *</font> 00031 <font class="comment"> * $Log: gdal_priv_h-source.html,v $ 00031 <font class="comment"> * Revision 1.11 2002/04/16 13:11:48 warmerda 00031 <font class="comment"> * updated 00031 <font class="comment"> *</font> 00032 <font class="comment"> * Revision 1.30 2002/03/01 14:29:09 warmerda</font> 00033 <font class="comment"> * added GetBand() method on GDALRasterBand</font> 00034 <font class="comment"> *</font> 00035 <font class="comment"> * Revision 1.29 2001/12/15 15:42:27 warmerda</font> 00036 <font class="comment"> * *** empty log message ***</font> 00037 <font class="comment"> *</font> 00038 <font class="comment"> * Revision 1.28 2001/11/18 00:52:15 warmerda</font> 00039 <font class="comment"> * removed GDALProjDef</font> 00040 <font class="comment"> *</font> 00041 <font class="comment"> * Revision 1.27 2001/11/16 21:36:01 warmerda</font> 00042 <font class="comment"> * added the AddBand() method on GDALDataset</font> 00043 <font class="comment"> *</font> 00044 <font class="comment"> * Revision 1.26 2001/10/17 21:47:02 warmerda</font> 00045 <font class="comment"> * added SetGCPs() on GDALDataset</font> 00046 <font class="comment"> *</font> 00047 <font class="comment"> * Revision 1.25 2001/10/02 13:15:16 warmerda</font> 00048 <font class="comment"> * added CPL_DLL for GDALDefaultOverviews</font> 00049 <font class="comment"> *</font> 00050 <font class="comment"> * Revision 1.24 2001/06/20 16:08:54 warmerda</font> 00051 <font class="comment"> * GDALDefaultOverviews now remembers ovr filename, and allows explicit setting</font> 00052 <font class="comment"> *</font> 00053 <font class="comment"> * Revision 1.23 2001/02/06 16:30:21 warmerda</font> 00054 <font class="comment"> * Added gdal_frmts.h</font> 00055 <font class="comment"> *</font> 00056 <font class="comment"> * Revision 1.22 2000/10/06 15:26:08 warmerda</font> 00057 <font class="comment"> * added SetNoDataValue, SetCategoryNames</font> 00058 <font class="comment"> *</font> 00059 <font class="comment"> * Revision 1.21 2000/07/20 13:38:26 warmerda</font> 00060 <font class="comment"> * make GetGDALDriverManager public with CPL_DLL</font> 00061 <font class="comment"> *</font> 00062 <font class="comment"> * Revision 1.20 2000/04/30 23:22:16 warmerda</font> 00063 <font class="comment"> * added CreateCopy support</font> 00064 <font class="comment"> *</font> 00065 <font class="comment"> * Revision 1.19 2000/04/21 21:55:01 warmerda</font> 00066 <font class="comment"> * majorobject updates, and overview building</font> 00067 <font class="comment"> *</font> 00068 <font class="comment"> * Revision 1.18 2000/04/04 23:44:29 warmerda</font> 00069 <font class="comment"> * added AutoLoadDrivers() to GDALDriverManager</font> 00070 <font class="comment"> *</font> 00071 <font class="comment"> * Revision 1.17 2000/03/31 13:41:24 warmerda</font> 00072 <font class="comment"> * added gcps</font> 00073 <font class="comment"> *</font> 00074 <font class="comment"> * Revision 1.16 2000/03/24 00:09:05 warmerda</font> 00075 <font class="comment"> * rewrote cache management</font> 00076 <font class="comment"> *</font> 00077 <font class="comment"> * Revision 1.15 2000/03/09 23:22:03 warmerda</font> 00078 <font class="comment"> * added GetHistogram</font> 00079 <font class="comment"> *</font> 00080 <font class="comment"> * Revision 1.14 2000/03/06 02:20:35 warmerda</font> 00081 <font class="comment"> * added colortables, overviews, etc</font> 00082 <font class="comment"> *</font> 00083 <font class="comment"> * Revision 1.12 2000/01/31 15:00:25 warmerda</font> 00084 <font class="comment"> * added some documentation</font> 00085 <font class="comment"> *</font> 00086 <font class="comment"> * Revision 1.11 2000/01/31 14:24:36 warmerda</font> 00087 <font class="comment"> * implemented dataset delete</font> 00088 <font class="comment"> *</font> 00089 <font class="comment"> * Revision 1.10 1999/11/11 21:59:07 warmerda</font> 00090 <font class="comment"> * added GetDriver() for datasets</font> 00091 <font class="comment"> *</font> 00092 <font class="comment"> * Revision 1.9 1999/10/21 13:23:45 warmerda</font> 00093 <font class="comment"> * Added a bit of driver related documentation.</font> 00094 <font class="comment"> *</font> 00095 <font class="comment"> * Revision 1.8 1999/10/21 12:04:11 warmerda</font> 00096 <font class="comment"> * Reorganized header.</font> 00097 <font class="comment"> *</font> 00098 <font class="comment"> * Revision 1.7 1999/10/01 14:44:02 warmerda</font> 00099 <font class="comment"> * added documentation</font> 00100 <font class="comment"> *</font> 00101 <font class="comment"> * Revision 1.6 1999/04/21 04:16:25 warmerda</font> 00102 <font class="comment"> * experimental docs</font> 00103 <font class="comment"> *</font> 00104 <font class="comment"> * Revision 1.5 1999/01/11 15:36:18 warmerda</font> 00105 <font class="comment"> * Added projections support, and a few other things.</font> 00106 <font class="comment"> *</font> 00107 <font class="comment"> * Revision 1.4 1998/12/31 18:54:25 warmerda</font> 00108 <font class="comment"> * Implement initial GDALRasterBlock support, and block cache</font> 00109 <font class="comment"> *</font> 00110 <font class="comment"> * Revision 1.3 1998/12/06 22:17:09 warmerda</font> 00111 <font class="comment"> * Fill out rasterio support.</font> 00112 <font class="comment"> *</font> 00113 <font class="comment"> * Revision 1.2 1998/12/03 18:34:06 warmerda</font> 00114 <font class="comment"> * Update to use CPL</font> 00115 <font class="comment"> *</font> 00116 <font class="comment"> * Revision 1.1 1998/10/18 06:15:11 warmerda</font> 00117 <font class="comment"> * Initial implementation.</font> 00118 <font class="comment"> *</font> 00119 <font class="comment"> */</font> 00120 00121 <font class="preprocessor">#ifndef GDAL_PRIV_H_INCLUDED</font> 00122 <font class="preprocessor"></font><font class="preprocessor">#define GDAL_PRIV_H_INCLUDED</font> 00123 <font class="preprocessor"></font> 00124 <font class="comment">/* -------------------------------------------------------------------- */</font> 00125 <font class="comment">/* Predeclare various classes before pulling in gdal.h, the */</font> 00126 <font class="comment">/* public declarations. */</font> 00127 <font class="comment">/* -------------------------------------------------------------------- */</font> 00128 <font class="keyword">class </font>GDALMajorObject; 00129 <font class="keyword">class </font><a class="code" href="class_GDALDataset.html">GDALDataset</a>; 00130 <font class="keyword">class </font><a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a>; 00131 <font class="keyword">class </font><a class="code" href="class_GDALDriver.html">GDALDriver</a>; 00132 00133 <font class="comment">/* -------------------------------------------------------------------- */</font> 00134 <font class="comment">/* Pull in the public declarations. This gets the C apis, and */</font> 00135 <font class="comment">/* also various constants. However, we will still get to */</font> 00136 <font class="comment">/* provide the real class definitions for the GDAL classes. */</font> 00137 <font class="comment">/* -------------------------------------------------------------------- */</font> 00138 00139 <font class="preprocessor">#include "<a class="code" href="gdal_h.html">gdal.h</a>"</font> 00140 <font class="preprocessor">#include "gdal_frmts.h"</font> 00141 <font class="preprocessor">#include "<a class="code" href="cpl_vsi_h.html">cpl_vsi.h</a>"</font> 00142 <font class="preprocessor">#include "<a class="code" href="cpl_conv_h.html">cpl_conv.h</a>"</font> 00143 00144 <font class="comment">/* ******************************************************************** */</font> 00145 <font class="comment">/* GDALMajorObject */</font> 00146 <font class="comment">/* */</font> 00147 <font class="comment">/* Base class providing metadata, description and other */</font> 00148 <font class="comment">/* services shared by major objects. */</font> 00149 <font class="comment">/* ******************************************************************** */</font> 00150 00151 <font class="keyword">class </font>CPL_DLL GDALMajorObject 00152 { 00153 <font class="keyword">protected</font>: 00154 <font class="keywordtype">char</font> *pszDescription; 00155 <font class="keywordtype">char</font> **papszMetadata; 00156 00157 <font class="keyword">public</font>: 00158 GDALMajorObject(); 00159 <font class="keyword">virtual</font> ~GDALMajorObject(); 00160 00161 <font class="keyword">const</font> <font class="keywordtype">char</font> * GetDescription() <font class="keyword">const</font>; 00162 <font class="keywordtype">void</font> SetDescription( <font class="keyword">const</font> <font class="keywordtype">char</font> * ); 00163 00164 <font class="keyword">virtual</font> <font class="keywordtype">char</font> **GetMetadata( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszDomain = <font class="stringliteral">""</font> ); 00165 <font class="keyword">virtual</font> CPLErr SetMetadata( <font class="keywordtype">char</font> ** papszMetadata, 00166 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszDomain = <font class="stringliteral">""</font> ); 00167 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *GetMetadataItem( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszName, 00168 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszDomain = <font class="stringliteral">""</font> ); 00169 <font class="keyword">virtual</font> CPLErr SetMetadataItem( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszName, 00170 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszValue, 00171 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszDomain = <font class="stringliteral">""</font> ); 00172 }; 00173 00174 <font class="comment">/* ******************************************************************** */</font> 00175 <font class="comment">/* GDALDefaultOverviews */</font> 00176 <font class="comment">/* ******************************************************************** */</font> 00177 <font class="keyword">class </font>CPL_DLL GDALDefaultOverviews 00178 { 00179 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *poDS; 00180 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *poODS; 00181 00182 <font class="keywordtype">char</font> *pszOvrFilename; 00183 00184 <font class="keyword">public</font>: 00185 GDALDefaultOverviews(); 00186 ~GDALDefaultOverviews(); 00187 00188 <font class="keywordtype">void</font> Initialize( <a class="code" href="class_GDALDataset.html">GDALDataset</a> *poDS, <font class="keyword">const</font> <font class="keywordtype">char</font> *pszName = NULL, 00189 <font class="keywordtype">int</font> bNameIsOVR = FALSE ); 00190 <font class="keywordtype">int</font> IsInitialized()<font class="keyword"> </font>{ <font class="keywordflow">return</font> poDS != NULL; } 00191 00192 <font class="keywordtype">int</font> GetOverviewCount(<font class="keywordtype">int</font>); 00193 <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *GetOverview(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>); 00194 00195 CPLErr BuildOverviews( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszBasename, 00196 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszResampling, 00197 <font class="keywordtype">int</font> nOverviews, <font class="keywordtype">int</font> * panOverviewList, 00198 <font class="keywordtype">int</font> nBands, <font class="keywordtype">int</font> * panBandList, 00199 GDALProgressFunc pfnProgress, 00200 <font class="keywordtype">void</font> *pProgressData ); 00201 }; 00202 00203 <font class="comment">/* ******************************************************************** */</font> 00204 <font class="comment">/* GDALDataset */</font> 00205 <font class="comment">/* ******************************************************************** */</font> 00206 <a name="l00213"></a><a class="code" href="class_GDALDataset.html">00213</a> <font class="keyword">class </font>CPL_DLL <a class="code" href="class_GDALDataset.html">GDALDataset</a> : <font class="keyword">public</font> GDALMajorObject 00214 { 00215 <font class="keyword">friend</font> GDALDatasetH <a class="code" href="gdal_h.html#a60">GDALOpen</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *, GDALAccess); 00216 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_GDALDriver.html">GDALDriver</a>; 00217 00218 <font class="keyword">protected</font>: 00219 <a class="code" href="class_GDALDriver.html">GDALDriver</a> *poDriver; 00220 GDALAccess eAccess; 00221 00222 <font class="comment">// Stored raster information.</font> 00223 <font class="keywordtype">int</font> nRasterXSize; 00224 <font class="keywordtype">int</font> nRasterYSize; 00225 <font class="keywordtype">int</font> nBands; 00226 <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> **papoBands; 00227 00228 <font class="keywordtype">int</font> nRefCount; 00229 00230 GDALDataset(<font class="keywordtype">void</font>); 00231 <font class="keywordtype">void</font> RasterInitialize( <font class="keywordtype">int</font>, <font class="keywordtype">int</font> ); 00232 <font class="keywordtype">void</font> SetBand( <font class="keywordtype">int</font>, <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> * ); 00233 00234 GDALDefaultOverviews oOvManager; 00235 00236 <font class="keyword">virtual</font> CPLErr IBuildOverviews( <font class="keyword">const</font> <font class="keywordtype">char</font> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font> *, 00237 <font class="keywordtype">int</font>, <font class="keywordtype">int</font> *, GDALProgressFunc, <font class="keywordtype">void</font> * ); 00238 00239 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a>; 00240 00241 <font class="keyword">public</font>: 00242 <font class="keyword">virtual</font> <a class="code" href="class_GDALDataset.html#a0">~GDALDataset</a>(); 00243 00244 <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a1">GetRasterXSize</a>( <font class="keywordtype">void</font> ); 00245 <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a2">GetRasterYSize</a>( <font class="keywordtype">void</font> ); 00246 <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a3">GetRasterCount</a>( <font class="keywordtype">void</font> ); 00247 <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *<a class="code" href="class_GDALDataset.html#a4">GetRasterBand</a>( <font class="keywordtype">int</font> ); 00248 00249 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_GDALDataset.html#a5">FlushCache</a>(<font class="keywordtype">void</font>); 00250 00251 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_GDALDataset.html#a6">GetProjectionRef</a>(<font class="keywordtype">void</font>); 00252 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALDataset.html#a7">SetProjection</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * ); 00253 00254 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALDataset.html#a8">GetGeoTransform</a>( <font class="keywordtype">double</font> * ); 00255 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALDataset.html#a9">SetGeoTransform</a>( <font class="keywordtype">double</font> * ); 00256 00257 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALDataset.html#a10">AddBand</a>( GDALDataType eType, 00258 <font class="keywordtype">char</font> **papszOptions=NULL ); 00259 00260 <font class="keyword">virtual</font> <font class="keywordtype">void</font> *<a class="code" href="class_GDALDataset.html#a11">GetInternalHandle</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * ); 00261 <font class="keyword">virtual</font> <a class="code" href="class_GDALDriver.html">GDALDriver</a> *<a class="code" href="class_GDALDataset.html#a12">GetDriver</a>(<font class="keywordtype">void</font>); 00262 00263 <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a13">GetGCPCount</a>(); 00264 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_GDALDataset.html#a14">GetGCPProjection</a>(); 00265 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="struct_GDAL_GCP.html">GDAL_GCP</a> *<a class="code" href="class_GDALDataset.html#a15">GetGCPs</a>(); 00266 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALDataset.html#a16">SetGCPs</a>( <font class="keywordtype">int</font> nGCPCount, <font class="keyword">const</font> <a class="code" href="struct_GDAL_GCP.html">GDAL_GCP</a> *pasGCPList, 00267 <font class="keyword">const</font> <font class="keywordtype">char</font> *pszGCPProjection ); 00268 00269 <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a17">Reference</a>(); 00270 <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a18">Dereference</a>(); 00271 GDALAccess GetAccess()<font class="keyword"> </font>{ <font class="keywordflow">return</font> eAccess; } 00272 00273 CPLErr <a class="code" href="class_GDALDataset.html#a20">BuildOverviews</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font> *, 00274 <font class="keywordtype">int</font>, <font class="keywordtype">int</font> *, GDALProgressFunc, <font class="keywordtype">void</font> * ); 00275 00276 }; 00277 00278 <font class="comment">/* ******************************************************************** */</font> 00279 <font class="comment">/* GDALRasterBlock */</font> 00280 <font class="comment">/* ******************************************************************** */</font> 00281 <a name="l00284"></a><a class="code" href="class_GDALRasterBlock.html">00284</a> <font class="keyword">class </font>CPL_DLL <a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a> 00285 { 00286 GDALDataType eType; 00287 00288 <font class="keywordtype">int</font> nAge; 00289 <font class="keywordtype">int</font> bDirty; 00290 00291 <font class="keywordtype">int</font> nXOff; 00292 <font class="keywordtype">int</font> nYOff; 00293 00294 <font class="keywordtype">int</font> nXSize; 00295 <font class="keywordtype">int</font> nYSize; 00296 00297 <font class="keywordtype">void</font> *pData; 00298 00299 <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *poBand; 00300 00301 <a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a> *poNext; 00302 <a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a> *poPrevious; 00303 00304 <font class="keyword">public</font>: 00305 GDALRasterBlock( <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font> ); 00306 <font class="keyword">virtual</font> ~GDALRasterBlock(); 00307 00308 CPLErr Internalize( <font class="keywordtype">void</font> ); <font class="comment">/* make copy of data */</font> 00309 <font class="keywordtype">void</font> Touch( <font class="keywordtype">void</font> ); <font class="comment">/* update age */</font> 00310 <font class="keywordtype">void</font> MarkDirty( <font class="keywordtype">void</font> ); <font class="comment">/* data has been modified since read */</font> 00311 <font class="keywordtype">void</font> MarkClean( <font class="keywordtype">void</font> ); 00312 00313 CPLErr Write(); 00314 00315 GDALDataType GetDataType()<font class="keyword"> </font>{ <font class="keywordflow">return</font> eType; } 00316 <font class="keywordtype">int</font> GetXOff()<font class="keyword"> </font>{ <font class="keywordflow">return</font> nXOff; } 00317 <font class="keywordtype">int</font> GetYOff()<font class="keyword"> </font>{ <font class="keywordflow">return</font> nYOff; } 00318 <font class="keywordtype">int</font> GetXSize()<font class="keyword"> </font>{ <font class="keywordflow">return</font> nXSize; } 00319 <font class="keywordtype">int</font> GetYSize()<font class="keyword"> </font>{ <font class="keywordflow">return</font> nYSize; } 00320 <font class="keywordtype">int</font> GetAge()<font class="keyword"> </font>{ <font class="keywordflow">return</font> nAge; } 00321 <font class="keywordtype">int</font> GetDirty()<font class="keyword"> </font>{ <font class="keywordflow">return</font> bDirty; } 00322 00323 <font class="keywordtype">void</font> *GetDataRef( <font class="keywordtype">void</font> )<font class="keyword"> </font>{ <font class="keywordflow">return</font> pData; } 00324 00325 <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *GetBand()<font class="keyword"> </font>{ <font class="keywordflow">return</font> poBand; } 00326 00327 <font class="keyword">static</font> <font class="keywordtype">void</font> FlushOldestBlock(); 00328 <font class="keyword">static</font> <font class="keywordtype">void</font> Verify(); 00329 00330 }; 00331 00332 00333 <font class="comment">/* ******************************************************************** */</font> 00334 <font class="comment">/* GDALColorTable */</font> 00335 <font class="comment">/* ******************************************************************** */</font> 00336 00337 <font class="keyword">class </font>CPL_DLL GDALColorTable 00338 { 00339 GDALPaletteInterp eInterp; 00340 00341 <font class="keywordtype">int</font> nEntryCount; 00342 <a class="code" href="struct_GDALColorEntry.html">GDALColorEntry</a> *paoEntries; 00343 00344 <font class="keyword">public</font>: 00345 GDALColorTable( GDALPaletteInterp = GPI_RGB ); 00346 ~GDALColorTable(); 00347 00348 GDALColorTable *Clone() <font class="keyword">const</font>; 00349 00350 GDALPaletteInterp GetPaletteInterpretation() <font class="keyword">const</font>; 00351 00352 <font class="keywordtype">int</font> GetColorEntryCount() <font class="keyword">const</font>; 00353 <font class="keyword">const</font> <a class="code" href="struct_GDALColorEntry.html">GDALColorEntry</a> *GetColorEntry( <font class="keywordtype">int</font> ) <font class="keyword">const</font>; 00354 <font class="keywordtype">int</font> GetColorEntryAsRGB( <font class="keywordtype">int</font>, <a class="code" href="struct_GDALColorEntry.html">GDALColorEntry</a> * ) <font class="keyword">const</font>; 00355 <font class="keywordtype">void</font> SetColorEntry( <font class="keywordtype">int</font>, <font class="keyword">const</font> <a class="code" href="struct_GDALColorEntry.html">GDALColorEntry</a> * ); 00356 }; 00357 00358 <font class="comment">/* ******************************************************************** */</font> 00359 <font class="comment">/* GDALRasterBand */</font> 00360 <font class="comment">/* ******************************************************************** */</font> 00361 00363 <a name="l00364"></a><a class="code" href="class_GDALRasterBand.html">00364</a> <font class="keyword">class </font>CPL_DLL <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> : <font class="keyword">public</font> GDALMajorObject 00365 { 00366 <font class="keyword">protected</font>: 00367 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *poDS; 00368 <font class="keywordtype">int</font> nBand; <font class="comment">/* 1 based */</font> 00369 00370 <font class="keywordtype">int</font> nRasterXSize; 00371 <font class="keywordtype">int</font> nRasterYSize; 00372 00373 GDALDataType eDataType; 00374 GDALAccess eAccess; 00375 00376 <font class="comment">/* stuff related to blocking, and raster cache */</font> 00377 <font class="keywordtype">int</font> nBlockXSize; 00378 <font class="keywordtype">int</font> nBlockYSize; 00379 <font class="keywordtype">int</font> nBlocksPerRow; 00380 <font class="keywordtype">int</font> nBlocksPerColumn; 00381 00382 <a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a> **papoBlocks; 00383 00384 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_GDALDataset.html">GDALDataset</a>; 00385 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a>; 00386 00387 <font class="keyword">protected</font>: 00388 <font class="keyword">virtual</font> CPLErr IReadBlock( <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">void</font> * ) = 0; 00389 <font class="keyword">virtual</font> CPLErr IWriteBlock( <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">void</font> * ); 00390 <font class="keyword">virtual</font> CPLErr IRasterIO( GDALRWFlag, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, 00391 <font class="keywordtype">void</font> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, GDALDataType, 00392 <font class="keywordtype">int</font>, <font class="keywordtype">int</font> ); 00393 CPLErr OverviewRasterIO( GDALRWFlag, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, 00394 <font class="keywordtype">void</font> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, GDALDataType, 00395 <font class="keywordtype">int</font>, <font class="keywordtype">int</font> ); 00396 00397 CPLErr AdoptBlock( <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a> * ); 00398 <font class="keywordtype">void</font> InitBlockInfo(); 00399 00400 <font class="keyword">public</font>: 00401 <a class="code" href="class_GDALRasterBand.html#a0">GDALRasterBand</a>(); 00402 00403 <font class="keyword">virtual</font> <a class="code" href="class_GDALRasterBand.html#a1">~GDALRasterBand</a>(); 00404 00405 <font class="keywordtype">int</font> <a class="code" href="class_GDALRasterBand.html#a2">GetXSize</a>(); 00406 <font class="keywordtype">int</font> <a class="code" href="class_GDALRasterBand.html#a3">GetYSize</a>(); 00407 <font class="keywordtype">int</font> GetBand(); 00408 00409 GDALDataType <a class="code" href="class_GDALRasterBand.html#a5">GetRasterDataType</a>( <font class="keywordtype">void</font> ); 00410 <font class="keywordtype">void</font> <a class="code" href="class_GDALRasterBand.html#a6">GetBlockSize</a>( <font class="keywordtype">int</font> *, <font class="keywordtype">int</font> * ); 00411 GDALAccess <a class="code" href="class_GDALRasterBand.html#a7">GetAccess</a>(); 00412 00413 CPLErr <a class="code" href="class_GDALRasterBand.html#a8">RasterIO</a>( GDALRWFlag, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, 00414 <font class="keywordtype">void</font> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, GDALDataType, 00415 <font class="keywordtype">int</font>, <font class="keywordtype">int</font> ); 00416 CPLErr <a class="code" href="class_GDALRasterBand.html#a9">ReadBlock</a>( <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">void</font> * ); 00417 00418 CPLErr <a class="code" href="class_GDALRasterBand.html#a10">WriteBlock</a>( <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">void</font> * ); 00419 00420 <a class="code" href="class_GDALRasterBlock.html">GDALRasterBlock</a> *<a class="code" href="class_GDALRasterBand.html#a11">GetBlockRef</a>( <font class="keywordtype">int</font>, <font class="keywordtype">int</font> ); 00421 CPLErr <a class="code" href="class_GDALRasterBand.html#a12">FlushCache</a>(); 00422 CPLErr FlushBlock( <font class="keywordtype">int</font> = -1, <font class="keywordtype">int</font> = -1 ); 00423 00424 <font class="comment">// New OpengIS CV_SampleDimension stuff.</font> 00425 00426 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_GDALRasterBand.html#a14">GetDescription</a>(); 00427 <font class="keyword">virtual</font> <font class="keywordtype">char</font> **<a class="code" href="class_GDALRasterBand.html#a15">GetCategoryNames</a>(); 00428 <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_GDALRasterBand.html#a16">GetNoDataValue</a>( <font class="keywordtype">int</font> *pbSuccess = NULL ); 00429 <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_GDALRasterBand.html#a17">GetMinimum</a>( <font class="keywordtype">int</font> *pbSuccess = NULL ); 00430 <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_GDALRasterBand.html#a18">GetMaximum</a>(<font class="keywordtype">int</font> *pbSuccess = NULL ); 00431 <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_GDALRasterBand.html#a19">GetOffset</a>( <font class="keywordtype">int</font> *pbSuccess = NULL ); 00432 <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_GDALRasterBand.html#a20">GetScale</a>( <font class="keywordtype">int</font> *pbSuccess = NULL ); 00433 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_GDALRasterBand.html#a21">GetUnitType</a>(); 00434 <font class="keyword">virtual</font> GDALColorInterp <a class="code" href="class_GDALRasterBand.html#a22">GetColorInterpretation</a>(); 00435 <font class="keyword">virtual</font> GDALColorTable *<a class="code" href="class_GDALRasterBand.html#a23">GetColorTable</a>(); 00436 00437 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALRasterBand.html#a24">SetCategoryNames</a>( <font class="keywordtype">char</font> ** ); 00438 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALRasterBand.html#a25">SetNoDataValue</a>( <font class="keywordtype">double</font> ); 00439 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALRasterBand.html#a26">SetColorTable</a>( GDALColorTable * ); 00440 00441 <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_GDALRasterBand.html#a27">HasArbitraryOverviews</a>(); 00442 <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_GDALRasterBand.html#a28">GetOverviewCount</a>(); 00443 <font class="keyword">virtual</font> <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *<a class="code" href="class_GDALRasterBand.html#a29">GetOverview</a>(<font class="keywordtype">int</font>); 00444 <font class="keyword">virtual</font> CPLErr <a class="code" href="class_GDALRasterBand.html#a30">BuildOverviews</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *, <font class="keywordtype">int</font>, <font class="keywordtype">int</font> *, 00445 GDALProgressFunc, <font class="keywordtype">void</font> * ); 00446 00447 CPLErr <a class="code" href="class_GDALRasterBand.html#a31">GetHistogram</a>( <font class="keywordtype">double</font> dfMin, <font class="keywordtype">double</font> dfMax, 00448 <font class="keywordtype">int</font> nBuckets, <font class="keywordtype">int</font> * panHistogram, 00449 <font class="keywordtype">int</font> bIncludeOutOfRange, <font class="keywordtype">int</font> bApproxOK, 00450 GDALProgressFunc, <font class="keywordtype">void</font> *pProgressData ); 00451 }; 00452 00453 <font class="comment">/* ******************************************************************** */</font> 00454 <font class="comment">/* GDALOpenInfo */</font> 00455 <font class="comment">/* */</font> 00456 <font class="comment">/* Structure of data about dataset for open functions. */</font> 00457 <font class="comment">/* ******************************************************************** */</font> 00458 00459 <font class="keyword">class </font>CPL_DLL GDALOpenInfo 00460 { 00461 <font class="keyword">public</font>: 00462 00463 GDALOpenInfo( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszFile, GDALAccess eAccessIn ); 00464 ~GDALOpenInfo( <font class="keywordtype">void</font> ); 00465 00466 <font class="keywordtype">char</font> *pszFilename; 00467 00468 GDALAccess eAccess; 00469 00470 GBool bStatOK; 00471 VSIStatBuf sStat; 00472 00473 FILE *fp; 00474 00475 <font class="keywordtype">int</font> nHeaderBytes; 00476 GByte *pabyHeader; 00477 00478 }; 00479 00480 <font class="comment">/* ******************************************************************** */</font> 00481 <font class="comment">/* GDALDriver */</font> 00482 <font class="comment">/* ******************************************************************** */</font> 00483 <a name="l00493"></a><a class="code" href="class_GDALDriver.html">00493</a> <font class="keyword">class </font>CPL_DLL <a class="code" href="class_GDALDriver.html">GDALDriver</a> : <font class="keyword">public</font> GDALMajorObject 00494 { 00495 <font class="keyword">public</font>: 00496 GDALDriver(); 00497 ~GDALDriver(); 00498 <a name="l00500"></a><a class="code" href="class_GDALDriver.html#m0">00500</a> <font class="keywordtype">char</font> *pszShortName; 00501 <a name="l00503"></a><a class="code" href="class_GDALDriver.html#m1">00503</a> <font class="keywordtype">char</font> *pszLongName; 00504 <a name="l00506"></a><a class="code" href="class_GDALDriver.html#m2">00506</a> <font class="keywordtype">char</font> *pszHelpTopic; 00507 00508 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *(*pfnOpen)( GDALOpenInfo * ); 00509 00510 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *(*pfnCreate)( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszName, 00511 <font class="keywordtype">int</font> nXSize, <font class="keywordtype">int</font> nYSize, <font class="keywordtype">int</font> nBands, 00512 GDALDataType eType, 00513 <font class="keywordtype">char</font> ** papszOptions ); 00514 00515 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *<a class="code" href="class_GDALDriver.html#a2">Create</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszName, 00516 <font class="keywordtype">int</font> nXSize, <font class="keywordtype">int</font> nYSize, <font class="keywordtype">int</font> nBands, 00517 GDALDataType eType, <font class="keywordtype">char</font> ** papszOptions ); 00518 00519 CPLErr (*pfnDelete)( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszName ); 00520 00521 CPLErr <a class="code" href="class_GDALDriver.html#a3">Delete</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszName ); 00522 00523 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *<a class="code" href="class_GDALDriver.html#a4">CreateCopy</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *, <a class="code" href="class_GDALDataset.html">GDALDataset</a> *, 00524 <font class="keywordtype">int</font>, <font class="keywordtype">char</font> **, 00525 GDALProgressFunc pfnProgress, 00526 <font class="keywordtype">void</font> * pProgressData ); 00527 00528 <a class="code" href="class_GDALDataset.html">GDALDataset</a> *(*pfnCreateCopy)( <font class="keyword">const</font> <font class="keywordtype">char</font> *, <a class="code" href="class_GDALDataset.html">GDALDataset</a> *, 00529 <font class="keywordtype">int</font>, <font class="keywordtype">char</font> **, 00530 GDALProgressFunc pfnProgress, 00531 <font class="keywordtype">void</font> * pProgressData ); 00532 }; 00533 00534 <font class="comment">/* ******************************************************************** */</font> 00535 <font class="comment">/* GDALDriverManager */</font> 00536 <font class="comment">/* ******************************************************************** */</font> 00537 <a name="l00545"></a><a class="code" href="class_GDALDriverManager.html">00545</a> <font class="keyword">class </font>CPL_DLL <a class="code" href="class_GDALDriverManager.html">GDALDriverManager</a> : <font class="keyword">public</font> GDALMajorObject 00546 { 00547 <font class="keywordtype">int</font> nDrivers; 00548 <a class="code" href="class_GDALDriver.html">GDALDriver</a> **papoDrivers; 00549 00550 <font class="keywordtype">char</font> *pszHome; 00551 00552 <font class="keyword">public</font>: 00553 GDALDriverManager(); 00554 ~GDALDriverManager(); 00555 00556 <font class="keywordtype">int</font> <a class="code" href="class_GDALDriverManager.html#a2">GetDriverCount</a>( <font class="keywordtype">void</font> ); 00557 <a class="code" href="class_GDALDriver.html">GDALDriver</a> *<a class="code" href="class_GDALDriverManager.html#a3">GetDriver</a>( <font class="keywordtype">int</font> ); 00558 <a class="code" href="class_GDALDriver.html">GDALDriver</a> *<a class="code" href="class_GDALDriverManager.html#a4">GetDriverByName</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * ); 00559 00560 <font class="keywordtype">int</font> <a class="code" href="class_GDALDriverManager.html#a5">RegisterDriver</a>( <a class="code" href="class_GDALDriver.html">GDALDriver</a> * ); 00561 <font class="keywordtype">void</font> MoveDriver( <a class="code" href="class_GDALDriver.html">GDALDriver</a> *, <font class="keywordtype">int</font> ); 00562 <font class="keywordtype">void</font> <a class="code" href="class_GDALDriverManager.html#a7">DeregisterDriver</a>( <a class="code" href="class_GDALDriver.html">GDALDriver</a> * ); 00563 00564 <font class="keywordtype">void</font> <a class="code" href="class_GDALDriverManager.html#a8">AutoLoadDrivers</a>(); 00565 00566 <font class="keyword">const</font> <font class="keywordtype">char</font> *GetHome(); 00567 <font class="keywordtype">void</font> SetHome( <font class="keyword">const</font> <font class="keywordtype">char</font> * ); 00568 }; 00569 00570 CPL_C_START 00571 <a class="code" href="class_GDALDriverManager.html">GDALDriverManager</a> CPL_DLL * GetGDALDriverManager( <font class="keywordtype">void</font> ); 00572 CPL_C_END 00573 00574 <font class="comment">/* ==================================================================== */</font> 00575 <font class="comment">/* An assortment of overview related stuff. */</font> 00576 <font class="comment">/* ==================================================================== */</font> 00577 00578 CPL_C_START 00579 00580 CPLErr 00581 GTIFFBuildOverviews( <font class="keyword">const</font> <font class="keywordtype">char</font> * pszFilename, 00582 <font class="keywordtype">int</font> nBands, <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> **papoBandList, 00583 <font class="keywordtype">int</font> nOverviews, <font class="keywordtype">int</font> * panOverviewList, 00584 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszResampling, 00585 GDALProgressFunc pfnProgress, <font class="keywordtype">void</font> * pProgressData ); 00586 00587 CPLErr 00588 GDALDefaultBuildOverviews( <a class="code" href="class_GDALDataset.html">GDALDataset</a> *hSrcDS, <font class="keyword">const</font> <font class="keywordtype">char</font> * pszBasename, 00589 <font class="keyword">const</font> <font class="keywordtype">char</font> * pszResampling, 00590 <font class="keywordtype">int</font> nOverviews, <font class="keywordtype">int</font> * panOverviewList, 00591 <font class="keywordtype">int</font> nBands, <font class="keywordtype">int</font> * panBandList, 00592 GDALProgressFunc pfnProgress, <font class="keywordtype">void</font> * pProgressData); 00593 00594 00595 CPLErr 00596 GDALRegenerateOverviews( <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> *, <font class="keywordtype">int</font>, <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> **, 00597 <font class="keyword">const</font> <font class="keywordtype">char</font> *, GDALProgressFunc, <font class="keywordtype">void</font> * ); 00598 00599 CPL_C_END 00600 00601 <font class="preprocessor">#endif </font><font class="comment">/* ndef GDAL_PRIV_H_INCLUDED */</font> </div></pre><hr><address><small>Generated at Thu Mar 28 09:47:30 2002 for GDAL by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="doxygen.gif" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.3-20001105 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>