Advertisement
gmlscripts

ds_grid_get_bicubic

Aug 1st, 2014
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// ds_grid_get_bicubic(id,x,y)
  2. //
  3. //  Returns the bicubic interpolation of the sixteen grid
  4. //  cells surrounding the given fractional coordinate.
  5. //  Depends on spline4().
  6. //
  7. //      id          grid data structure, real
  8. //      x,y         coordinate pair, real
  9. //
  10. /// GMLscripts.com/license
  11. {
  12.     var ix,iy,fx,fy;
  13.     ix = floor(argument1);
  14.     iy = floor(argument2);
  15.     fx = argument1 - ix;
  16.     fy = argument2 - iy;
  17.    
  18.     return spline4(fx,
  19.         spline4(fy,
  20.             ds_grid_get(argument0,ix-1,iy-1),
  21.             ds_grid_get(argument0,ix-1,iy  ),
  22.             ds_grid_get(argument0,ix-1,iy+1),
  23.             ds_grid_get(argument0,ix-1,iy+2)),
  24.         spline4(fy,
  25.             ds_grid_get(argument0,ix  ,iy-1),
  26.             ds_grid_get(argument0,ix  ,iy  ),
  27.             ds_grid_get(argument0,ix  ,iy+1),
  28.             ds_grid_get(argument0,ix  ,iy+2)),
  29.         spline4(fy,
  30.             ds_grid_get(argument0,ix+1,iy-1),
  31.             ds_grid_get(argument0,ix+1,iy  ),
  32.             ds_grid_get(argument0,ix+1,iy+1),
  33.             ds_grid_get(argument0,ix+1,iy+2)),
  34.         spline4(fy,
  35.             ds_grid_get(argument0,ix+2,iy-1),
  36.             ds_grid_get(argument0,ix+2,iy  ),
  37.             ds_grid_get(argument0,ix+2,iy+1),
  38.             ds_grid_get(argument0,ix+2,iy+2)));
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement