<!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>gdaldataset.cpp 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:30 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>gdaldataset.cpp</h1><div class="fragment"><pre>00001 <font class="comment">/******************************************************************************</font> 00002 <font class="comment"> * $Id: gdaldataset_cpp-source.html,v 1.10 2002/04/16 13:11:48 warmerda Exp $</font> 00003 <font class="comment"> *</font> 00004 <font class="comment"> * Project: GDAL Core</font> 00005 <font class="comment"> * Purpose: Base class for raster file formats. </font> 00006 <font class="comment"> * Author: Frank Warmerdam, warmerda@home.com</font> 00007 <font class="comment"> *</font> 00008 <font class="comment"> ******************************************************************************</font> 00009 <font class="comment"> * Copyright (c) 1998, 2000, Frank Warmerdam</font> 00010 <font class="comment"> *</font> 00011 <font class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</font> 00012 <font class="comment"> * copy of this software and associated documentation files (the "Software"),</font> 00013 <font class="comment"> * to deal in the Software without restriction, including without limitation</font> 00014 <font class="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</font> 00015 <font class="comment"> * and/or sell copies of the Software, and to permit persons to whom the</font> 00016 <font class="comment"> * Software is furnished to do so, subject to the following conditions:</font> 00017 <font class="comment"> *</font> 00018 <font class="comment"> * The above copyright notice and this permission notice shall be included</font> 00019 <font class="comment"> * in all copies or substantial portions of the Software.</font> 00020 <font class="comment"> *</font> 00021 <font class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</font> 00022 <font class="comment"> * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</font> 00023 <font class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</font> 00024 <font class="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</font> 00025 <font class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</font> 00026 <font class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</font> 00027 <font class="comment"> * DEALINGS IN THE SOFTWARE.</font> 00028 <font class="comment"> ******************************************************************************</font> 00029 <font class="comment"> *</font> 00030 <font class="comment"> * $Log: gdaldataset_cpp-source.html,v $ 00030 <font class="comment"> * Revision 1.10 2002/04/16 13:11:48 warmerda 00030 <font class="comment"> * updated 00030 <font class="comment"> *</font> 00031 <font class="comment"> * Revision 1.26 2001/11/16 21:36:01 warmerda</font> 00032 <font class="comment"> * added the AddBand() method on GDALDataset</font> 00033 <font class="comment"> *</font> 00034 <font class="comment"> * Revision 1.25 2001/10/18 14:35:22 warmerda</font> 00035 <font class="comment"> * avoid conflicts between parameters and member data</font> 00036 <font class="comment"> *</font> 00037 <font class="comment"> * Revision 1.24 2001/10/17 21:47:02 warmerda</font> 00038 <font class="comment"> * added SetGCPs() on GDALDataset</font> 00039 <font class="comment"> *</font> 00040 <font class="comment"> * Revision 1.23 2001/07/18 04:04:30 warmerda</font> 00041 <font class="comment"> * added CPL_CVSID</font> 00042 <font class="comment"> *</font> 00043 <font class="comment"> * Revision 1.22 2001/01/10 22:24:37 warmerda</font> 00044 <font class="comment"> * Patched GDALDataset::FlushCache() to recover gracefully if papoBands</font> 00045 <font class="comment"> * doesn't exist yet matching nBands.</font> 00046 <font class="comment"> *</font> 00047 <font class="comment"> * Revision 1.21 2000/10/06 15:27:13 warmerda</font> 00048 <font class="comment"> * default bands to same access as dataset in SetBand()</font> 00049 <font class="comment"> *</font> 00050 <font class="comment"> * Revision 1.20 2000/08/09 16:26:00 warmerda</font> 00051 <font class="comment"> * debug message on dataset cleanup</font> 00052 <font class="comment"> *</font> 00053 <font class="comment"> * Revision 1.19 2000/07/11 14:35:43 warmerda</font> 00054 <font class="comment"> * added documentation</font> 00055 <font class="comment"> *</font> 00056 <font class="comment"> * Revision 1.18 2000/06/27 16:46:56 warmerda</font> 00057 <font class="comment"> * default to using dummy progress func</font> 00058 <font class="comment"> *</font> 00059 <font class="comment"> * Revision 1.17 2000/06/26 21:44:50 warmerda</font> 00060 <font class="comment"> * make progress func save for overviews</font> 00061 <font class="comment"> *</font> 00062 <font class="comment"> * Revision 1.16 2000/06/26 18:47:31 warmerda</font> 00063 <font class="comment"> * added GDALBuildOverviews</font> 00064 <font class="comment"> *</font> 00065 <font class="comment"> * Revision 1.15 2000/04/21 21:56:23 warmerda</font> 00066 <font class="comment"> * move metadata to GDALMajorObject, added BuildOverviews</font> 00067 <font class="comment"> *</font> 00068 <font class="comment"> * Revision 1.14 2000/03/31 13:42:06 warmerda</font> 00069 <font class="comment"> * added gcp support methods</font> 00070 <font class="comment"> *</font> 00071 <font class="comment"> * Revision 1.13 2000/03/23 16:53:55 warmerda</font> 00072 <font class="comment"> * default geotransform is 0,1,0,0,0,1</font> 00073 <font class="comment"> *</font> 00074 <font class="comment"> * Revision 1.12 2000/03/06 21:50:10 warmerda</font> 00075 <font class="comment"> * fixed bug with setting nBands</font> 00076 <font class="comment"> *</font> 00077 <font class="comment"> * Revision 1.11 2000/03/06 02:20:56 warmerda</font> 00078 <font class="comment"> * added reference counting</font> 00079 <font class="comment"> *</font> 00080 <font class="comment"> * Revision 1.10 2000/02/28 16:34:49 warmerda</font> 00081 <font class="comment"> * set the nRasterX/YSize in bands</font> 00082 <font class="comment"> *</font> 00083 <font class="comment"> * Revision 1.9 1999/11/11 21:59:07 warmerda</font> 00084 <font class="comment"> * added GetDriver() for datasets</font> 00085 <font class="comment"> *</font> 00086 <font class="comment"> * Revision 1.8 1999/10/01 14:44:02 warmerda</font> 00087 <font class="comment"> * added documentation</font> 00088 <font class="comment"> *</font> 00089 <font class="comment"> * Revision 1.7 1999/05/17 01:43:10 warmerda</font> 00090 <font class="comment"> * fixed GDALSetGeoTransform()</font> 00091 <font class="comment"> *</font> 00092 <font class="comment"> * Revision 1.6 1999/05/16 20:04:58 warmerda</font> 00093 <font class="comment"> * Don't emit an error message when SetProjection() is called for datasets</font> 00094 <font class="comment"> * that don't implement the call.</font> 00095 <font class="comment"> *</font> 00096 <font class="comment"> * Revision 1.5 1999/04/21 04:16:51 warmerda</font> 00097 <font class="comment"> * experimental docs</font> 00098 <font class="comment"> *</font> 00099 <font class="comment"> * Revision 1.4 1999/01/11 15:37:55 warmerda</font> 00100 <font class="comment"> * fixed log keyword</font> 00101 <font class="comment"> */</font> 00102 00103 <font class="preprocessor">#include "gdal_priv.h"</font> 00104 <font class="preprocessor">#include "cpl_string.h"</font> 00105 00106 CPL_CVSID(<font class="stringliteral">"$Id: gdaldataset_cpp-source.html,v 1.10 2002/04/16 13:11:48 warmerda Exp $"</font>); 00107 00108 <font class="comment">/************************************************************************/</font> 00109 <font class="comment">/* GDALDataset() */</font> 00110 <font class="comment">/************************************************************************/</font> 00111 00112 GDALDataset::GDALDataset()<font class="keyword"></font> 00113 <font class="keyword"></font> 00114 <font class="keyword"></font>{ 00115 poDriver = NULL; 00116 eAccess = GA_ReadOnly; 00117 nRasterXSize = 512; 00118 nRasterYSize = 512; 00119 nBands = 0; 00120 papoBands = NULL; 00121 nRefCount = 1; 00122 } 00123 00124 <font class="comment">/************************************************************************/</font> 00125 <font class="comment">/* ~GDALDataset() */</font> 00126 <font class="comment">/************************************************************************/</font> 00127 <a name="l00137"></a><a class="code" href="class_GDALDataset.html#a0">00137</a> <a class="code" href="class_GDALDataset.html#a0">GDALDataset::~GDALDataset</a>()<font class="keyword"></font> 00138 <font class="keyword"></font> 00139 <font class="keyword"></font>{ 00140 <font class="keywordtype">int</font> i; 00141 00142 <a class="code" href="cpl_error_h.html#a29">CPLDebug</a>( <font class="stringliteral">"GDAL"</font>, <font class="stringliteral">"GDALClose(%s)\n"</font>, GetDescription() ); 00143 00144 <font class="comment">/* -------------------------------------------------------------------- */</font> 00145 <font class="comment">/* Destroy the raster bands if they exist. */</font> 00146 <font class="comment">/* -------------------------------------------------------------------- */</font> 00147 <font class="keywordflow">for</font>( i = 0; i < nBands && papoBands != NULL; i++ ) 00148 { 00149 <font class="keywordflow">if</font>( papoBands[i] != NULL ) 00150 <font class="keyword">delete</font> papoBands[i]; 00151 } 00152 00153 CPLFree( papoBands ); 00154 } 00155 00156 <font class="comment">/************************************************************************/</font> 00157 <font class="comment">/* GDALClose() */</font> 00158 <font class="comment">/************************************************************************/</font> 00159 00160 <font class="keywordtype">void</font> GDALClose( GDALDatasetH hDS )<font class="keyword"></font> 00161 <font class="keyword"></font> 00162 <font class="keyword"></font>{ 00163 <font class="keyword">delete</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS); 00164 } 00165 00166 <font class="comment">/************************************************************************/</font> 00167 <font class="comment">/* FlushCache() */</font> 00168 <font class="comment">/************************************************************************/</font> 00169 <a name="l00177"></a><a class="code" href="class_GDALDataset.html#a5">00177</a> <font class="keywordtype">void</font> <a class="code" href="class_GDALDataset.html#a5">GDALDataset::FlushCache</a>()<font class="keyword"></font> 00178 <font class="keyword"></font> 00179 <font class="keyword"></font>{ 00180 <font class="keywordtype">int</font> i; 00181 00182 <font class="comment">// This sometimes happens if a dataset is destroyed before completely</font> 00183 <font class="comment">// built. </font> 00184 00185 <font class="keywordflow">if</font>( papoBands == NULL ) 00186 <font class="keywordflow">return</font>; 00187 00188 <font class="keywordflow">for</font>( i = 0; i < nBands; i++ ) 00189 { 00190 <font class="keywordflow">if</font>( papoBands[i] != NULL ) 00191 papoBands[i]-><a class="code" href="class_GDALRasterBand.html#a12">FlushCache</a>(); 00192 } 00193 } 00194 00195 <font class="comment">/************************************************************************/</font> 00196 <font class="comment">/* RasterInitialize() */</font> 00197 <font class="comment">/* */</font> 00198 <font class="comment">/* Initialize raster size */</font> 00199 <font class="comment">/************************************************************************/</font> 00200 00201 <font class="keywordtype">void</font> GDALDataset::RasterInitialize( <font class="keywordtype">int</font> nXSize, <font class="keywordtype">int</font> nYSize )<font class="keyword"></font> 00202 <font class="keyword"></font> 00203 <font class="keyword"></font>{ 00204 CPLAssert( nXSize > 0 && nYSize > 0 ); 00205 00206 nRasterXSize = nXSize; 00207 nRasterYSize = nYSize; 00208 } 00209 00210 <font class="comment">/************************************************************************/</font> 00211 <font class="comment">/* AddBand() */</font> 00212 <font class="comment">/************************************************************************/</font> 00213 <a name="l00233"></a><a class="code" href="class_GDALDataset.html#a10">00233</a> CPLErr <a class="code" href="class_GDALDataset.html#a10">GDALDataset::AddBand</a>( GDALDataType eType, <font class="keywordtype">char</font> **papszOptions )<font class="keyword"></font> 00234 <font class="keyword"></font> 00235 <font class="keyword"></font>{ 00236 <a class="code" href="cpl_error_h.html#a17">CPLError</a>( CE_Failure, CPLE_NotSupported, 00237 <font class="stringliteral">"Dataset does not support the AddBand() method."</font> ); 00238 00239 <font class="keywordflow">return</font> CE_Failure; 00240 } 00241 00242 <font class="comment">/************************************************************************/</font> 00243 <font class="comment">/* GDALAddBand() */</font> 00244 <font class="comment">/************************************************************************/</font> 00245 00246 CPLErr GDALAddBand( GDALDatasetH hDataset, 00247 GDALDataType eType, <font class="keywordtype">char</font> **papszOptions )<font class="keyword"></font> 00248 <font class="keyword"></font> 00249 <font class="keyword"></font>{ 00250 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->AddBand( eType, papszOptions ); 00251 } 00252 00253 <font class="comment">/************************************************************************/</font> 00254 <font class="comment">/* SetBand() */</font> 00255 <font class="comment">/* */</font> 00256 <font class="comment">/* Set a band in the band array, updating the band count, and */</font> 00257 <font class="comment">/* array size appropriately. */</font> 00258 <font class="comment">/************************************************************************/</font> 00259 00260 <font class="keywordtype">void</font> GDALDataset::SetBand( <font class="keywordtype">int</font> nNewBand, <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> * poBand )<font class="keyword"></font> 00261 <font class="keyword"></font> 00262 <font class="keyword"></font>{ 00263 <font class="comment">/* -------------------------------------------------------------------- */</font> 00264 <font class="comment">/* Do we need to grow the bands list? */</font> 00265 <font class="comment">/* -------------------------------------------------------------------- */</font> 00266 <font class="keywordflow">if</font>( nBands < nNewBand || papoBands == NULL ) { 00267 <font class="keywordtype">int</font> i; 00268 00269 <font class="keywordflow">if</font>( papoBands == NULL ) 00270 papoBands = (<a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> **) 00271 VSICalloc(<font class="keyword">sizeof</font>(<a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a>*), MAX(nNewBand,nBands)); 00272 <font class="keywordflow">else</font> 00273 papoBands = (<a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> **) 00274 VSIRealloc(papoBands, <font class="keyword">sizeof</font>(<a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a>*) * 00275 MAX(nNewBand,nBands)); 00276 00277 <font class="keywordflow">for</font>( i = nBands; i < nNewBand; i++ ) 00278 papoBands[i] = NULL; 00279 00280 nBands = MAX(nBands,nNewBand); 00281 } 00282 00283 <font class="comment">/* -------------------------------------------------------------------- */</font> 00284 <font class="comment">/* Set the band. Resetting the band is currently not permitted. */</font> 00285 <font class="comment">/* -------------------------------------------------------------------- */</font> 00286 CPLAssert( papoBands[nNewBand-1] == NULL ); 00287 00288 papoBands[nNewBand-1] = poBand; 00289 00290 <font class="comment">/* -------------------------------------------------------------------- */</font> 00291 <font class="comment">/* Set back reference information on the raster band. Note */</font> 00292 <font class="comment">/* that the GDALDataset is a friend of the GDALRasterBand */</font> 00293 <font class="comment">/* specifically to allow this. */</font> 00294 <font class="comment">/* -------------------------------------------------------------------- */</font> 00295 poBand->nBand = nNewBand; 00296 poBand->poDS = <font class="keyword">this</font>; 00297 poBand->nRasterXSize = nRasterXSize; 00298 poBand->nRasterYSize = nRasterYSize; 00299 poBand->eAccess = eAccess; <font class="comment">/* default access to be same as dataset */</font> 00300 } 00301 00302 <font class="comment">/************************************************************************/</font> 00303 <font class="comment">/* GetRasterXSize() */</font> 00304 <font class="comment">/************************************************************************/</font> 00305 <a name="l00316"></a><a class="code" href="class_GDALDataset.html#a1">00316</a> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a1">GDALDataset::GetRasterXSize</a>()<font class="keyword"></font> 00317 <font class="keyword"></font> 00318 <font class="keyword"></font>{ 00319 <font class="keywordflow">return</font> nRasterXSize; 00320 } 00321 00322 <font class="comment">/************************************************************************/</font> 00323 <font class="comment">/* GDALGetRasterXSize() */</font> 00324 <font class="comment">/************************************************************************/</font> 00325 00326 <font class="keywordtype">int</font> GDALGetRasterXSize( GDALDatasetH hDataset )<font class="keyword"></font> 00327 <font class="keyword"></font> 00328 <font class="keyword"></font>{ 00329 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->GetRasterXSize(); 00330 } 00331 00332 00333 <font class="comment">/************************************************************************/</font> 00334 <font class="comment">/* GetRasterYSize() */</font> 00335 <font class="comment">/************************************************************************/</font> 00336 <a name="l00347"></a><a class="code" href="class_GDALDataset.html#a2">00347</a> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a2">GDALDataset::GetRasterYSize</a>()<font class="keyword"></font> 00348 <font class="keyword"></font> 00349 <font class="keyword"></font>{ 00350 <font class="keywordflow">return</font> nRasterYSize; 00351 } 00352 00353 <font class="comment">/************************************************************************/</font> 00354 <font class="comment">/* GDALGetRasterYSize() */</font> 00355 <font class="comment">/************************************************************************/</font> 00356 00357 <font class="keywordtype">int</font> GDALGetRasterYSize( GDALDatasetH hDataset )<font class="keyword"></font> 00358 <font class="keyword"></font> 00359 <font class="keyword"></font>{ 00360 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->GetRasterYSize(); 00361 } 00362 00363 <font class="comment">/************************************************************************/</font> 00364 <font class="comment">/* GetRasterBand() */</font> 00365 <font class="comment">/************************************************************************/</font> 00366 <a name="l00380"></a><a class="code" href="class_GDALDataset.html#a4">00380</a> <a class="code" href="class_GDALRasterBand.html">GDALRasterBand</a> * <a class="code" href="class_GDALDataset.html#a4">GDALDataset::GetRasterBand</a>( <font class="keywordtype">int</font> nBandId )<font class="keyword"></font> 00381 <font class="keyword"></font> 00382 <font class="keyword"></font>{ 00383 <font class="keywordflow">if</font>( nBandId < 1 || nBandId > nBands ) 00384 { 00385 <a class="code" href="cpl_error_h.html#a17">CPLError</a>( CE_Fatal, CPLE_IllegalArg, 00386 <font class="stringliteral">"GDALDataset::GetRasterBand(%d) - Illegal band #\n"</font>, 00387 nBandId ); 00388 } 00389 00390 <font class="keywordflow">return</font>( papoBands[nBandId-1] ); 00391 } 00392 00393 <font class="comment">/************************************************************************/</font> 00394 <font class="comment">/* GDALGetRasterBand() */</font> 00395 <font class="comment">/************************************************************************/</font> 00396 00397 GDALRasterBandH GDALGetRasterBand( GDALDatasetH hDS, <font class="keywordtype">int</font> nBandId )<font class="keyword"></font> 00398 <font class="keyword"></font> 00399 <font class="keyword"></font>{ 00400 <font class="keywordflow">return</font>( (GDALRasterBandH) ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetRasterBand(nBandId) ); 00401 } 00402 00403 <font class="comment">/************************************************************************/</font> 00404 <font class="comment">/* GetRasterCount() */</font> 00405 <font class="comment">/************************************************************************/</font> 00406 <a name="l00415"></a><a class="code" href="class_GDALDataset.html#a3">00415</a> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a3">GDALDataset::GetRasterCount</a>()<font class="keyword"></font> 00416 <font class="keyword"></font> 00417 <font class="keyword"></font>{ 00418 <font class="keywordflow">return</font>( nBands ); 00419 } 00420 00421 <font class="comment">/************************************************************************/</font> 00422 <font class="comment">/* GDALGetRasterCount() */</font> 00423 <font class="comment">/************************************************************************/</font> 00424 00425 <font class="keywordtype">int</font> GDALGetRasterCount( GDALDatasetH hDS )<font class="keyword"></font> 00426 <font class="keyword"></font> 00427 <font class="keyword"></font>{ 00428 <font class="keywordflow">return</font>( ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetRasterCount() ); 00429 } 00430 00431 <font class="comment">/************************************************************************/</font> 00432 <font class="comment">/* GetProjectionRef() */</font> 00433 <font class="comment">/************************************************************************/</font> 00434 <a name="l00451"></a><a class="code" href="class_GDALDataset.html#a6">00451</a> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_GDALDataset.html#a6">GDALDataset::GetProjectionRef</a>()<font class="keyword"></font> 00452 <font class="keyword"></font> 00453 <font class="keyword"></font>{ 00454 <font class="keywordflow">return</font>( <font class="stringliteral">""</font> ); 00455 } 00456 00457 <font class="comment">/************************************************************************/</font> 00458 <font class="comment">/* GDALGetProjectionRef() */</font> 00459 <font class="comment">/************************************************************************/</font> 00460 00461 <font class="keyword">const</font> <font class="keywordtype">char</font> *GDALGetProjectionRef( GDALDatasetH hDS )<font class="keyword"></font> 00462 <font class="keyword"></font> 00463 <font class="keyword"></font>{ 00464 <font class="keywordflow">return</font>( ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetProjectionRef() ); 00465 } 00466 00467 <font class="comment">/************************************************************************/</font> 00468 <font class="comment">/* SetProjection() */</font> 00469 <font class="comment">/************************************************************************/</font> 00470 <a name="l00486"></a><a class="code" href="class_GDALDataset.html#a7">00486</a> CPLErr <a class="code" href="class_GDALDataset.html#a7">GDALDataset::SetProjection</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * )<font class="keyword"></font> 00487 <font class="keyword"></font> 00488 <font class="keyword"></font>{ 00489 <font class="keywordflow">return</font> CE_Failure; 00490 } 00491 00492 <font class="comment">/************************************************************************/</font> 00493 <font class="comment">/* GDALSetProjection() */</font> 00494 <font class="comment">/************************************************************************/</font> 00495 00496 CPLErr GDALSetProjection( GDALDatasetH hDS, <font class="keyword">const</font> <font class="keywordtype">char</font> * pszProjection )<font class="keyword"></font> 00497 <font class="keyword"></font> 00498 <font class="keyword"></font>{ 00499 <font class="keywordflow">return</font>( ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->SetProjection(pszProjection) ); 00500 } 00501 00502 <font class="comment">/************************************************************************/</font> 00503 <font class="comment">/* GetGeoTransform() */</font> 00504 <font class="comment">/************************************************************************/</font> 00505 <a name="l00536"></a><a class="code" href="class_GDALDataset.html#a8">00536</a> CPLErr <a class="code" href="class_GDALDataset.html#a8">GDALDataset::GetGeoTransform</a>( <font class="keywordtype">double</font> * padfTransform )<font class="keyword"></font> 00537 <font class="keyword"></font> 00538 <font class="keyword"></font>{ 00539 CPLAssert( padfTransform != NULL ); 00540 00541 padfTransform[0] = 0.0; <font class="comment">/* X Origin (top left corner) */</font> 00542 padfTransform[1] = 1.0; <font class="comment">/* X Pixel size */</font> 00543 padfTransform[2] = 0.0; 00544 00545 padfTransform[3] = 0.0; <font class="comment">/* Y Origin (top left corner) */</font> 00546 padfTransform[4] = 0.0; 00547 padfTransform[5] = 1.0; <font class="comment">/* Y Pixel Size */</font> 00548 00549 <font class="keywordflow">return</font>( CE_Failure ); 00550 } 00551 00552 <font class="comment">/************************************************************************/</font> 00553 <font class="comment">/* GDALGetGeoTransform() */</font> 00554 <font class="comment">/************************************************************************/</font> 00555 00556 CPLErr GDALGetGeoTransform( GDALDatasetH hDS, <font class="keywordtype">double</font> * padfTransform )<font class="keyword"></font> 00557 <font class="keyword"></font> 00558 <font class="keyword"></font>{ 00559 <font class="keywordflow">return</font>( ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetGeoTransform(padfTransform) ); 00560 } 00561 00562 <font class="comment">/************************************************************************/</font> 00563 <font class="comment">/* SetGeoTransform() */</font> 00564 <font class="comment">/************************************************************************/</font> 00565 <a name="l00581"></a><a class="code" href="class_GDALDataset.html#a9">00581</a> CPLErr <a class="code" href="class_GDALDataset.html#a9">GDALDataset::SetGeoTransform</a>( <font class="keywordtype">double</font> * )<font class="keyword"></font> 00582 <font class="keyword"></font> 00583 <font class="keyword"></font>{ 00584 <a class="code" href="cpl_error_h.html#a17">CPLError</a>( CE_Failure, CPLE_NotSupported, 00585 <font class="stringliteral">"SetGeoTransform() not supported for this dataset."</font> ); 00586 00587 <font class="keywordflow">return</font>( CE_Failure ); 00588 } 00589 00590 <font class="comment">/************************************************************************/</font> 00591 <font class="comment">/* GDALSetGeoTransform() */</font> 00592 <font class="comment">/************************************************************************/</font> 00593 00594 CPLErr GDALSetGeoTransform( GDALDatasetH hDS, <font class="keywordtype">double</font> * padfTransform )<font class="keyword"></font> 00595 <font class="keyword"></font> 00596 <font class="keyword"></font>{ 00597 <font class="keywordflow">return</font>( ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->SetGeoTransform(padfTransform) ); 00598 } 00599 00600 <font class="comment">/************************************************************************/</font> 00601 <font class="comment">/* GetInternalHandle() */</font> 00602 <font class="comment">/************************************************************************/</font> 00603 <a name="l00615"></a><a class="code" href="class_GDALDataset.html#a11">00615</a> <font class="keywordtype">void</font> *<a class="code" href="class_GDALDataset.html#a11">GDALDataset::GetInternalHandle</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> * )<font class="keyword"></font> 00616 <font class="keyword"></font> 00617 <font class="keyword"></font>{ 00618 <font class="keywordflow">return</font>( NULL ); 00619 } 00620 00621 <font class="comment">/************************************************************************/</font> 00622 <font class="comment">/* GDALGetInternalHandle() */</font> 00623 <font class="comment">/************************************************************************/</font> 00624 00625 <font class="keywordtype">void</font> *GDALGetInternalHandle( GDALDatasetH hDS, <font class="keyword">const</font> <font class="keywordtype">char</font> * pszRequest )<font class="keyword"></font> 00626 <font class="keyword"></font> 00627 <font class="keyword"></font>{ 00628 <font class="keywordflow">return</font>( ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetInternalHandle(pszRequest) ); 00629 } 00630 00631 <font class="comment">/************************************************************************/</font> 00632 <font class="comment">/* GetDriver() */</font> 00633 <font class="comment">/************************************************************************/</font> 00634 <a name="l00644"></a><a class="code" href="class_GDALDataset.html#a12">00644</a> <a class="code" href="class_GDALDriver.html">GDALDriver</a> * <a class="code" href="class_GDALDataset.html#a12">GDALDataset::GetDriver</a>()<font class="keyword"></font> 00645 <font class="keyword"></font> 00646 <font class="keyword"></font>{ 00647 <font class="keywordflow">return</font> poDriver; 00648 } 00649 00650 <font class="comment">/************************************************************************/</font> 00651 <font class="comment">/* GDALGetDatasetDriver() */</font> 00652 <font class="comment">/************************************************************************/</font> 00653 00654 GDALDriverH GDALGetDatasetDriver( GDALDatasetH hDataset )<font class="keyword"></font> 00655 <font class="keyword"></font> 00656 <font class="keyword"></font>{ 00657 <font class="keywordflow">return</font> (GDALDriverH) ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->GetDriver(); 00658 } 00659 00660 <font class="comment">/************************************************************************/</font> 00661 <font class="comment">/* Reference() */</font> 00662 <font class="comment">/************************************************************************/</font> 00663 <a name="l00674"></a><a class="code" href="class_GDALDataset.html#a17">00674</a> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a17">GDALDataset::Reference</a>()<font class="keyword"></font> 00675 <font class="keyword"></font> 00676 <font class="keyword"></font>{ 00677 <font class="keywordflow">return</font> ++nRefCount; 00678 } 00679 00680 <font class="comment">/************************************************************************/</font> 00681 <font class="comment">/* GDALReferenceDataset() */</font> 00682 <font class="comment">/************************************************************************/</font> 00683 00684 <font class="keywordtype">int</font> GDALReferenceDataset( GDALDatasetH hDataset )<font class="keyword"></font> 00685 <font class="keyword"></font> 00686 <font class="keyword"></font>{ 00687 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->Reference(); 00688 } 00689 00690 <font class="comment">/************************************************************************/</font> 00691 <font class="comment">/* Reference() */</font> 00692 <font class="comment">/************************************************************************/</font> 00693 <a name="l00705"></a><a class="code" href="class_GDALDataset.html#a18">00705</a> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a18">GDALDataset::Dereference</a>()<font class="keyword"></font> 00706 <font class="keyword"></font> 00707 <font class="keyword"></font>{ 00708 <font class="keywordflow">return</font> --nRefCount; 00709 } 00710 00711 <font class="comment">/************************************************************************/</font> 00712 <font class="comment">/* GDALDereferenceDataset() */</font> 00713 <font class="comment">/************************************************************************/</font> 00714 00715 <font class="keywordtype">int</font> GDALDereferenceDataset( GDALDatasetH hDataset )<font class="keyword"></font> 00716 <font class="keyword"></font> 00717 <font class="keyword"></font>{ 00718 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->Dereference(); 00719 } 00720 00721 <font class="comment">/************************************************************************/</font> 00722 <font class="comment">/* GetGCPCount() */</font> 00723 <font class="comment">/************************************************************************/</font> 00724 <a name="l00733"></a><a class="code" href="class_GDALDataset.html#a13">00733</a> <font class="keywordtype">int</font> <a class="code" href="class_GDALDataset.html#a13">GDALDataset::GetGCPCount</a>()<font class="keyword"></font> 00734 <font class="keyword"></font> 00735 <font class="keyword"></font>{ 00736 <font class="keywordflow">return</font> 0; 00737 } 00738 00739 <font class="comment">/************************************************************************/</font> 00740 <font class="comment">/* GDALGetGCPCount() */</font> 00741 <font class="comment">/************************************************************************/</font> 00742 00743 <font class="keywordtype">int</font> GDALGetGCPCount( GDALDatasetH hDS )<font class="keyword"></font> 00744 <font class="keyword"></font> 00745 <font class="keyword"></font>{ 00746 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetGCPCount(); 00747 } 00748 00749 <font class="comment">/************************************************************************/</font> 00750 <font class="comment">/* GetGCPProjection() */</font> 00751 <font class="comment">/************************************************************************/</font> 00752 <a name="l00763"></a><a class="code" href="class_GDALDataset.html#a14">00763</a> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_GDALDataset.html#a14">GDALDataset::GetGCPProjection</a>()<font class="keyword"></font> 00764 <font class="keyword"></font> 00765 <font class="keyword"></font>{ 00766 <font class="keywordflow">return</font> <font class="stringliteral">""</font>; 00767 } 00768 00769 <font class="comment">/************************************************************************/</font> 00770 <font class="comment">/* GDALGetGCPProjection() */</font> 00771 <font class="comment">/************************************************************************/</font> 00772 00773 <font class="keyword">const</font> <font class="keywordtype">char</font> *GDALGetGCPProjection( GDALDatasetH hDS )<font class="keyword"></font> 00774 <font class="keyword"></font> 00775 <font class="keyword"></font>{ 00776 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetGCPProjection(); 00777 } 00778 00779 <font class="comment">/************************************************************************/</font> 00780 <font class="comment">/* GetGCPs() */</font> 00781 <font class="comment">/************************************************************************/</font> 00782 <a name="l00792"></a><a class="code" href="class_GDALDataset.html#a15">00792</a> <font class="keyword">const</font> <a class="code" href="struct_GDAL_GCP.html">GDAL_GCP</a> *<a class="code" href="class_GDALDataset.html#a15">GDALDataset::GetGCPs</a>()<font class="keyword"></font> 00793 <font class="keyword"></font> 00794 <font class="keyword"></font>{ 00795 <font class="keywordflow">return</font> NULL; 00796 } 00797 00798 <font class="comment">/************************************************************************/</font> 00799 <font class="comment">/* GDALGetGCPs() */</font> 00800 <font class="comment">/************************************************************************/</font> 00801 00802 <font class="keyword">const</font> <a class="code" href="struct_GDAL_GCP.html">GDAL_GCP</a> *GDALGetGCPs( GDALDatasetH hDS )<font class="keyword"></font> 00803 <font class="keyword"></font> 00804 <font class="keyword"></font>{ 00805 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->GetGCPs(); 00806 } 00807 00808 00809 <font class="comment">/************************************************************************/</font> 00810 <font class="comment">/* SetGCPs() */</font> 00811 <font class="comment">/************************************************************************/</font> 00812 <a name="l00838"></a><a class="code" href="class_GDALDataset.html#a16">00838</a> CPLErr <a class="code" href="class_GDALDataset.html#a16">GDALDataset::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, 00839 <font class="keyword">const</font> <font class="keywordtype">char</font> *pszGCPProjection )<font class="keyword"></font> 00840 <font class="keyword"></font> 00841 <font class="keyword"></font>{ 00842 <font class="keywordflow">return</font> CE_Failure; 00843 } 00844 00845 <font class="comment">/************************************************************************/</font> 00846 <font class="comment">/* GDALSetGCPs() */</font> 00847 <font class="comment">/************************************************************************/</font> 00848 00849 CPLErr GDALSetGCPs( GDALDatasetH hDS, <font class="keywordtype">int</font> nGCPCount, 00850 <font class="keyword">const</font> <a class="code" href="struct_GDAL_GCP.html">GDAL_GCP</a> *pasGCPList, 00851 <font class="keyword">const</font> <font class="keywordtype">char</font> *pszGCPProjection )<font class="keyword"></font> 00852 <font class="keyword"></font> 00853 <font class="keyword"></font>{ 00854 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDS)->SetGCPs( nGCPCount, pasGCPList, 00855 pszGCPProjection ); 00856 } 00857 00858 <font class="comment">/************************************************************************/</font> 00859 <font class="comment">/* BuildOverviews() */</font> 00860 <font class="comment">/************************************************************************/</font> 00861 <a name="l00890"></a><a class="code" href="class_GDALDataset.html#a20">00890</a> CPLErr <a class="code" href="class_GDALDataset.html#a20">GDALDataset::BuildOverviews</a>( <font class="keyword">const</font> <font class="keywordtype">char</font> *pszResampling, 00891 <font class="keywordtype">int</font> nOverviews, <font class="keywordtype">int</font> *panOverviewList, 00892 <font class="keywordtype">int</font> nListBands, <font class="keywordtype">int</font> *panBandList, 00893 GDALProgressFunc pfnProgress, 00894 <font class="keywordtype">void</font> * pProgressData )<font class="keyword"></font> 00895 <font class="keyword"> </font> 00896 <font class="keyword"></font>{ 00897 CPLErr eErr; 00898 <font class="keywordtype">int</font> *panAllBandList = NULL; 00899 00900 <font class="keywordflow">if</font>( nListBands == 0 ) 00901 { 00902 nListBands = <a class="code" href="class_GDALDataset.html#a3">GetRasterCount</a>(); 00903 panAllBandList = (<font class="keywordtype">int</font> *) <a class="code" href="cpl_conv_h.html#a3">CPLMalloc</a>(<font class="keyword">sizeof</font>(<font class="keywordtype">int</font>) * nListBands); 00904 <font class="keywordflow">for</font>( <font class="keywordtype">int</font> i = 0; i < nListBands; i++ ) 00905 panAllBandList[i] = i+1; 00906 00907 panBandList = panAllBandList; 00908 } 00909 00910 <font class="keywordflow">if</font>( pfnProgress == NULL ) 00911 pfnProgress = GDALDummyProgress; 00912 00913 eErr = IBuildOverviews( pszResampling, nOverviews, panOverviewList, 00914 nListBands, panBandList, pfnProgress, pProgressData ); 00915 00916 <font class="keywordflow">if</font>( panAllBandList != NULL ) 00917 CPLFree( panAllBandList ); 00918 00919 <font class="keywordflow">return</font> eErr; 00920 } 00921 00922 <font class="comment">/************************************************************************/</font> 00923 <font class="comment">/* GDALBuildOverviews() */</font> 00924 <font class="comment">/************************************************************************/</font> 00925 00926 CPLErr GDALBuildOverviews( GDALDatasetH hDataset, 00927 <font class="keyword">const</font> <font class="keywordtype">char</font> *pszResampling, 00928 <font class="keywordtype">int</font> nOverviews, <font class="keywordtype">int</font> *panOverviewList, 00929 <font class="keywordtype">int</font> nListBands, <font class="keywordtype">int</font> *panBandList, 00930 GDALProgressFunc pfnProgress, 00931 <font class="keywordtype">void</font> * pProgressData )<font class="keyword"></font> 00932 <font class="keyword"></font> 00933 <font class="keyword"></font>{ 00934 <font class="keywordflow">return</font> ((<a class="code" href="class_GDALDataset.html">GDALDataset</a> *) hDataset)->BuildOverviews( 00935 pszResampling, nOverviews, panOverviewList, nListBands, panBandList, 00936 pfnProgress, pProgressData ); 00937 } 00938 00939 <font class="comment">/************************************************************************/</font> 00940 <font class="comment">/* IBuildOverviews() */</font> 00941 <font class="comment">/* */</font> 00942 <font class="comment">/* Default implementation. */</font> 00943 <font class="comment">/************************************************************************/</font> 00944 00945 CPLErr GDALDataset::IBuildOverviews( <font class="keyword">const</font> <font class="keywordtype">char</font> *pszResampling, 00946 <font class="keywordtype">int</font> nOverviews, <font class="keywordtype">int</font> *panOverviewList, 00947 <font class="keywordtype">int</font> nListBands, <font class="keywordtype">int</font> *panBandList, 00948 GDALProgressFunc pfnProgress, 00949 <font class="keywordtype">void</font> * pProgressData )<font class="keyword"></font> 00950 <font class="keyword"> </font> 00951 <font class="keyword"></font>{ 00952 <font class="keywordflow">if</font>( pfnProgress == NULL ) 00953 pfnProgress = GDALDummyProgress; 00954 00955 <font class="keywordflow">if</font>( oOvManager.IsInitialized() ) 00956 <font class="keywordflow">return</font> oOvManager.BuildOverviews( NULL, pszResampling, 00957 nOverviews, panOverviewList, 00958 nListBands, panBandList, 00959 pfnProgress, pProgressData ); 00960 <font class="keywordflow">else</font> 00961 { 00962 <a class="code" href="cpl_error_h.html#a17">CPLError</a>( CE_Failure, CPLE_NotSupported, 00963 <font class="stringliteral">"BuildOverviews() not supported for this dataset."</font> ); 00964 00965 <font class="keywordflow">return</font>( CE_Failure ); 00966 } 00967 } 00968 </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>