GDAL
gdalwarper.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: gdalwarper.h d16ecc80707f9c7097a11bfe47c8403bb9df310f 2018-07-27 20:14:48 -0700 piyush.agram@jpl.nasa.gov $
3  *
4  * Project: GDAL High Performance Warper
5  * Purpose: Prototypes, and definitions for warping related work.
6  * Author: Frank Warmerdam, warmerdam@pobox.com
7  *
8  ******************************************************************************
9  * Copyright (c) 2003, Frank Warmerdam
10  * Copyright (c) 2009-2012, Even Rouault <even dot rouault at mines-paris dot org>
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a
13  * copy of this software and associated documentation files (the "Software"),
14  * to deal in the Software without restriction, including without limitation
15  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16  * and/or sell copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be included
20  * in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
28  * DEALINGS IN THE SOFTWARE.
29  ****************************************************************************/
30 
31 #ifndef GDALWARPER_H_INCLUDED
32 #define GDALWARPER_H_INCLUDED
33 
42 #include "gdal_alg.h"
43 #include "cpl_minixml.h"
44 #include "cpl_multiproc.h"
45 
47 
48 /* Note: values are selected to be consistent with GDALRIOResampleAlg of gcore/gdal.h */
58  /* GRA_Gauss=7 reserved. */ GRA_Max=8, GRA_Min=9, GRA_Med=10, GRA_Q1=11, GRA_Q3=12
65 
75 
77 typedef int
78 (*GDALMaskFunc)( void *pMaskFuncArg,
79  int nBandCount, GDALDataType eType,
80  int nXOff, int nYOff,
81  int nXSize, int nYSize,
82  GByte **papabyImageData,
83  int bMaskIsFloat, void *pMask );
84 
85 CPLErr CPL_DLL
86 GDALWarpNoDataMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
87  int nXOff, int nYOff, int nXSize, int nYSize,
88  GByte **papabyImageData, int bMaskIsFloat,
89  void *pValidityMask, int* pbOutAllValid );
90 
91 CPLErr CPL_DLL
92 GDALWarpDstAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
93  int nXOff, int nYOff, int nXSize, int nYSize,
94  GByte ** /*ppImageData */,
95  int bMaskIsFloat, void *pValidityMask );
96 CPLErr CPL_DLL
97 GDALWarpSrcAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
98  int nXOff, int nYOff, int nXSize, int nYSize,
99  GByte ** /*ppImageData */,
100  int bMaskIsFloat, void *pValidityMask, int* pbOutAllOpaque );
101 
102 CPLErr CPL_DLL
103 GDALWarpSrcMaskMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
104  int nXOff, int nYOff, int nXSize, int nYSize,
105  GByte ** /*ppImageData */,
106  int bMaskIsFloat, void *pValidityMask );
107 
108 CPLErr CPL_DLL
109 GDALWarpCutlineMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType,
110  int nXOff, int nYOff, int nXSize, int nYSize,
111  GByte ** /* ppImageData */,
112  int bMaskIsFloat, void *pValidityMask );
115 /************************************************************************/
116 /* GDALWarpOptions */
117 /************************************************************************/
118 
120 typedef struct {
121 
122  char **papszWarpOptions;
123 
125  double dfWarpMemoryLimit;
126 
128  GDALResampleAlg eResampleAlg;
129 
132  GDALDataType eWorkingDataType;
133 
135  GDALDatasetH hSrcDS;
136 
138  GDALDatasetH hDstDS;
139 
141  int nBandCount;
142 
144  int *panSrcBands;
145 
147  int *panDstBands;
148 
150  int nSrcAlphaBand;
151 
153  int nDstAlphaBand;
154 
156  double *padfSrcNoDataReal;
160  double *padfSrcNoDataImag;
161 
163  double *padfDstNoDataReal;
167  double *padfDstNoDataImag;
168 
171  GDALProgressFunc pfnProgress;
172 
174  void *pProgressArg;
175 
177  GDALTransformerFunc pfnTransformer;
178 
180  void *pTransformerArg;
181 
183  GDALMaskFunc *papfnSrcPerBandValidityMaskFunc;
185  void **papSrcPerBandValidityMaskFuncArg;
186 
188  GDALMaskFunc pfnSrcValidityMaskFunc;
190  void *pSrcValidityMaskFuncArg;
191 
193  GDALMaskFunc pfnSrcDensityMaskFunc;
195  void *pSrcDensityMaskFuncArg;
196 
198  GDALMaskFunc pfnDstDensityMaskFunc;
200  void *pDstDensityMaskFuncArg;
201 
203  GDALMaskFunc pfnDstValidityMaskFunc;
205  void *pDstValidityMaskFuncArg;
206 
208  CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
210  void *pPreWarpProcessorArg;
211 
213  CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
215  void *pPostWarpProcessorArg;
216 
218  void *hCutline;
219 
221  double dfCutlineBlendDist;
222 
224 
225 GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void);
226 void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * );
227 GDALWarpOptions CPL_DLL * CPL_STDCALL
229 
230 void CPL_DLL CPL_STDCALL
231 GDALWarpInitDstNoDataReal( GDALWarpOptions *, double dNoDataReal );
232 
233 void CPL_DLL CPL_STDCALL
234 GDALWarpInitSrcNoDataReal( GDALWarpOptions *, double dNoDataReal );
235 
236 void CPL_DLL CPL_STDCALL
237 GDALWarpInitNoDataReal( GDALWarpOptions *, double dNoDataReal );
238 
239 void CPL_DLL CPL_STDCALL
240 GDALWarpInitDstNoDataImag( GDALWarpOptions *, double dNoDataImag );
241 
242 void CPL_DLL CPL_STDCALL
243 GDALWarpInitSrcNoDataImag( GDALWarpOptions *, double dNoDataImag );
244 
245 void CPL_DLL CPL_STDCALL
247 
248 void CPL_DLL CPL_STDCALL
250 
252 CPLXMLNode CPL_DLL * CPL_STDCALL
253  GDALSerializeWarpOptions( const GDALWarpOptions * );
254 GDALWarpOptions CPL_DLL * CPL_STDCALL
255  GDALDeserializeWarpOptions( CPLXMLNode * );
258 /************************************************************************/
259 /* GDALReprojectImage() */
260 /************************************************************************/
261 
262 CPLErr CPL_DLL CPL_STDCALL
263 GDALReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
264  GDALDatasetH hDstDS, const char *pszDstWKT,
265  GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
266  double dfMaxError,
267  GDALProgressFunc pfnProgress, void *pProgressArg,
268  GDALWarpOptions *psOptions );
269 
270 CPLErr CPL_DLL CPL_STDCALL
271 GDALCreateAndReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
272  const char *pszDstFilename, const char *pszDstWKT,
273  GDALDriverH hDstDriver, char **papszCreateOptions,
274  GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit,
275  double dfMaxError,
276  GDALProgressFunc pfnProgress, void *pProgressArg,
277  GDALWarpOptions *psOptions );
278 
279 /************************************************************************/
280 /* VRTWarpedDataset */
281 /************************************************************************/
282 
283 GDALDatasetH CPL_DLL CPL_STDCALL
285  const char *pszSrcWKT, const char *pszDstWKT,
286  GDALResampleAlg eResampleAlg,
287  double dfMaxError, const GDALWarpOptions *psOptions );
288 
289 GDALDatasetH CPL_DLL CPL_STDCALL
291  int nPixels, int nLines, double *padfGeoTransform,
292  GDALWarpOptions *psOptions );
293 
294 CPLErr CPL_DLL CPL_STDCALL
296  GDALWarpOptions *psWO );
297 
298 CPL_C_END
299 
300 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
301 
302 /************************************************************************/
303 /* GDALWarpKernel */
304 /* */
305 
311 #define WARP_EXTRA_ELTS 1
312 
320 class CPL_DLL GDALWarpKernel
321 {
323 
324 public:
326  char **papszWarpOptions;
327 
329  GDALResampleAlg eResample;
331  GDALDataType eWorkingDataType;
333  int nBands;
334 
336  int nSrcXSize;
338  int nSrcYSize;
340  double dfSrcXExtraSize;
342  double dfSrcYExtraSize;
344  GByte **papabySrcImage;
345 
347  GUInt32 **papanBandSrcValid;
349  GUInt32 *panUnifiedSrcValid;
351  float *pafUnifiedSrcDensity;
352 
354  int nDstXSize;
356  int nDstYSize;
358  GByte **papabyDstImage;
360  GUInt32 *panDstValid;
362  float *pafDstDensity;
363 
365  double dfXScale;
367  double dfYScale;
369  double dfXFilter;
371  double dfYFilter;
373  int nXRadius;
375  int nYRadius;
377  int nFiltInitX;
379  int nFiltInitY;
380 
382  int nSrcXOff;
384  int nSrcYOff;
385 
387  int nDstXOff;
389  int nDstYOff;
390 
392  GDALTransformerFunc pfnTransformer;
394  void *pTransformerArg;
395 
397  GDALProgressFunc pfnProgress;
399  void *pProgress;
400 
402  double dfProgressBase;
404  double dfProgressScale;
405 
407  double *padfDstNoDataReal;
408 
411  void *psThreadData;
414  GDALWarpKernel();
415  virtual ~GDALWarpKernel();
416 
417  CPLErr Validate();
418  CPLErr PerformWarp();
419 };
420 
422 void* GWKThreadsCreate(char** papszWarpOptions,
423  GDALTransformerFunc pfnTransformer,
424  void* pTransformerArg);
425 void GWKThreadsEnd(void* psThreadDataIn);
428 /************************************************************************/
429 /* GDALWarpOperation() */
430 /* */
431 /* This object is application created, or created by a higher */
432 /* level convenience function. It is responsible for */
433 /* subdividing the operation into chunks, loading and saving */
434 /* imagery, and establishing the varios validity and density */
435 /* masks. Actual resampling is done by the GDALWarpKernel. */
436 /************************************************************************/
437 
439 typedef struct _GDALWarpChunk GDALWarpChunk;
442 class CPL_DLL GDALWarpOperation {
443 
445 
446 private:
447  GDALWarpOptions *psOptions;
448 
449  void WipeOptions();
450  int ValidateOptions();
451 
452  CPLErr ComputeSourceWindow( int nDstXOff, int nDstYOff,
453  int nDstXSize, int nDstYSize,
454  int *pnSrcXOff, int *pnSrcYOff,
455  int *pnSrcXSize, int *pnSrcYSize,
456  double *pdfSrcXExtraSize, double *pdfSrcYExtraSize,
457  double* pdfSrcFillRatio );
458 
459  void ComputeSourceWindowStartingFromSource(
460  int nDstXOff, int nDstYOff,
461  int nDstXSize, int nDstYSize,
462  double* padfSrcMinX, double* padfSrcMinY,
463  double* padfSrcMaxX, double* padfSrcMaxY);
464 
465  static CPLErr CreateKernelMask( GDALWarpKernel *, int iBand,
466  const char *pszType );
467 
468  CPLMutex *hIOMutex;
469  CPLMutex *hWarpMutex;
470 
471  int nChunkListCount;
472  int nChunkListMax;
473  GDALWarpChunk *pasChunkList;
474 
475  int bReportTimings;
476  unsigned long nLastTimeReported;
477 
478  void *psThreadData;
479 
480  void WipeChunkList();
481  CPLErr CollectChunkListInternal( int nDstXOff, int nDstYOff,
482  int nDstXSize, int nDstYSize );
483  void CollectChunkList( int nDstXOff, int nDstYOff,
484  int nDstXSize, int nDstYSize );
485  void ReportTiming( const char * );
486 
487 public:
489  virtual ~GDALWarpOperation();
490 
491  CPLErr Initialize( const GDALWarpOptions *psNewOptions );
492  void* CreateDestinationBuffer( int nDstXSize, int nDstYSize,
493  int *pbWasInitialized = nullptr );
494  static void DestroyDestinationBuffer(void* pDstBuffer);
495 
496  const GDALWarpOptions *GetOptions();
497 
498  CPLErr ChunkAndWarpImage( int nDstXOff, int nDstYOff,
499  int nDstXSize, int nDstYSize );
500  CPLErr ChunkAndWarpMulti( int nDstXOff, int nDstYOff,
501  int nDstXSize, int nDstYSize );
502  CPLErr WarpRegion( int nDstXOff, int nDstYOff,
503  int nDstXSize, int nDstYSize,
504  int nSrcXOff=0, int nSrcYOff=0,
505  int nSrcXSize=0, int nSrcYSize=0,
506  double dfProgressBase=0.0, double dfProgressScale=1.0);
507  CPLErr WarpRegion( int nDstXOff, int nDstYOff,
508  int nDstXSize, int nDstYSize,
509  int nSrcXOff, int nSrcYOff,
510  int nSrcXSize, int nSrcYSize,
511  double dfSrcXExtraSize, double dfSrcYExtraSize,
512  double dfProgressBase, double dfProgressScale);
513  CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
514  int nDstXSize, int nDstYSize,
515  void *pDataBuf,
516  GDALDataType eBufDataType,
517  int nSrcXOff=0, int nSrcYOff=0,
518  int nSrcXSize=0, int nSrcYSize=0,
519  double dfProgressBase=0.0, double dfProgressScale=1.0);
520  CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff,
521  int nDstXSize, int nDstYSize,
522  void *pDataBuf,
523  GDALDataType eBufDataType,
524  int nSrcXOff, int nSrcYOff,
525  int nSrcXSize, int nSrcYSize,
526  double dfSrcXExtraSize, double dfSrcYExtraSize,
527  double dfProgressBase, double dfProgressScale);
528 };
529 
530 #endif /* def __cplusplus */
531 
533 
535 typedef void * GDALWarpOperationH;
536 
539 CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int );
540 CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int );
542  int, int, int, int, int, int, int, int );
543 CPLErr CPL_DLL GDALWarpRegionToBuffer( GDALWarpOperationH, int, int, int, int,
544  void *, GDALDataType,
545  int, int, int, int );
546 
547 /************************************************************************/
548 /* Warping kernel functions */
549 /************************************************************************/
550 
552 int GWKGetFilterRadius(GDALResampleAlg eResampleAlg);
553 
554 typedef double (*FilterFuncType)(double dfX);
555 FilterFuncType GWKGetFilterFunc(GDALResampleAlg eResampleAlg);
556 
557 // TODO(schwehr): Can padfVals be a const pointer?
558 typedef double (*FilterFunc4ValuesType)(double* padfVals);
559 FilterFunc4ValuesType GWKGetFilterFunc4Values(GDALResampleAlg eResampleAlg);
562 CPL_C_END
563 
564 #endif /* ndef GDAL_ALG_H_INCLUDED */
GRA_Med
Definition: gdalwarper.h:60
GDALCreateAndReprojectImage
CPLErr GDALCreateAndReprojectImage(GDALDatasetH hSrcDS, const char *pszSrcWKT, const char *pszDstFilename, const char *pszDstWKT, GDALDriverH hDstDriver, char **papszCreateOptions, GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit, double dfMaxError, GDALProgressFunc pfnProgress, void *pProgressArg, GDALWarpOptions *psOptions)
Reproject an image and create the target reprojected image.
Definition: gdalwarper.cpp:239
GByte
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:214
GRA_CubicSpline
Definition: gdalwarper.h:53
GDALWarpRegionToBuffer
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2281
GDALWarpInitSrcNoDataReal
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1360
GDALAutoCreateWarpedVRT
GDALDatasetH GDALAutoCreateWarpedVRT(GDALDatasetH hSrcDS, const char *pszSrcWKT, const char *pszDstWKT, GDALResampleAlg eResampleAlg, double dfMaxError, const GDALWarpOptions *psOptions)
Create virtual warped dataset automatically.
Definition: vrtwarped.cpp:103
cpl_minixml.h
GWKAOM_Min
Definition: gdalwarper.h:71
GDALDestroyWarpOptions
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1240
GDALCreateWarpedVRT
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:273
GDALWarpKernel
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:319
GWKAOM_Average
Definition: gdalwarper.h:67
GWKAverageOrModeAlg
GWKAverageOrModeAlg
Definition: gdalwarper.h:66
GDALDataType
GDALDataType
Definition: gdal.h:59
GRA_Q1
Definition: gdalwarper.h:61
CPLXMLNode
Document node structure.
Definition: cpl_minixml.h:65
GDALWarpOperation
Definition: gdalwarper.h:441
GDALWarpInitDstNoDataReal
void GDALWarpInitDstNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1340
GDALWarpInitDstNoDataImag
void GDALWarpInitDstNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfDstNoDataImag with specified value.
Definition: gdalwarper.cpp:1398
GRA_Lanczos
Definition: gdalwarper.h:54
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:336
GRA_Average
Definition: gdalwarper.h:55
GDALWarpOptions
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:119
GWKAOM_Max
Definition: gdalwarper.h:70
GDALDestroyWarpOperation
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:796
GRA_Cubic
Definition: gdalwarper.h:52
GDALCloneWarpOptions
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1281
GDALReprojectImage
CPLErr GDALReprojectImage(GDALDatasetH hSrcDS, const char *pszSrcWKT, GDALDatasetH hDstDS, const char *pszDstWKT, GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit, double dfMaxError, GDALProgressFunc pfnProgress, void *pProgressArg, GDALWarpOptions *psOptions)
Reproject image.
Definition: gdalwarper.cpp:96
GRA_Min
Definition: gdalwarper.h:59
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:338
GDALWarpOperationH
void * GDALWarpOperationH
Opaque type representing a GDALWarpOperation object.
Definition: gdalwarper.h:534
GDALWarpRegion
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1658
GWKAOM_Fmode
Definition: gdalwarper.h:68
GDALResampleAlg
GDALResampleAlg
Definition: gdalwarper.h:49
GRA_Bilinear
Definition: gdalwarper.h:51
GRA_Max
Definition: gdalwarper.h:58
gdal_alg.h
GDALTransformerFunc
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:113
GDALWarpInitSrcNoDataImag
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1417
GDALWarpInitDefaultBandMapping
void GDALWarpInitDefaultBandMapping(GDALWarpOptions *, int nBandCount)
Init src and dst band mappings such that Bands[i] = i+1 for nBandCount Does nothing if psOptionsIn->n...
Definition: gdalwarper.cpp:1528
GDALChunkAndWarpImage
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:978
GRA_Mode
Definition: gdalwarper.h:56
GDALChunkAndWarpMulti
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1213
CPLErr
CPLErr
Error category.
Definition: cpl_error.h:51
GWKAOM_Quant
Definition: gdalwarper.h:72
GDALWarpInitNoDataReal
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1380
GDALCreateWarpOperation
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:775
GRA_NearestNeighbour
Definition: gdalwarper.h:50
GWKAOM_Imode
Definition: gdalwarper.h:69
GDALWarpResolveWorkingDataType
void GDALWarpResolveWorkingDataType(GDALWarpOptions *)
If the working data type is unknown, this method will determine a valid working data type to support ...
Definition: gdalwarper.cpp:1437
GDALInitializeWarpedVRT
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:1173
CPL_DISALLOW_COPY_ASSIGN
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition: cpl_port.h:995
GDALCreateWarpOptions
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1221
GDALDatasetH
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:254
GRA_Q3
Definition: gdalwarper.h:62
GDALDriverH
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:260
GUInt32
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:206

Generated for GDAL by doxygen 1.8.16.