Home > matGeom > geom2d > intersectBoxes.m

intersectBoxes

PURPOSE ^

INTERSECTBOXES Intersection of two bounding boxes.

SYNOPSIS ^

function box = intersectBoxes(box1, box2)

DESCRIPTION ^

INTERSECTBOXES Intersection of two bounding boxes.

   RES = intersectBoxes(BOX1, BOX2)
   BOX1 = [XMIN1 XMAX1 YMIN1 YMAX1]
   BOX2 = [XMIN2 XMAX2 YMIN2 YMAX2]
   RES = intersectBoxes(BOX1,BOX2) = [XMIN3 XMAX3 YMIN3 YMAX3]

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function box = intersectBoxes(box1, box2)
0002 %INTERSECTBOXES Intersection of two bounding boxes.
0003 %
0004 %   RES = intersectBoxes(BOX1, BOX2)
0005 %   BOX1 = [XMIN1 XMAX1 YMIN1 YMAX1]
0006 %   BOX2 = [XMIN2 XMAX2 YMIN2 YMAX2]
0007 %   RES = intersectBoxes(BOX1,BOX2) = [XMIN3 XMAX3 YMIN3 YMAX3]
0008 
0009 %   Example
0010 %   box1 = [5 20 5 30];
0011 %   box2 = [0 15 0 15];
0012 %   res=intersectBoxes(box1, box2)
0013 %   res =
0014 %       5 15 5 15
0015 %
0016 %   See also
0017 %   boxes2d, drawBox, mergeBoxes
0018 %
0019 
0020 % ------
0021 % Author: David Legland
0022 % E-mail: david.legland@inrae.fr
0023 % Created: 2010-07-26, using Matlab 7.9.0.529 (R2009b)
0024 % Copyright 2010-2024 INRA - Cepia Software Platform
0025 
0026 % unify sizes of data
0027 if size(box1,1) == 1
0028     box1 = repmat(box1, size(box2,1), 1);
0029 elseif size(box2, 1) == 1
0030     box2 = repmat(box2, size(box1,1), 1);
0031 elseif size(box1,1) ~= size(box2,1)
0032     error('Bad size for inputs');
0033 end
0034 
0035 % compute extreme coords
0036 mini = min(box1(:,[2 4]), box2(:,[2 4]));
0037 maxi = max(box1(:,[1 3]), box2(:,[1 3]));
0038 
0039 % concatenate result into a new box structure
0040 box = [maxi(:,1) mini(:,1) maxi(:,2) mini(:,2)];

Generated on Thu 21-Nov-2024 11:30:22 by m2html © 2003-2022