From: Bborie Park Date: Wed, 6 Jul 2011 23:15:13 +0000 (+0000) Subject: Refactored how user-specified upperleft corner coordinates are handled X-Git-Tag: 2.0.0alpha1~1228 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=31ffec859ff54b580315e8b4fd13b4557725276d;p=postgis Refactored how user-specified upperleft corner coordinates are handled git-svn-id: http://svn.osgeo.org/postgis/trunk@7614 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/raster/rt_core/rt_api.c b/raster/rt_core/rt_api.c index f44a3b47b..6734d0b40 100644 --- a/raster/rt_core/rt_api.c +++ b/raster/rt_core/rt_api.c @@ -5947,6 +5947,7 @@ rt_raster rt_raster_gdal_warp( double dst_extent[4]; int width = 0; int height = 0; + int ul_user = 0; double min_x = 0; double min_y = 0; double max_x = 0; @@ -6091,12 +6092,14 @@ rt_raster rt_raster_gdal_warp( (fabs(*ul_x - 0.0) > FLT_EPSILON) ) { min_x = *ul_x; + ul_user = 1; } if ( (NULL != ul_y) && (fabs(*ul_y - 0.0) > FLT_EPSILON) ) { max_y = *ul_y; + ul_user = 1; } /* skew */ @@ -6131,10 +6134,7 @@ rt_raster rt_raster_gdal_warp( pix_y = fabs(dst_gt[5]); /* upper-left corner not provided by user */ - if ( - fabs(min_x - 0.0) < FLT_EPSILON && - fabs(max_y - 0.0) < FLT_EPSILON - ) { + if (!ul_user) { min_x = dst_gt[0]; max_y = dst_gt[3]; } @@ -6151,10 +6151,7 @@ rt_raster rt_raster_gdal_warp( dst_gt[5] = -1 * pix_y; } /* user-defined upper-left corner */ - else if ( - (fabs(min_x - 0.0) > FLT_EPSILON) || - (fabs(max_y - 0.0) > FLT_EPSILON) - ) { + else if (ul_user) { dst_gt[0] = min_x; dst_gt[3] = max_y; }