Newer
Older
function [lims1, lims2] = gtGetVolsIntersectLimits(size1, size2, shift)
% GTGETVOLSINTERSECTLIMITS Returns the limits in the two volumes, that overlap,
% according to the shift.
% [lims1, lims2] = gtGetVolsIntersectLimits(size1, size2, shift)
size1((numel(size1)+1):3) = 1;
size2((numel(size2)+1):3) = 1;
if (numel(size1) > 3)
warning('gtGetVolsIntersectLimits:wrong_argument', ...
'first volume size refers to a %d-dimensional volume', numel(size1))
end
if (numel(size2) > 3)
warning('gtGetVolsIntersectLimits:wrong_argument', ...
'second volume size refers to a %d-dimensional volume', numel(size2))
end
% volume1 limits
lims1_min = max(1, shift +1);
lims1_max = min(size1, shift + size2);
% volume2 limits
lims2_min = max(1, -shift +1);
lims2_max = min(size2, size1 - shift);
lims1 = [reshape(lims1_min, 1, []); reshape(lims1_max, 1, [])];
lims2 = [reshape(lims2_min, 1, []); reshape(lims2_max, 1, [])];