Spaces:
Runtime error
Runtime error
function [newBox, rBoundary] = get_room_boundary(box, boundary, order) | |
isNew = boundary(:,4); | |
polyBoundary = polyshape(boundary(~isNew,1), boundary(~isNew,2)); | |
poly = cell(size(box,1), 1); | |
for i = 1:size(box,1) | |
poly{i} = polyshape(box(i, [1 1 3 3]), box(i, [2 4 4 2])); | |
end | |
newBox = box; | |
rBoundary = cell(size(box,1), 1); | |
for i = 1:size(box,1) | |
idx = order(i); | |
rPoly = intersect(polyBoundary, poly{idx}); | |
for j = i+1:size(box,1) | |
rPoly = subtract(rPoly, poly{order(j)}); | |
end | |
rBoundary{idx} = rPoly.Vertices; | |
[xLimit, yLimit]= boundingbox(rPoly); | |
if ~isempty(xLimit) | |
newBox(idx,:) = [xLimit(1) yLimit(1) xLimit(2), yLimit(2)]; | |
end | |
end |