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 
123 
126 
129 
133 
136 
139 
142 
145 
148 
151 
154 
161 
168 
171  GDALProgressFunc pfnProgress;
172 
175 
178 
181 
186 
191 
193  GDALMaskFunc pfnSrcDensityMaskFunc;
196 
198  GDALMaskFunc pfnDstDensityMaskFunc;
201 
206 
208  CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg );
211 
213  CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg);
216 
218  void *hCutline;
219 
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:
327 
333  int nBands;
334 
345 
352 
363 
365  double dfXScale;
367  double dfYScale;
369  double dfXFilter;
371  double dfYFilter;
373  int nXRadius;
375  int nYRadius;
380 
382  int nSrcXOff;
384  int nSrcYOff;
385 
387  int nDstXOff;
389  int nDstYOff;
390 
395 
397  GDALProgressFunc pfnProgress;
399  void *pProgress;
400 
405 
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 */
GDALWarpKernel::nSrcYSize
int nSrcYSize
Height of the source image.
Definition: gdalwarper.h:338
GDALWarpKernel::nXRadius
int nXRadius
X size of window to filter.
Definition: gdalwarper.h:373
GDALWarpKernel::pafUnifiedSrcDensity
float * pafUnifiedSrcDensity
Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS.
Definition: gdalwarper.h:351
GRA_Med
@ GRA_Med
Definition: gdalwarper.h:61
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:240
GDALWarpKernel::dfXFilter
double dfXFilter
X size of filter kernel.
Definition: gdalwarper.h:369
GDALWarpOptions::padfSrcNoDataImag
double * padfSrcNoDataImag
Definition: gdalwarper.h:160
GDALWarpKernel::dfProgressScale
double dfProgressScale
Scale value for progress computation.
Definition: gdalwarper.h:404
GDALWarpOptions::pfnProgress
GDALProgressFunc pfnProgress
Definition: gdalwarper.h:171
GByte
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
GDALWarpKernel::nFiltInitX
int nFiltInitX
X filtering offset.
Definition: gdalwarper.h:377
GDALWarpOptions::pTransformerArg
void * pTransformerArg
Definition: gdalwarper.h:180
GDALWarpOptions::pPostWarpProcessorArg
void * pPostWarpProcessorArg
Unused.
Definition: gdalwarper.h:215
GDALWarpKernel::dfYFilter
double dfYFilter
Y size of filter kernel.
Definition: gdalwarper.h:371
GDALWarpOptions::padfDstNoDataImag
double * padfDstNoDataImag
Definition: gdalwarper.h:167
GDALWarpKernel::papabySrcImage
GByte ** papabySrcImage
Array of nBands source images of size nSrcXSize * nSrcYSize.
Definition: gdalwarper.h:344
GDALWarpKernel::eResample
GDALResampleAlg eResample
Resample algorithm.
Definition: gdalwarper.h:329
GDALWarpKernel::papszWarpOptions
char ** papszWarpOptions
Warp options.
Definition: gdalwarper.h:326
GDALWarpOptions::pfnDstDensityMaskFunc
GDALMaskFunc pfnDstDensityMaskFunc
Unused.
Definition: gdalwarper.h:198
GDALWarpKernel::nDstYOff
int nDstYOff
Y offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:389
GDALWarpKernel::dfYScale
double dfYScale
Y resampling scale, i.e.
Definition: gdalwarper.h:367
GRA_CubicSpline
@ GRA_CubicSpline
Definition: gdalwarper.h:54
GDALWarpOptions::pDstDensityMaskFuncArg
void * pDstDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:200
GDALWarpRegionToBuffer
CPLErr GDALWarpRegionToBuffer(GDALWarpOperationH, int, int, int, int, void *, GDALDataType, int, int, int, int)
Definition: gdalwarpoperation.cpp:2282
GDALWarpInitSrcNoDataReal
void GDALWarpInitSrcNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal with specified value.
Definition: gdalwarper.cpp:1361
GDALWarpOptions::pSrcDensityMaskFuncArg
void * pSrcDensityMaskFuncArg
Unused.
Definition: gdalwarper.h:195
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:104
cpl_minixml.h
GWKAOM_Min
@ GWKAOM_Min
Definition: gdalwarper.h:72
GDALDestroyWarpOptions
void GDALDestroyWarpOptions(GDALWarpOptions *)
Destroy a warp options structure.
Definition: gdalwarper.cpp:1241
GDALWarpOptions::nBandCount
int nBandCount
Definition: gdalwarper.h:141
GDALWarpKernel::nSrcYOff
int nSrcYOff
Y offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:384
GDALCreateWarpedVRT
GDALDatasetH GDALCreateWarpedVRT(GDALDatasetH hSrcDS, int nPixels, int nLines, double *padfGeoTransform, GDALWarpOptions *psOptions)
Create virtual warped dataset.
Definition: vrtwarped.cpp:274
GDALWarpKernel
This class represents the lowest level of abstraction of warping.
Definition: gdalwarper.h:320
GWKAOM_Average
@ GWKAOM_Average
Definition: gdalwarper.h:68
GWKAverageOrModeAlg
GWKAverageOrModeAlg
Definition: gdalwarper.h:67
GDALDataType
GDALDataType
Definition: gdal.h:60
GRA_Q1
@ GRA_Q1
Definition: gdalwarper.h:62
GDALWarpKernel::nYRadius
int nYRadius
Y size of window to filter.
Definition: gdalwarper.h:375
CPLXMLNode
Document node structure.
Definition: cpl_minixml.h:66
GDALWarpOperation
Definition: gdalwarper.h:442
GDALWarpKernel::dfXScale
double dfXScale
X resampling scale, i.e.
Definition: gdalwarper.h:365
GDALWarpKernel::dfSrcXExtraSize
double dfSrcXExtraSize
Extra pixels (included in nSrcXSize) reserved for filter window.
Definition: gdalwarper.h:340
GDALWarpInitDstNoDataReal
void GDALWarpInitDstNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1341
GDALWarpOptions::papszWarpOptions
char ** papszWarpOptions
Definition: gdalwarper.h:122
GDALWarpKernel::pafDstDensity
float * pafDstDensity
Destination density of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:362
GDALWarpInitDstNoDataImag
void GDALWarpInitDstNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfDstNoDataImag with specified value.
Definition: gdalwarper.cpp:1399
GDALWarpOptions::pfnSrcValidityMaskFunc
GDALMaskFunc pfnSrcValidityMaskFunc
Unused.
Definition: gdalwarper.h:188
GDALWarpOptions::pProgressArg
void * pProgressArg
Definition: gdalwarper.h:174
GRA_Lanczos
@ GRA_Lanczos
Definition: gdalwarper.h:55
GDALWarpKernel::nFiltInitY
int nFiltInitY
Y filtering offset.
Definition: gdalwarper.h:379
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
GRA_Average
@ GRA_Average
Definition: gdalwarper.h:56
GDALWarpOptions
Warp control options for use with GDALWarpOperation::Initialize()
Definition: gdalwarper.h:120
GWKAOM_Max
@ GWKAOM_Max
Definition: gdalwarper.h:71
GDALWarpOptions::nSrcAlphaBand
int nSrcAlphaBand
Definition: gdalwarper.h:150
GDALDestroyWarpOperation
void GDALDestroyWarpOperation(GDALWarpOperationH)
Definition: gdalwarpoperation.cpp:797
GDALWarpKernel::pProgress
void * pProgress
User data provided to pfnProgress.
Definition: gdalwarper.h:399
GDALWarpOptions::panSrcBands
int * panSrcBands
Definition: gdalwarper.h:144
GDALWarpKernel::dfSrcYExtraSize
double dfSrcYExtraSize
Extra pixels (included in nSrcYSize) reserved for filter window.
Definition: gdalwarper.h:342
GDALWarpKernel::pfnTransformer
GDALTransformerFunc pfnTransformer
Pixel transformation function.
Definition: gdalwarper.h:392
GDALWarpOptions::hSrcDS
GDALDatasetH hSrcDS
Definition: gdalwarper.h:135
GRA_Cubic
@ GRA_Cubic
Definition: gdalwarper.h:53
GDALCloneWarpOptions
GDALWarpOptions * GDALCloneWarpOptions(const GDALWarpOptions *)
Clone a warp options structure.
Definition: gdalwarper.cpp:1282
GDALWarpOptions::papSrcPerBandValidityMaskFuncArg
void ** papSrcPerBandValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:185
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:97
GDALWarpKernel::pTransformerArg
void * pTransformerArg
User data provided to pfnTransformer.
Definition: gdalwarper.h:394
GRA_Min
@ GRA_Min
Definition: gdalwarper.h:60
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
GDALWarpOptions::padfDstNoDataReal
double * padfDstNoDataReal
Definition: gdalwarper.h:163
GDALWarpKernel::nBands
int nBands
Number of input and output bands (excluding alpha bands)
Definition: gdalwarper.h:333
GDALWarpOptions::panDstBands
int * panDstBands
Definition: gdalwarper.h:147
GDALWarpKernel::panUnifiedSrcValid
GUInt32 * panUnifiedSrcValid
Unified validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:349
GDALWarpOperationH
void * GDALWarpOperationH
Opaque type representing a GDALWarpOperation object.
Definition: gdalwarper.h:535
GDALWarpRegion
CPLErr GDALWarpRegion(GDALWarpOperationH, int, int, int, int, int, int, int, int)
Definition: gdalwarpoperation.cpp:1659
GWKAOM_Fmode
@ GWKAOM_Fmode
Definition: gdalwarper.h:69
GDALWarpOptions::papfnSrcPerBandValidityMaskFunc
GDALMaskFunc * papfnSrcPerBandValidityMaskFunc
Unused.
Definition: gdalwarper.h:183
GDALResampleAlg
GDALResampleAlg
Definition: gdalwarper.h:50
GRA_Bilinear
@ GRA_Bilinear
Definition: gdalwarper.h:52
GRA_Max
@ GRA_Max
Definition: gdalwarper.h:59
GDALWarpOptions::hDstDS
GDALDatasetH hDstDS
Definition: gdalwarper.h:138
gdal_alg.h
GDALTransformerFunc
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:114
GDALWarpInitSrcNoDataImag
void GDALWarpInitSrcNoDataImag(GDALWarpOptions *, double dNoDataImag)
Initialize padfSrcNoDataImag with specified value.
Definition: gdalwarper.cpp:1418
GDALWarpOptions::pDstValidityMaskFuncArg
void * pDstValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:205
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:1529
GDALWarpKernel::padfDstNoDataReal
double * padfDstNoDataReal
Array of nBands value for destination nodata.
Definition: gdalwarper.h:407
GDALChunkAndWarpImage
CPLErr GDALChunkAndWarpImage(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:979
GDALWarpOptions::pfnSrcDensityMaskFunc
GDALMaskFunc pfnSrcDensityMaskFunc
Unused.
Definition: gdalwarper.h:193
GDALWarpOptions::pPreWarpProcessorArg
void * pPreWarpProcessorArg
Unused.
Definition: gdalwarper.h:210
GDALWarpKernel::papabyDstImage
GByte ** papabyDstImage
Array of nBands destination images of size nDstXSize * nDstYSize.
Definition: gdalwarper.h:358
GDALWarpOptions::dfCutlineBlendDist
double dfCutlineBlendDist
Definition: gdalwarper.h:221
GDALWarpOptions::hCutline
void * hCutline
Definition: gdalwarper.h:218
GDALWarpKernel::eWorkingDataType
GDALDataType eWorkingDataType
Working data type.
Definition: gdalwarper.h:331
GRA_Mode
@ GRA_Mode
Definition: gdalwarper.h:57
GDALWarpOptions::padfSrcNoDataReal
double * padfSrcNoDataReal
Definition: gdalwarper.h:156
GDALWarpOptions::eResampleAlg
GDALResampleAlg eResampleAlg
Definition: gdalwarper.h:128
GDALChunkAndWarpMulti
CPLErr GDALChunkAndWarpMulti(GDALWarpOperationH, int, int, int, int)
Definition: gdalwarpoperation.cpp:1214
CPLErr
CPLErr
Error category.
Definition: cpl_error.h:52
GDALWarpOptions::nDstAlphaBand
int nDstAlphaBand
Definition: gdalwarper.h:153
GDALWarpOptions::pfnTransformer
GDALTransformerFunc pfnTransformer
Definition: gdalwarper.h:177
GDALWarpKernel::nSrcXOff
int nSrcXOff
X offset of the source buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:382
GWKAOM_Quant
@ GWKAOM_Quant
Definition: gdalwarper.h:73
GDALWarpKernel::nDstXOff
int nDstXOff
X offset of the destination buffer regarding the top-left corner of the image.
Definition: gdalwarper.h:387
GDALWarpKernel::nDstYSize
int nDstYSize
Height of the destination image.
Definition: gdalwarper.h:356
GDALWarpInitNoDataReal
void GDALWarpInitNoDataReal(GDALWarpOptions *, double dNoDataReal)
Initialize padfSrcNoDataReal and padfDstNoDataReal with specified value.
Definition: gdalwarper.cpp:1381
GDALWarpOptions::pfnDstValidityMaskFunc
GDALMaskFunc pfnDstValidityMaskFunc
Unused.
Definition: gdalwarper.h:203
GDALCreateWarpOperation
GDALWarpOperationH GDALCreateWarpOperation(const GDALWarpOptions *)
Definition: gdalwarpoperation.cpp:776
GRA_NearestNeighbour
@ GRA_NearestNeighbour
Definition: gdalwarper.h:51
GDALWarpKernel::nDstXSize
int nDstXSize
Width of the destination image.
Definition: gdalwarper.h:354
GWKAOM_Imode
@ GWKAOM_Imode
Definition: gdalwarper.h:70
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:1438
GDALWarpKernel::panDstValid
GUInt32 * panDstValid
Validify mask of size (nDstXSize * nDstYSize) / 8.
Definition: gdalwarper.h:360
GDALInitializeWarpedVRT
CPLErr GDALInitializeWarpedVRT(GDALDatasetH hDS, GDALWarpOptions *psWO)
Set warp info on virtual warped dataset.
Definition: vrtwarped.cpp:1174
GDALWarpOptions::pSrcValidityMaskFuncArg
void * pSrcValidityMaskFuncArg
Unused.
Definition: gdalwarper.h:190
GDALWarpOptions::dfWarpMemoryLimit
double dfWarpMemoryLimit
Definition: gdalwarper.h:125
GDALWarpKernel::nSrcXSize
int nSrcXSize
Width of the source image.
Definition: gdalwarper.h:336
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:997
GDALWarpKernel::pfnProgress
GDALProgressFunc pfnProgress
Progress function.
Definition: gdalwarper.h:397
GDALCreateWarpOptions
GDALWarpOptions * GDALCreateWarpOptions(void)
Create a warp options structure.
Definition: gdalwarper.cpp:1222
GDALDatasetH
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:255
GDALWarpOptions::eWorkingDataType
GDALDataType eWorkingDataType
Definition: gdalwarper.h:132
GRA_Q3
@ GRA_Q3
Definition: gdalwarper.h:63
GDALWarpKernel::papanBandSrcValid
GUInt32 ** papanBandSrcValid
Array of nBands validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8.
Definition: gdalwarper.h:347
GDALWarpKernel::dfProgressBase
double dfProgressBase
Base/offset value for progress computation.
Definition: gdalwarper.h:402
GDALDriverH
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition: gdal.h:261
GUInt32
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:207

Generated for GDAL by doxygen 1.8.17.