32 #include "gdal_alg_priv.h"
40 template<
class Accessors>
struct GDALGeoLoc
42 static bool LoadGeolocFinish( GDALGeoLocTransformInfo *psTransform );
44 static bool GenerateBackMap( GDALGeoLocTransformInfo *psTransform );
46 static bool PixelLineToXY(
const GDALGeoLocTransformInfo *psTransform,
47 const int nGeoLocPixel,
48 const int nGeoLocLine,
52 static bool PixelLineToXY(
const GDALGeoLocTransformInfo *psTransform,
53 const double dfGeoLocPixel,
54 const double dfGeoLocLine,
58 static bool ExtractSquare(
const GDALGeoLocTransformInfo *psTransform,
60 double& dfX_0_0,
double& dfY_0_0,
61 double& dfX_1_0,
double& dfY_1_0,
62 double& dfX_0_1,
double& dfY_0_1,
63 double& dfX_1_1,
double& dfY_1_1);
65 static int Transform(
void *pTransformArg,
68 double *padfX,
double *padfY,
75 bool GDALGeoLocExtractSquare(
const GDALGeoLocTransformInfo *psTransform,
77 double& dfX_0_0,
double& dfY_0_0,
78 double& dfX_1_0,
double& dfY_1_0,
79 double& dfX_0_1,
double& dfY_0_1,
80 double& dfX_1_1,
double& dfY_1_1);
82 void GDALInverseBilinearInterpolation(
const double x,
103 static double ShiftGeoX(
const GDALGeoLocTransformInfo *psTransform,
107 if( !psTransform->bGeographicSRSWithMinus180Plus180LongRange )
112 if( dfXRef < -170 && dfX > 170 )
114 if( dfXRef > 170 && dfX < -170 )