function [blocked] = blocked_path(x, y, Station) z = double(Station.terrain(y,x))+3; height = Station.cellSite.height+double(Station.terrain(Station.cellSite.BSy,Station.cellSite.BSx)); BSx = double(Station.cellSite.BSx); BSy = double(Station.cellSite.BSy); delta_x = double(x-BSx); delta_y = double(y-BSy); delta_z = double(z-height); hor_distance = ((delta_x)^2+(delta_y)^2)^(0.5); x_incr = delta_x/hor_distance; y_incr = delta_y/hor_distance; z_incr = delta_z/hor_distance; x_curr = BSx; y_curr = BSy; blocked_height = height; while ((int16(x_curr) ~= x) || (int16(y_curr) ~= y)) x_curr = x_curr + x_incr; y_curr = y_curr + y_incr; blocked_height = blocked_height + z_incr; % [x_incr y_incr z_incr x_curr y_curr blocked_height] % [int16(x_curr) int16(y_curr)] height_curr = double(Station.terrain(int16(y_curr),int16(x_curr))); if(height_curr >= blocked_height) blocked = 1; return; end end blocked = 0;