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 |