diff --git a/gridCoords.m b/gridCoords.m new file mode 100644 index 0000000000000000000000000000000000000000..69ec322eef31b32415320e3b9c78ee785f3ebb3a --- /dev/null +++ b/gridCoords.m @@ -0,0 +1,38 @@ +function [Xq,Yq,X,Y,varargout] = gridCoords(X,Y,Xq,Yq,varargin) +%GRIDCOORDS Summary of this function goes here +% Detailed explanation goes here + +sz = size(Xq); + +[t,I] = utils.triangulation(X,Y,varargin{:}); +[ind,b] = t.pointLocation(Xq(:),Yq(:)); + +ind = reshape(ind,sz); +u = reshape(b(:,2),sz); +v = reshape(b(:,3),sz); + +nanind = isnan(ind); +ind(nanind) = 1; +ind = I(ind); +ut = ~mod(ind,2); +ind(nanind) = nan; + +[x,y] = ind2sub(size(X)-1,ceil(ind/2)); + +u(ut) = 1-u(ut); +v(ut) = 1-v(ut); + +Xq = x+u; +Yq = y+v; + +[X,Y] = ndgrid(1:size(X,1),1:size(X,2)); + +if nargout>0; varargout{1} = u; end +if nargout>1; varargout{2} = v; end +if nargout>2; varargout{3} = x; end +if nargout>3; varargout{4} = y; end +if nargout>4; varargout{5} = ind; end +if nargout>5; varargout{6} = t; end +if nargout>6; varargout{7} = I; end + +end \ No newline at end of file