32 #ifndef GDAL_ALG_PRIV_H_INCLUDED
33 #define GDAL_ALG_PRIV_H_INCLUDED
43 typedef enum { GBV_UserBurnValue = 0, GBV_Z = 1, GBV_M = 2
55 unsigned char * pabyChunkBuf;
63 const double *padfBurnValue;
64 GDALBurnValueSrc eBurnValueSource;
65 GDALRasterMergeAlg eMergeAlg;
79 typedef void (*llScanlineFunc)(
void *, int, int, int, double );
80 typedef void (*llPointFunc)(
void *, int, int, double );
82 void GDALdllImagePoint(
int nRasterXSize,
int nRasterYSize,
83 int nPartCount,
const int *panPartSize,
84 const double *padfX,
const double *padfY,
85 const double *padfVariant,
86 llPointFunc pfnPointFunc,
void *pCBData );
88 void GDALdllImageLine(
int nRasterXSize,
int nRasterYSize,
89 int nPartCount,
const int *panPartSize,
90 const double *padfX,
const double *padfY,
91 const double *padfVariant,
92 llPointFunc pfnPointFunc,
void *pCBData );
94 void GDALdllImageLineAllTouched(
int nRasterXSize,
int nRasterYSize,
95 int nPartCount,
const int *panPartSize,
96 const double *padfX,
const double *padfY,
97 const double *padfVariant,
98 llPointFunc pfnPointFunc,
void *pCBData,
99 int bAvoidBurningSamePoints );
101 void GDALdllImageFilledPolygon(
int nRasterXSize,
int nRasterYSize,
102 int nPartCount,
const int *panPartSize,
103 const double *padfX,
const double *padfY,
104 const double *padfVariant,
105 llScanlineFunc pfnScanlineFunc,
void *pCBData );
113 #define GP_NODATA_MARKER -51502112
115 template<
class DataType,
class EqualityTest>
class GDALRasterPolygonEnumeratorT
119 void MergePolygon(
int nSrcId,
int nDstId );
120 int NewPolygon( DataType nValue );
126 GInt32 *panPolyIdMap =
nullptr;
127 DataType *panPolyValue =
nullptr;
129 int nNextPolygonId = 0;
132 int nConnectedness = 0;
135 explicit GDALRasterPolygonEnumeratorT(
int nConnectedness=4 );
136 ~GDALRasterPolygonEnumeratorT();
138 void ProcessLine( DataType *panLastLineVal, DataType *panThisLineVal,
142 void CompleteMerges();
147 struct IntEqualityTest
149 bool operator()(
GInt32 a,
GInt32 b)
const {
return a == b; }
152 typedef GDALRasterPolygonEnumeratorT<GInt32, IntEqualityTest> GDALRasterPolygonEnumerator;
154 typedef void* (*GDALTransformDeserializeFunc)(
CPLXMLNode *psTree );
156 void CPL_DLL *GDALRegisterTransformDeserializer(
const char* pszTransformName,
158 GDALTransformDeserializeFunc pfnDeserializeFunc);
159 void CPL_DLL GDALUnregisterTransformDeserializer(
void* pData);
161 void GDALCleanupTransformDeserializerMutex();
165 void* GDALCreateTPSTransformerInt(
int nGCPCount,
const GDAL_GCP *pasGCPList,
166 int bReversed,
char** papszOptions );
168 void CPL_DLL * GDALCloneTransformer(
void *pTransformerArg );
170 void GDALRefreshGenImgProjTransformer(
void* hTransformArg);
171 void GDALRefreshApproxTransformer(
void* hTransformArg);
173 int GDALTransformLonLatToDestGenImgProjTransformer(
void* hTransformArg,
176 int GDALTransformLonLatToDestApproxTransformer(
void* hTransformArg,
181 GDALTransformerInfo sTI;
187 size_t nBackMapWidth;
188 size_t nBackMapHeight;
189 double adfBackMapGeoTransform[6];
218 double dfPIXEL_OFFSET;
220 double dfLINE_OFFSET;
223 char ** papszGeolocationInfo;
225 } GDALGeoLocTransformInfo;
233 template<
class T>
int
238 GByte* pabyGreenBand,
240 int (*pfnIncludePixel)(
int,
int,
void*),
245 GDALProgressFunc pfnProgress,
246 void * pProgressArg );
254 GInt16* pasDynamicColorMap,
256 GDALProgressFunc pfnProgress,
257 void * pProgressArg );
259 #define PRIME_FOR_65536 98317
264 #define MEDIAN_CUT_AND_DITHER_BUFFER_SIZE_65536 (6 * sizeof(int) * PRIME_FOR_65536)
278 GBool GDALFloatEquals(
float A,
float B);
280 struct FloatEqualityTest
282 bool operator()(
float a,
float b) {
return GDALFloatEquals(a,b) == TRUE; }
289 double& dfWestLongitudeDeg,
290 double& dfSouthLatitudeDeg,
291 double& dfEastLongitudeDeg,
292 double& dfNorthLatitudeDeg );
299 double& dfWestLongitudeDeg,
300 double& dfSouthLatitudeDeg,
301 double& dfEastLongitudeDeg,
302 double& dfNorthLatitudeDeg );
This class represents an OpenGIS Spatial Reference System, and contains methods for converting betwee...
Definition: ogr_spatialref.h:158
short GInt16
Int16 type.
Definition: cpl_port.h:211
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:331
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:329
int GBool
Type for boolean values (alias to int)
Definition: cpl_port.h:223
#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:955
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
int GInt32
Int32 type.
Definition: cpl_port.h:205
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition: gdal.h:286
GDALDataType
Definition: gdal.h:62
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition: gdal.h:268
void * GDALRasterBandH
Opaque type used for the C bindings of the C++ GDALRasterBand class.
Definition: gdal.h:271
void * GDALColorTableH
Opaque type used for the C bindings of the C++ GDALColorTable class.
Definition: gdal.h:277
Public (C callable) GDAL algorithm entry points, and definitions.
int(* GDALTransformerFunc)(void *pTransformerArg, int bDstToSrc, int nPointCount, double *x, double *y, double *z, int *panSuccess)
Definition: gdal_alg.h:114
Coordinate systems services.
Document node structure.
Definition: cpl_minixml.h:70
Ground Control Point.
Definition: gdal.h:711