Changeset 674

Show
Ignore:
Timestamp:
10/10/08 08:31:32 (1 month ago)
Author:
mdroe
Message:

Minor fix for cropping in p4 distortion.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pywcs/src/distortion.c

    r673 r674  
    7676get_dist( 
    7777    const distortion_lookup_t *lookup, 
    78     const unsigned int *coord /* [NAXES] */) { 
     78    const int *coord /* [NAXES] */) { 
    7979 
    8080  unsigned int cropped[NAXES]; 
     
    8282 
    8383  for (i = 0; i < NAXES; ++i) { 
    84     cropped[i] = coord[i] >= lookup->naxis[i] ? lookup->naxis[i] - 1 : coord[i]; 
     84    if (coord[i] >= lookup->naxis[i]) { 
     85      cropped[i] = lookup->naxis[i] - 1; 
     86    } else if (coord[i] < 0) { 
     87      cropped[i] = 0; 
     88    } else { 
     89      cropped[i] = coord[i]; 
     90    } 
    8591  } 
    8692 
     
    163169  double       dist[NAXES]; 
    164170  double       dist_floor[NAXES]; 
    165   unsigned int dist_ifloor[NAXES]; 
    166   unsigned int coord[NAXES]; 
     171  int          dist_ifloor[NAXES]; 
     172  int          coord[NAXES]; 
    167173  double       dist_weight[NAXES]; 
    168174  double       result; 
     
    176182  for (i = 0; i < NAXES; ++i) { 
    177183    dist_floor[i] = floor(dist[i]); 
    178     dist_ifloor[i] = (unsigned int)dist_floor[i]; 
     184    dist_ifloor[i] = (int)dist_floor[i]; 
    179185    dist_weight[i] = dist[i] - dist_floor[i]; 
    180186  } 
    181187 
    182188  result = 0.0; 
    183   for (k = 0; k < 2; ++k) { 
    184     for (l = 0; l < 2; ++l) { 
    185       coord[0] = dist_ifloor[0] + l; 
    186       coord[1] = dist_ifloor[1] + k; 
     189  for (k = 0; k < NAXES; ++k) { 
     190    for (l = 0; l < NAXES; ++l) { 
     191      coord[0] = dist_ifloor[0] + (int)l; 
     192      coord[1] = dist_ifloor[1] + (int)k; 
    187193      result += (double)get_dist(lookup, coord) * \ 
    188194        calculate_weight(dist_weight[0], l, dist_weight[1], k);