Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > d67485fb8ce60f8952179bbde3b5d022 > files > 100

libgdal0-devel-1.1.7-2mdk.i586.rpm

<!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> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </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 &lt; nBands &amp;&amp; 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 &lt; nBands; i++ )
00189     {
00190         <font class="keywordflow">if</font>( papoBands[i] != NULL )
00191             papoBands[i]-&gt;<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 &gt; 0 &amp;&amp; nYSize &gt; 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)-&gt;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 &lt; 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 &lt; 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-&gt;nBand = nNewBand;
00296     poBand-&gt;poDS = <font class="keyword">this</font>;
00297     poBand-&gt;nRasterXSize = nRasterXSize;
00298     poBand-&gt;nRasterYSize = nRasterYSize;
00299     poBand-&gt;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)-&gt;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)-&gt;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 &lt; 1 || nBandId &gt; 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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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)-&gt;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 &lt; 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)-&gt;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>,
 &copy;&nbsp;1997-2000</small></address>
</body>
</html>